Interview prep
System Design Guide
You don't need a perfect architecture. You need a clear framework, confident tradeoff decisions, and the ability to talk through your thinking out loud. This covers both the building blocks and real system walkthroughs.
Part 1
Building Blocks
Requirements
Clarify before you draw a single box.
Estimation
Rough numbers that drive real architecture decisions.
Load Balancers
Distribute traffic so no single server becomes the bottleneck.
Caching
Serve repeated reads fast without hitting the database every time.
Databases: SQL vs NoSQL
Choose based on your access patterns, not hype.
Queues & Async Processing
Decouple producers from consumers so neither blocks the other.
Consistency vs Availability
You can't always have both. Know when to trade one for the other.
Replication & Sharding
Scale reads with replication. Scale writes and storage with sharding.
Rate Limiting
Protect your system from abuse, overload, and runaway clients.
Part 2
Real System Walkthroughs
Design a URL Shortener
Classic first system design. High read QPS, simple write path.
Design a Twitter Feed
Fan-out write vs fan-out read. One of the most common hard system design problems.
Design a Chat App
Real-time messaging, message history, and delivery guarantees.
Design a Notification Service
Fan-out to millions of users across multiple channels reliably.
Quick reference
Component Cheat Sheet
Beginner rule: You don't need a perfect architecture. You need a reasonable one and the ability to explain your tradeoffs clearly. Silence is the real failure mode.