← Course Index

How to Approach a System Design Interview

~20 min · Foundations · Framework Reference →

Ref
Primary Source
Alex Xu — System Design Interview Vol 1, Chapter 3

This chapter defines the interview framework used throughout the book. Read it after this lesson.

Why the Framework Matters

System design interviews are deliberately open-ended. "Design Twitter" could go a hundred directions. The interviewer isn't just checking your technical knowledge — they're watching how you think: do you clarify before diving in? Do you reason about scale? Do you explain your trade-offs?

A framework gives you a repeatable structure so you spend your mental energy on substance, not on figuring out what to say next.

💡 Interview reality

Most candidates fail not because they don't know enough — they fail because they start drawing without clarifying requirements, or they go silent and work alone. The interviewer wants a collaborative conversation, not a monologue.

The 4-Step Framework

This maps to a 45-minute interview. The time splits are approximate — let the conversation guide you.

STEP 1 Clarify Requirements ~5 min Functional + Non-functional STEP 2 Estimate Scale ~5 min QPS, storage, bandwidth STEP 3 High-Level Design ~20 min API, data model, diagram STEP 4 Deep Dive ~15 min Bottlenecks, trade-offs
The 4-step framework for a 45-minute system design interview

Step 1 — Clarify Requirements (~5 min)

Never start drawing. Your first job is to understand what you're actually building.

Functional requirements — what features must the system support? Agree on 2–4 core features. Push back on scope creep.

Non-functional requirements — scale, latency, availability. Ask:

Tip

Write requirements on the board as you hear them. The interviewer will confirm or correct — that's valuable signal.

Step 2 — Back-of-the-Envelope Estimation (~5 min)

Show you understand scale. Use rough numbers — magnitude matters, not precision.

See the Estimation Cheat Sheet for latency numbers and size references.

Step 3 — High-Level Design (~20 min)

This is the core. Draw the architecture and walk through the main flows.

  1. Define the API — 2–4 key endpoints. What are the inputs and outputs?
  2. Sketch the data model — What entities exist? Which database type fits?
  3. Draw the architecture — Client → API Gateway → Services → Cache → DB
  4. Walk a key flow — "Here's what happens when a user sends a message…"
Common mistake

Don't over-engineer the first design. Start with the simplest thing that works, then evolve it. If you open with 15 microservices, you've nowhere to go.

Step 4 — Deep Dive & Trade-offs (~15 min)

The interviewer will direct you: "Tell me more about how the database scales" or "What happens if the cache fails?" This is where you differentiate yourself.

The Golden Rule of Communication

Always narrate

Never go silent for more than 30 seconds. If you're thinking, say "I'm considering two options here — option A has lower latency but option B gives us stronger consistency. Let me think through the trade-offs…" Thinking out loud is the entire point.

Check Your Understanding

1. A candidate immediately starts drawing a detailed architecture after hearing "Design Instagram." What did they do wrong?
2. In the 4-step framework, approximately how much time should the high-level design take?
3. Which of these belongs in "non-functional requirements"?
4. During step 4, the interviewer says "What happens if your cache goes down?" What's the ideal response?

🎓 Ask your teacher anything. Confused about the difference between functional and non-functional requirements? Want to see the framework applied to a real example? Just ask — that's what I'm here for.