DEV Community

Shohruh Sharipov
Shohruh Sharipov

Posted on

The 5-step framework I use for any system design interview (6 worked examples)

Most people fail system design interviews by jumping straight to boxes. The fix is a fixed order:

  1. Clarify — functional + non-functional requirements, say the numbers out loud.
  2. Estimate — users, requests/sec, storage. Rough is fine; having a number is the point.
  3. High-level design — the minimum boxes that satisfy step 1.
  4. Deep-dive the hard part — the one component that makes this problem this problem. This is where you score.
  5. 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)