How to structure a system design interview

A system design interview rewards a visible method more than a clever diagram. Spend the 45 minutes in a fixed order (requirements, estimates, API, data model, high-level design, deep dives, then trade-offs and failure modes) and say at each step what you decided and why.

By Published 9 min read

1. What the framework is

A system design framework is a fixed order of stages you apply to any open prompt, from "design a URL shortener" to "design WhatsApp". It is not a script. The interviewer will interrupt, redirect and probe, and the framework is what lets you get back to where you were. It exists because every prompt is far too large for 45 minutes, so the real task is choosing what to build, what to skip, and saying so out loud.

2. Why interviewers care about structure

There is no single correct answer to a design prompt, so the interviewer grades how you get to one. Rubrics differ between companies, but most look for the same things: you explore the problem before solving it, your choices follow from requirements and numbers, you can name what each choice costs, and you can go one level deeper when asked.

Structure makes those signals visible. A candidate who jumps straight to boxes and arrows may know all the right components, but the interviewer cannot see why they were chosen. A candidate who works in order leaves a trail the interviewer can write up afterwards, which matters because the write-up, not the conversation, is what the hiring committee reads.

3. The 45-minute plan, stage by stage

A time budget for a 45-minute design round (adjust to the slot you are given)
StageMinutesWhat is on the board at the end
Requirements0 to 5Functional list, non-functional targets, an out-of-scope list
Estimates5 to 10Requests a second (average and peak), storage, bandwidth, the read/write ratio
API10 to 13Two to five calls with their inputs and outputs
Data model13 to 16The main entities, their keys and the access pattern for each
High-level design16 to 25One request traced end to end through clients, services, storage, caches and queues
Deep dives25 to 38One or two components designed in detail
Trade-offs and failure modes38 to 43What breaks first, what you rejected and why
Wrap-up43 to 45A short summary and your questions
A time budget for a 45-minute design round (adjust to the slot you are given). Scroll sideways on a small screen.
  1. RequirementsAsk who uses the product, which features matter and at what scale. Write functional requirements (what it does) apart from non-functional ones (latency, availability, durability, consistency). End with an explicit out-of-scope list: it protects you later when the interviewer asks about something you chose not to build.
  2. EstimatesTurn users into requests a second, storage and bandwidth, with every figure labeled as an assumption. The goal is to find the bottleneck: reads, writes, storage, or fan-out. See capacity estimation for the arithmetic.
  3. APIName the calls that carry the product, such as POST /messages and GET /conversations/{id}/messages?before=. Pagination, idempotency keys and authentication are worth one sentence each here, because they come back in the deep dive.
  4. Data modelList the entities and, for each, how it is read: by primary key, by range, by search. The access pattern decides the store and the partition key, so say it before choosing a database. See SQL vs NoSQL.
  5. High-level designDraw the simplest design that meets the requirements and walk one request through it, then the other main request. Only add a cache, a queue or a replica when you can say which requirement or number needs it.
  6. Deep divesPick the one or two parts that make this product hard and go into detail: the schema, the partition key, the algorithm, the retry policy. Offer a choice ("I can go deeper on fan-out or on storage; which is more useful?"), because many interviewers have a part they want to see.
  7. Trade-offs and failure modesFor each major component, say what happens when it dies, when traffic grows tenfold, and what you would have done with different requirements. Name the alternative you rejected for each big choice.
  8. Wrap-upSummarize in three sentences: the core design, the main trade-off, and what you would build next. Then ask your questions.

4. What to say at each stage

Short, explicit sentences turn your thinking into something the interviewer can write down. These are patterns, not lines to recite; put them in your own words.

