system-design · beginner

System Design Interview Answering Framework

Start here

System design interviews evaluate how you structure ambiguity: asking questions, making assumptions explicit, drawing a workable design, and improving it under scale and failure.

This lesson is a reusable answering framework—a spine for problems like URL shortener, chat, news feed, or rate limiter.

You should care because strong engineers still underperform when they jump to Kafka before requirements, or never discuss trade-offs.

What you will learn

  1. Run a timed structure (about 35–45 minutes).
  2. Separate functional vs non-functional requirements.
  3. Do quick capacity estimates.
  4. Start simple, then scale deliberately.
  5. Talk failures, observability, and evolution.
  6. Avoid common anti-patterns.

What you should know first

TopicWhy
System design foundationsBuilding blocks vocabulary
Core HTTP and storage conceptsMost prompts assume them

Words you need before we begin

TermPlain English
Functional requirementWhat the system should do for users.
Non-functional requirementHow well: latency, availability, consistency, cost.
Back-of-envelope estimateRough math for QPS, storage, bandwidth.
BottleneckComponent that limits scale first.
Trade-offA gain that costs something else.
MVP designSmallest design that meets stated goals.

Simple story: planning a dinner for 8 vs 800

You ask dietary needs first (requirements), estimate grocery volume (scale), cook a sensible menu (MVP), then rent bigger ovens if needed (scale-out)—you do not start by buying a stadium kitchen for eight friends.

Timed framework

1) Clarify (5 minutes)

Ask:

State assumptions aloud if interviewer is vague.

2) API and data model (5–8 minutes)

3) High-level design (8–10 minutes)

Draw: clients → load balancer → app → cache → DB → (async workers).

Narrate the request path for the primary use case end to end.

4) Deep dives (10–15 minutes)

Pick 2–3 bottlenecks:

Go one level deeper than boxes: what is cached, invalidation, partition key.

5) Reliability and ops (5 minutes)

6) Wrap (2 minutes)

Summarize design, top trade-offs, and how you would evolve from day 1 to year 3.

Visual mental model

flowchart TB
  Q[Clarify requirements] --> E[Estimate scale]
  E --> M[MVP design]
  M --> D[Deepen bottlenecks]
  D --> F[Failures and ops]
  F --> S[Summarize trade-offs]

Learning question: Where do candidates most often skip and lose points?

Caption: Requirements, estimates, and failure talk—not only drawing Kafka.

Complete worked micro-example: “Design a pastebin”

Clarify

Anonymous paste create + retrieve by id; 1KB average; 10M pastes/day; read:write 5:1; public links.

Estimate

Writes ≈ 115/s average; reads ≈ 575/s; storage ≈ 10M × 1KB ≈ 10 GB/day raw.

MVP

API + app + SQL table pastes(id, body, created_at) + object storage optional for large blobs + cache for hot pastes.

Deepen

Failures

DB down: reads from cache partial; creates fail closed.

How interviewers listen

They listen for:

Not for memorized FAANG diagrams alone.

Failure modes of interview performance

ModeSymptomFix
Jump to buzzwordsKafka first sentenceStart with requirements
No numbersHand-wavy scaleAlways estimate
Silent drawingInterviewer lostNarrate constantly
Ignore failuresHappy path onlyForce a failure minute
Over-design MVPUnshippable monsterTwo-phase design

Trade-offs to practice saying

Common misunderstandings

  1. “There is one correct design.” There are better-reasoned designs.
  2. “More components mean higher score.” Complexity needs justification.
  3. “Estimates must be perfect.” Order-of-magnitude is the point.
  4. “Never change your design.” Updating after new constraints is good.
  5. “Only seniors discuss ops.” Observability is fair game early.

Check your understanding

  1. Name the six phases of the timed framework.
  2. What is a non-functional requirement example?
  3. Why estimate before sharding talk?
  4. What should a wrap-up include?
  5. Give one interview anti-pattern.

Practice

  1. Run the framework on URL shortener with a timer.
  2. Write five clarifying questions for a chat system.
  3. Estimate storage for 1M users × 100 messages/day × 200 bytes.
  4. List three bottlenecks for a news feed.
  5. Record yourself explaining a design in 10 minutes.

Deeper production notes

Mapping interview to real jobs

Real design adds stakeholders, compliance, migrations, and org ownership. Interviews compress that into signals: prioritization, communication, and technical judgment.

