The six-phase framework
Every system-design interview has the same skeleton. Once you internalize the six phases, the surface question becomes irrelevant — you drive the interview the same way whether it's a URL shortener or an ad-serving platform. Master the process; the specific problem then becomes a fill-in-the-blank.
Requirements
What are we building — and what are we not?
Nail this and you've already de-risked 40% of the interview. Skip it and everything downstream is guesswork.
Core entities
The nouns of the system. Draw them.
Two or three entities, their relationships, and one primary key each. That's it.
API
The contract with the caller.
Three to five endpoints — enough to prove the entities work end-to-end.
High-level design
The picture of the system at rest.
Client → LB → services → storage. Then evolve as the interviewer probes scale.
Deep dive
Pick one component and go three levels down.
The interviewer is silently picking which sub-problem to probe. Read the room and go there before they ask.
NFRs & failure
Availability, latency, failure scenarios.
The last 10 minutes. Name three failure scenarios and how you'd mitigate each.
Practice the framework on the flagship problem
Six phases, six weak-vs-strong answer pairs. Read the goal, guess your own answer, then compare against ours.
Name the read:write ratio, availability target, and one thing that's explicitly out of scope.
Time budgets by interview length
These are recommended budgets, not laws. If the interviewer keeps pushing on the deep dive, spend more time there — the last 10 minutes for NFRs can be brief but never skipped.
| Interview | Requirements | Core | API | High-level | Deep | NFRs |
|---|---|---|---|---|---|---|
| 30 min | 3m | 2m | 3m | 7m | 10m | 5m |
| 45 min | 4m | 3m | 4m | 10m | 15m | 9m |
| 60 min | 5m | 5m | 5m | 15m | 20m | 10m |
Take the next step
The URL Shortener page runs the entire framework live at four different scales. Watch how the same six phases produce four different systems.