Phrases that make each stage visible
StageSay something likeWhy it helps
Requirements"Before I draw anything, can I check what is in scope? I am assuming X and Y, and leaving Z out unless you want it."Shows you scope before solving, and makes assumptions checkable
Estimates"I will assume 10 million daily users. That gives roughly 1,000 writes a second, so a single primary can take the writes for now."Ties a number to a decision in one breath
API"These three calls carry the product. The write is idempotent so a client can safely retry."Signals you think about clients and failures early
Data model"Messages are always read by conversation, newest first, so the conversation ID is the partition key."Derives storage from access pattern
High-level"Let me trace one send end to end, then one read."Keeps the diagram honest and in step with your words
Deep dive"The hard part here is fan-out. I see two options; here is what each costs."Names the difficulty and frames a choice
Trade-offs"I chose X over Y because of the read-heavy ratio. If writes dominated, I would switch."Shows the choice depends on requirements, not habit
Check-in"Is this the level of detail you want, or should I go deeper here?"Lets the interviewer steer before you spend ten minutes
Phrases that make each stage visible. Scroll sideways on a small screen.

5. What to do when you are stuck

Everyone stalls at some point. Silence is the costly part, not the stall itself. Work through these in order.

  1. Say that you are thinking"Give me a moment to think about how to keep these counters consistent." A short, announced pause reads as care. A long, silent one reads as lost.
  2. Go back to the requirementsMost dead ends come from solving a harder problem than the one asked. Re-read the list: does this feature really need strong consistency, or real-time delivery?
  3. Start with the simplest version"The naive approach is one database table with a lock. That breaks at about this many writes, so let me improve it." A working baseline, then an improvement, is a perfectly good answer.
  4. Reason from the numbersIf you cannot decide between two designs, ask which one the estimates rule out. Thousands of writes a second and millions are different systems.
  5. Ask a narrow questionNot "what do you want me to do?" but "is it acceptable for a user to see a like count that is a few seconds stale?" A narrow question shows you have found the real decision.
  6. Park it and move on"I will mark this as an open question and come back to it." Then do come back. Leaving one part open is far better than spending the whole deep dive on it.

6. What changes by level

Level names and expectations differ between companies, so treat this as a common pattern, not any one company's rubric. The same prompt can be a pass at one level and a miss at the next.

Typical expectations by level for the same prompt
AreaMid-levelSeniorStaff
ScopeClarifies features when promptedDrives scoping and names non-functional targets unpromptedQuestions the framing: what problem the business is solving, and what not to build
DesignA working design with standard componentsA design whose choices follow from the estimatesSeveral viable designs compared, with a reasoned pick
DepthCan explain each component when askedGoes deep on the hard part without being led thereGoes deep and connects it to operations, cost and migration
Trade-offsNames someNames the alternative for each major choice and what it costsWeighs trade-offs over time: what changes at ten times the scale, who owns it
FailureMentions replication and retriesWalks through specific failures and their blast radiusAdds detection, rollout, degradation modes and recovery
ConversationFollows the interviewer's leadLeads, checks in at the right momentsLeads, and treats the interviewer as a colleague in a design review
Typical expectations by level for the same prompt. Scroll sideways on a small screen.

7. How the plan bends for common prompts

The order stays the same, but each prompt has its own hard part, and that is where the deep dive goes.

Where the time goes for well-known prompts
PromptThe deep diveStage that needs extra care
URL shortenerCollision-free code generation and the cached redirect pathEstimates (the read/write ratio decides everything)
Rate limiterThe algorithm and where its counters liveRequirements (per user, per IP or per key? hard or soft limit?)
Twitter timelineFan-out on write versus on read, and the celebrity problemEstimates (fan-out multiplies writes)
WhatsAppPersistent connections, delivery receipts and message orderingData model (partition by conversation)
Payment systemIdempotency, the ledger and reconciliationFailure modes (double charges are the real risk)
Collaborative editorMerging concurrent edits (OT or CRDTs)Requirements (offline editing changes the design)
Where the time goes for well-known prompts. Scroll sideways on a small screen.

8. Mistakes to avoid

  • Drawing before asking. Five minutes of questions saves twenty minutes of designing the wrong product.
  • Estimates that go nowhere. If you compute storage, use it: "about 90 TB, so this has to be partitioned."
  • Naming technologies instead of reasons. "Kafka" is not a design decision. "A durable queue so that slow consumers do not block the write path" is.
  • Breadth with no depth. Fifteen boxes, none explained, scores worse than six boxes and one that you can take apart.
  • Ignoring the interviewer's hints. A question like "what if this service is slow?" is usually a request to talk about exactly that.
  • Treating it as a monologue. Check in every few minutes. The interviewer may be waiting to redirect you.
  • No failure discussion. Leaving no time for what breaks is one of the most common reasons a solid design still misses the bar.