Using this curriculum

After practicing the framework, drill specific primers (caching, queues, rate limits) so deep dives have substance.

Additional teaching scenarios

Scenario A — peak load day

Traffic multiplies by ten. Mark which failure modes appear first and the first mitigation for each.

Scenario B — mixed versions

Half the fleet runs an old build. Which assumptions break? Prefer one deploy window of compatibility.

Scenario C — five-sentence teach-back

Explain the core idea without acronyms using only the simple story and worked example.

Scenario D — metrics and alerts

List three metrics and one alert that track user impact or a scarce resource.

Scenario E — non-goals

Name two problems this technique should not solve.

Scenario F — ownership

Who owns dashboards, code, and pages? Blank means not ready for broad rollout.

Revision summary

Glossary

TermDefinition
Answering frameworkStructured approach to design interviews.
MVP designMinimal viable architecture for stated goals.
BottleneckFirst limiting resource under load.

Abbreviations and terminology

What to learn next

  1. Design a URL shortener
  2. Design a rate limiter
  3. System design foundations
  4. Caching 101

Extra teaching notes for first-time builders

Write the single bottleneck you are protecting before picking tools. Name the signal that tells you the design is working for users, not only that internal counters move. When reviewing a change related to this lesson, ask what happens when the component is slow for ten minutes, down entirely, or running twice. Prefer small explicit failure modes that operators can understand at 3 a.m.

Document ownership for dashboards, code, and pages. Undocumented mechanisms become folklore and then outages. Prefer designs that tolerate mixed versions for at least one deploy window so rollouts do not require perfect global simultaneity.

Napkin math helps: estimate peak rate, multiply by payload size, and ask whether the design still holds when a dependency is at half capacity. If the answer depends on luck, add bounds, backpressure, or shedding before production traffic arrives.

Extra teaching notes for first-time builders

Write the single bottleneck you are protecting before picking tools. Name the signal that tells you the design is working for users, not only that internal counters move. When reviewing a change related to this lesson, ask what happens when the component is slow for ten minutes, down entirely, or running twice. Prefer small explicit failure modes that operators can understand at 3 a.m.

Document ownership for dashboards, code, and pages. Undocumented mechanisms become folklore and then outages. Prefer designs that tolerate mixed versions for at least one deploy window so rollouts do not require perfect global simultaneity.

Napkin math helps: estimate peak rate, multiply by payload size, and ask whether the design still holds when a dependency is at half capacity. If the answer depends on luck, add bounds, backpressure, or shedding before production traffic arrives.

Extra teaching notes for first-time builders

Write the single bottleneck you are protecting before picking tools. Name the signal that tells you the design is working for users, not only that internal counters move. When reviewing a change related to this lesson, ask what happens when the component is slow for ten minutes, down entirely, or running twice. Prefer small explicit failure modes that operators can understand at 3 a.m.

Document ownership for dashboards, code, and pages. Undocumented mechanisms become folklore and then outages. Prefer designs that tolerate mixed versions for at least one deploy window so rollouts do not require perfect global simultaneity.

Napkin math helps: estimate peak rate, multiply by payload size, and ask whether the design still holds when a dependency is at half capacity. If the answer depends on luck, add bounds, backpressure, or shedding before production traffic arrives.

Extra teaching notes for first-time builders

Write the single bottleneck you are protecting before picking tools. Name the signal that tells you the design is working for users, not only that internal counters move. When reviewing a change related to this lesson, ask what happens when the component is slow for ten minutes, down entirely, or running twice. Prefer small explicit failure modes that operators can understand at 3 a.m.

Document ownership for dashboards, code, and pages. Undocumented mechanisms become folklore and then outages. Prefer designs that tolerate mixed versions for at least one deploy window so rollouts do not require perfect global simultaneity.

Napkin math helps: estimate peak rate, multiply by payload size, and ask whether the design still holds when a dependency is at half capacity. If the answer depends on luck, add bounds, backpressure, or shedding before production traffic arrives.

FAQ from first-time learners

Q: How detailed should drawings be?
A: Enough to show data flow and storage; not every class.

Q: What if I do not know a technology?
A: State the requirement it fulfills and a simpler alternative.

Q: Should I mention specific cloud products?
A: Optional; prefer concepts first, products as examples.

Track: Distributed Systems

By Shubham Jain

All articles · Study paths

Shubham Jain · Learning Lab