The 6-Step Framework
A 45-minute system-design interview is not a test of whether you can build the system. You can't — nobody can in 45 minutes. It's a test of whether you drive a vague prompt into a defensible design without being told what to do next. This chapter is the process that does that, minute by minute.
1 Why a process beats brilliance
The single most common failure isn't ignorance — it's a strong candidate who hears "design Twitter" and starts drawing Kafka topics at minute two. They've answered a question nobody asked, at a scale nobody specified, and now every later decision hangs off an assumption they never stated. The fix is boring and it works: always run the same six steps in the same order.
- Requirements — functional, non-functional, and explicit scope cuts.
- Estimation — QPS, storage, bandwidth. Turn "scale" into numbers.
- API — the contract. Forces you to nail down what the system actually does.
- Data model — entities, keys, access patterns. The schema constrains everything.
- High-level design — boxes and arrows. The end-to-end request path.
- Deep dive — one or two components, taken to bedrock. This is where senior shows.
Say that sentence in the first 60 seconds. It tells the interviewer you have a plan, that you'll be steerable, and that you won't rabbit-hole. From that point you're the one running the room.
2 The 45-minute timeline
Here's the hardest thing to internalize: the budget is fixed and front-loaded toward thinking, not drawing. Walk the timeline below. At each step, watch the time spent versus the signal the interviewer is recording — those are two different things, and conflating them is how good candidates run out of clock with a half-drawn diagram.
3 What the interviewer is actually scoring
Every step has a hidden rubric. The deliverable (a diagram, a number) is just the artifact; the signal is the reasoning behind it. Same minutes, different scores:
| Step | Budget | Artifact | Senior signal they're recording |
|---|---|---|---|
| Requirements | ~5 min | Scoped feature list | Naming what you exclude; reads vs writes; consistency needs |
| Estimation | ~5 min | QPS & storage | Which number drives the design (e.g. read-heavy → cache) |
| API | ~5 min | Endpoint contract | Right granularity; idempotency; pagination; auth boundary |
| Data model | ~5 min | Schema + keys | Access-pattern-driven keys; SQL vs NoSQL justified |
| High-level | ~10 min | Component diagram | Clean request path; where state lives; obvious bottleneck named |
| Deep dive | ~12 min | One component, deep | Real tradeoffs, failure handling, numbers — this is the seniority test |
| Wrap / Q&A | ~3 min | Recap + risks | Self-critique: what you'd revisit with more time |
4 The senior rubric: depth over breadth
Junior and senior candidates often produce the same high-level diagram. They diverge in the deep dive. A junior keeps the design wide and shallow — every box gets one sentence. A senior picks the load-bearing component and excavates: the data model, the failure mode, the number that breaks it. The shape of a strong interview looks like this:
Breadth gets you a passing high-level design. The spike — one component taken all the way down — is what separates a hire from a strong hire. When the interviewer says "tell me more about X," they're handing you the spike. Take it.
5 The four ways candidates lose
Almost every "no-hire" maps to one of these. Learn to catch yourself mid-sentence.
Finish the skeleton first
Get a complete, if shallow, end-to-end design on the board, then deepen. Guarantees you have a working answer if the clock runs out. Best default.Deep-dive early
Shows depth fast and impresses — but risks an incomplete system if you mistime it. Only do this when the interviewer explicitly steers you into one component.6 The exact phrases that drive the room
Senior signal is partly verbal. These lines do real work — they structure the conversation, surface tradeoffs, and keep you steerable. Memorize the shape of them.
| Moment | The line |
|---|---|
| Opening | "Before I design anything, let me clarify scope and state my assumptions." |
| Cutting scope | "I'll treat analytics as out of scope for now and revisit if we have time." |
| Framing from numbers | "This is read-heavy at ~100:1, so I'll optimize the read path and accept a heavier write path." |
| Every tradeoff | "I'll pick X over Y because Z — the cost is W, which I'll mitigate by…" |
| Staying steerable | "I can go deeper on the data model or the caching layer — which is more interesting to you?" |
| Catching your own gap | "One risk here is hot partitions; let me address that explicitly." |
| Time check | "I'm watching the clock — let me lock this and move to the deep dive." |
| Wrap-up | "With more time I'd revisit X and load-test Y. The biggest risk is Z." |