9. How to talk through it: a worked opening

The first five minutes set the tone for the whole round. Here is an opening for a notification system prompt that covers scope, estimates and the plan in about three minutes of speech.

Fictional example

Opening a notification system design
Interviewer
Design a notification system for a large consumer app.
Candidate
Before I draw anything: which channels? Push, email and SMS, or just push? And are these triggered by other services, by marketing campaigns, or both?
Interviewer
All three channels. Both kinds of trigger.
Candidate
Then I will treat transactional messages, like a password reset, as high priority, and campaigns as bulk. I will leave the template editor and campaign analytics out of scope unless you want them. Users must be able to opt out per channel.
Candidate
For scale I will assume 20 million daily active users and 10 notifications per user a day. That is 200 million a day, or about 2,300 a second on average. A campaign could burst to ten times that, so I will plan for about 25,000 a second. The burst is the design problem, so I will put a queue between the producers and the senders.
Candidate
My plan: the send API, the data model for preferences and delivery state, the high-level flow, then a deep dive on priority queues and retries with third-party providers. Does that match what you want to see?

A checklist to print

[ ] Restated the prompt in one sentence
[ ] Functional requirements written down
[ ] Non-functional targets: latency, availability, durability, consistency
[ ] Out-of-scope list agreed
[ ] Assumptions labeled: users, actions a day, object sizes
[ ] Average and peak requests a second, read/write ratio
[ ] Storage over the retention period, bandwidth
[ ] Two to five API calls, with idempotency where retries happen
[ ] Entities, keys and the access pattern for each
[ ] One request traced end to end on the diagram
[ ] Every cache, queue and replica justified by a number or requirement
[ ] One or two deep dives, chosen with the interviewer
[ ] For each big choice: the alternative and its cost
[ ] Failure of each main component, and a tenfold traffic increase
[ ] Three-sentence summary and your questions
Keep this beside you when you practice until the order is automatic.

Practicing with Natively

The framework only becomes automatic through spoken practice. Run a mock interview with a friend on a call, or read a prompt aloud and answer it as if someone were listening. Natively transcribes the conversation live and can suggest talking points for each question as it comes in; comparing them with what you said is a quick way to spot gaps such as failure modes or the out-of-scope list. If you sketch a diagram or capture a problem statement, it can explain the screenshot. Afterwards, the transcript and notes are kept for review, so you can check how long each stage really took.

Questions people ask

How long should each stage of a system design interview take?

In a 45-minute round, a common split is about 5 minutes on requirements, 5 on estimates, 6 on the API and data model, 9 on the high-level design, 13 on deep dives, 5 on trade-offs and failures and 2 to wrap up. Treat it as a budget, not a rule. When time runs short, cut the estimates and the API first, never the requirements or the deep dive.

What should I do if I get stuck in a system design interview?

Say that you are thinking rather than going silent, then go back to the requirements, since most dead ends come from solving a harder problem than the one asked. Offer the simplest version that works and improve it, or ask a narrow question about the decision you are stuck on. If it still does not resolve, park it as an open question and come back to it.

How do system design expectations differ between mid-level, senior and staff candidates?

Mid-level candidates are expected to produce a working design and explain its parts when asked. Senior candidates should drive the scoping, justify choices with estimates and name the trade-off behind each major decision. Staff candidates are also expected to question the framing, compare several designs and discuss operations, migration and long-term cost; the exact bar varies by company.

Where to go next

Practice with the same assistant you would use on a call: it listens, transcribes and suggests answers from your own resume and the job description.

Facts on this page were last checked on . Product details come from the Natively app itself; if something here is out of date, tell us at hello@heynatively.com.

Keep reading

Put it on your own machine.

A live-conversation assistant that runs locally. Your conversations stay on your machine.

macOS 12+ · Windows 10/11

© 2026 Natively AI Private Limited

Source-available under the Natively Personal Use Source License v1.0 · IP geolocation by DB-IP