Most people fail system design interviews by jumping straight to boxes. The fix is a fixed order:
- Clarify — functional + non-functional requirements, say the numbers out loud.
- Estimate — users, requests/sec, storage. Rough is fine; having a number is the point.
- High-level design — the minimum boxes that satisfy step 1.
- Deep-dive the hard part — the one component that makes this problem this problem. This is where you score.
- Tradeoffs — what you gave up and why.
Applied to the six classics — URL shortener, rate limiter, DB scaling, news feed, caching/LRU, chat — in one animated video:
Which of the six would you least want to get? Mine is the news feed.
Top comments (0)