Course · 15

How do I run a system design interview in 45 minutes?

A step-by-step plan for an SDE-2 interview: what to ask, what to draw, how to talk about choices, and how to practise. Built on two public frameworks (Alex Xu's book and Hello Interview). Where something is my advice and not a fact, it says advice.

TL;DR

The interview is a guided talk, not a quiz: agree on the problem, draw something that works, then go deep and name the trade-offs.

  • Spend the first 5 to 10 minutes on questions and numbers. Do not draw yet.
  • Draw a simple working design by minute 25. Then deep-dive into 1 or 2 hard parts.
  • SDE-2 means: you bring numbers and trade-offs yourself, without being pushed.
  • Every choice gets a "because" and a "the cost is". That sentence is what gets scored.
  • Practise out loud with a timer. 8 weeks of the plan below covers the classic questions.
4steps
in Alex Xu's framework (book, ch. 3)
3-10min
for step 1, understanding the problem
86,400
seconds in a day: the number behind every QPS estimate

—Words you need

Each word once, in plain English glossary

Functional requirement
What the system must do. "Users can send a message."
Non-functional requirement
How well it must do it: fast, always up, correct.
QPS
Queries per second. How many requests arrive each second.
DAU
Daily active users. People who use the app on one day.
Latency
Time one request takes, start to finish.
p99
The time 99 of 100 requests beat. The slow tail.
Availability
Share of time the system works. "Three nines" = 99.9%.
Consistency
Whether every reader sees the newest write right away.
Trade-off
You get one good thing by paying with another.
Bottleneck
The one part that breaks first when load grows.
Deep dive
Zooming into one box to show how it really works.
Back-of-the-envelope
Rough maths in your head to get the size right.

The game

01What the interviewer actually scores

SDE-1 vs SDE-2 vs senior core

The interviewer is not checking one right answer. There is none. They watch how you think. Hello Interview names four areas they score. Problem navigation means breaking a big fuzzy problem into parts. Solution design means using known building blocks well. Technical excellence means knowing real tools. Communication means working with the interviewer, not past them.

What each level must show Three stacked bars: SDE-1 builds a basic working design with hints, SDE-2 adds numbers, deep dives and trade-offs on its own, senior drives the whole talk and spots risks early. Senior: drives the whole talkspots risks early, many deep dives, picks the hard parts SDE-2: working design + depthown numbers, 1-2 deep dives, names trade-offs unasked SDE-1: basic working designboxes and arrows that work, needs hints for depth LEGEND Your target level Level above Level below
Each level keeps everything below it and adds one more thing.
SignalSDE-1 (junior)SDE-2 (your target)Senior
RequirementsAsks a few questions when nudgedAsks on their own; writes down functional and non-functional listsPushes back on scope; finds the one requirement that shapes the design
NumbersSkips them or needs helpDoes a quick estimate and uses it to chooseUses numbers to rule options out early
High-level designA design that works, with hintsA clean working design without hints, by about minute 25Works it out fast to leave time for depth
Deep divesShallow; one level down1 or 2 real deep dives (ID generation, caching, fan-out)Several; picks the hardest parts unasked
Trade-offsNames a toolNames a tool, why, and what it costsCompares 2 to 3 options and says when each wins
CommunicationAnswers questionsLeads the talk, checks in oftenRuns the room; adapts to the interviewer
In everyday words
A driving test. A junior driver can move the car. An SDE-2 drives the route alone and explains each turn. A senior also sees the danger before it shows up.
Actually
Hello Interview writes: "a mid-level engineer might cover the basics well but not into great depth, while a senior engineer will quickly work through the basics leaving time for … deep dives." Their Bitly breakdown says mid-level should know "why 302 redirects are preferable" and caching "when prompted"; senior should explain hashing vs counter trade-offs "without extensive prompting". The SDE-1 column and the exact SDE-2 line above are my reading of these, so treat them as advice. Company rubrics are private and differ. hellointerview.com intro

At SDE-2 the difference is initiative: you bring the numbers, the deep dive and the trade-off before you are asked.

Source: Hello Interview, introduction · Hello Interview, Bitly "what is expected at each level" (both checked 2026-10-25)

02The 45-minute plan

Eight steps, with minutes interview favourite

Alex Xu's book uses four steps. Hello Interview uses six. I split them into eight smaller steps so you always know what comes next. The minutes are a guide, not a law. If the interviewer pulls you somewhere, follow them.

Minutes 0 to 15 Four boxes sized by minutes: clarify 0 to 5, estimate 5 to 8, API 8 to 12, data model 12 to 15. Clarify0-5 min Estimate5-8 min API8-12 min Data12-15 min 0 5 8 12 15 LEGEND Most skipped step Other step
First 15 minutes: agree on the problem before drawing anything.
Minutes 15 to 45 Four boxes sized by minutes: high-level design 15 to 25, deep dives 25 to 38, scaling 38 to 42, wrap-up 42 to 45. High-level15-25 min Deep dives25-38 min Scale38-42 Wrap42-45 15 25 38 42 45 LEGEND Where SDE-2 is judged Other step
Last 30 minutes: draw, then go deep where the interviewer points.

Minutes per step in a 45-minute slot

My split (advice), built from the two public frameworks below. Hover a bar for the range.

Deep dives
13
High-level design
10
Clarify requirements
5
API design
4
Bottlenecks, scaling
4
Estimation
3
Data model
3
Wrap-up
3
Show the full table
My stepMinutesAlex Xu step (minutes)Hello Interview step (minutes)
1. Clarify requirements51. Understand the problem, set scope (3-10)Requirements (~5)
2. Estimation3part of step 1inside Requirements
3. API design4part of step 2API or system interface (~5)
4. Data model3part of step 2Core entities (~2)
5. High-level design102. High-level design, get buy-in (10-15)High-level design (~10-15)
6. Deep dives133. Design deep dive (10-25)Deep dives (~10)
7. Bottlenecks, scaling4part of step 3 and 4part of deep dives
8. Wrap-up34. Wrap up (3-5)none
In everyday words
A cooking show with a timer. You read the recipe, lay out the ingredients, cook the main dish, then add the fancy sauce. If you are still reading the recipe at minute 30, there is no dinner.
Actually
Alex Xu's book (ch. 3, "A framework for system design interviews") gives four steps for a 45-minute slot: understand the problem and set scope, 3-10 min; high-level design and buy-in, 10-15 min; deep dive, 10-25 min; wrap up, 3-5 min. I could not open the book's site (bytebytego.com did not resolve on 2026-10-25), so these minutes come from a review that quotes the book. Hello Interview's delivery framework gives: requirements ~5, core entities ~2, API ~5, optional data flow ~5, high-level design ~10-15, deep dives ~10. hellointerview.com/…/delivery

Have a working picture on the board by minute 25. Everything after that is where SDE-2 is judged.

Source: Review of Alex Xu, "System Design Interview", ch. 3 (secondary) · Hello Interview, delivery framework (checked 2026-10-25)

Step by step

03Clarify requirements

The question checklist core

The question is short on purpose. "Design Twitter" hides a hundred features. Your first job is to pick the 3 to 5 that matter and agree on them. Write them on the board in two lists: what it does (functional) and how well (non-functional).

TopicAsk thisWhy the answer changes the design
UsersWho uses it? Mobile, web, other services?Mobile means flaky networks: retries, offline, push.
Core featuresWhich 3 features are in scope? What is out?Fewer features = more time for depth.
ScaleHow many daily users? How many actions each?Sets QPS and storage. 1k QPS fits one database; 100k does not.
Read/write ratioDo people read much more than they write?Read-heavy: cache and replicas. Write-heavy: queues, sharding, log-style storage.
LatencyHow fast must the main action feel? p99 target?Under ~100 ms usually means the answer is precomputed or cached.
ConsistencyIs a few seconds of stale data OK?Money and stock counts: strong. Likes and feeds: eventual is fine.
AvailabilityWhat if it is down for 5 minutes?High targets need replicas in several zones and no single point of failure.
GeographyOne country or worldwide?Worldwide: CDN, regional copies, and the speed of light across oceans.
Data size and lifeHow big is one item? Keep it forever?Video vs text is a 1,000,000x difference in storage.
Security / abuseLogged-in only? Any spam or fraud risk?Rate limiting, auth, and audit logs.
How it sounds on the board (example: URL shortener)
Functional
  1. Given a long URL, return a short one
  2. Visiting the short URL redirects to the long one
  3. (out of scope) custom aliases, analytics
Non-functional
  - 100M new URLs a day, reads 10x writes      // interviewer confirmed
  - Redirect p99 under 100 ms
  - Highly available; a short link must never point to the wrong URL
In everyday words
An architect asks how many people will live in the house before drawing it. A cottage and a hotel both have doors and rooms, but nothing else is the same.
Actually
Alex Xu's step 1 is "understand the problem and establish design scope", and Hello Interview's first step is functional plus non-functional requirements. Google's SRE workbook calls its version "Non-Abstract Large System Design" (NALSD) and starts every design with "Is it possible?" before any scaling. The 100 ms latency line in the table is a common rule of thumb, not a standard: advice. sre.google/workbook/non-abstract-design

Two short written lists, agreed with the interviewer, before the first box. That alone puts you ahead of many candidates.

Source: Hello Interview, delivery · Google SRE workbook, ch. 12 NALSD

04Back-of-the-envelope estimation

Three minutes of maths that pick your tools core

Estimation is not about the exact number. It tells you the size class. Is this one server, ten, or a thousand? Round hard. Say each step out loud so the interviewer can follow and correct you.

From users to servers Daily users times requests each gives requests a day; divide by 86,400 for average QPS; multiply by a peak factor; divide by what one server handles. X3 Daily users100M DAU Requests a day100M x 10 = 1B Average QPS1B / 86,400 = 11.6k Peak QPS11.6k x 3 = 35k App servers35k / 1k each = 35 LEGEND Assumption Worked number Design for this
One chain of multiplications. Say each step out loud.
The four numbers to estimate (worked, assumptions marked)
// assumptions (agree them with the interviewer)
DAU               = 100M
actions per user  = 10 a day
item size         = 1 KB

1. Average QPS  = 100M x 10 / 86,400      = 11,574  ≈ 12k
2. Peak QPS     = average x 2 to 3          ≈ 35k        // design for this
3. Storage      = 1B items/day x 1 KB      = 1 TB/day ≈ 365 TB/year
4. Bandwidth    = 12k QPS x 1 KB          ≈ 12 MB/s average
Handy factValueNote
Seconds in a day86,400Round to 100k for speed: then 1M/day ≈ 10 per second
Main memory reference100 nsJeff Dean / Peter Norvig list, approximate
Round trip inside one datacenter500 µsSame list, approximate
Bytes ladderKB, MB, GB, TB, PBEach step is 1,000x
In everyday words
Before a party you guess "about 50 people, 3 slices each". You do not count to the slice. You just need to know: one pizza, or fifteen?
Actually
The famous "latency numbers every programmer should know" come from Jeff Dean's talks, built on Peter Norvig's list. They are about 2010-era numbers and are only for size class: memory reference ~100 ns, datacenter round trip ~500,000 ns. The 2 to 3x peak factor is a common assumption, not a law; real systems measure it (advice). Google's SRE workbook does the same kind of sums in its NALSD example, with real disk and machine numbers. gist: latency numbers (Dean / Norvig)

The estimate earns its time only if it changes a choice. Say "35k peak QPS, so one database will not hold the writes".

Source: Latency numbers gist · Norvig, "Teach yourself programming in ten years", timing table · SRE workbook NALSD · Page 01 Fundamentals

05API and data model

The contract, then the nouns core

An API (application programming interface) is the list of calls the outside world can make. Write one line per functional requirement. Then list the main entities: the nouns your system stores. This is where you notice missing requirements cheaply.

API, one line per feature (URL shortener)
POST /v1/urls          body: { longUrl }          → 201 { shortUrl }
GET  /{code}                                     → 302 Location: longUrl
// user id comes from the auth token, never from the body
Data model: entities and the key you read by
Url   { code PK, longUrl, userId, createdAt, expiresAt }
User  { id PK, email, plan }
// main read: by code → a key-value lookup. No joins needed.
ChoicePick whenCost
REST over HTTPPublic, simple create/read callsChatty for many small calls
gRPCService to service, high volumeHarder to call from a browser
WebSocketServer must push (chat, live location)Long-lived connections to manage
Cursor paginationFeeds and long listsNo "jump to page 50"
Actually
Hello Interview puts "core entities" (~2 min) and "API or system interface" (~5 min) before the high-level design. Their advice is to define "the contract between your system and its users" first. Detail on REST, gRPC and WebSockets is in page 02; on keys and indexes in page 06. hellointerview.com/…/delivery

Write the access pattern next to each entity ("read by code"). It picks your database for you in section 07.

Source: Hello Interview, delivery · Pages 02, 06

06High-level design

Draw something that works, end to end core

Start with the plain skeleton below. Walk one request through it, out loud: "the client calls the load balancer, which picks an app server, which checks the cache…". Only then add the boxes this problem needs.

The default skeleton Client calls a load balancer, which spreads requests over stateless app servers; app servers read a cache, read and write a database, and push slow work onto a queue. HTTPS ROUTE R/W READ ASYNC Clientapp / browser Load balancerL7, health checks App serversstateless QueueKafka / SQS CacheRedis Databaseprimary + replicas LEGEND Caller Service Stores data Scale by adding more
Start here for almost any web system, then change what the problem needs.
BoxJobPage
Load balancerSpreads requests; removes dead servers03
Stateless app serversHold no user data in memory, so any server can take any request10
CacheKeeps hot reads in memory04, 05
DatabaseSource of truth06, 07
QueueMoves slow work out of the request09
In everyday words
A restaurant. The host seats you (load balancer). Any waiter can serve you (stateless). The kitchen keeps popular dishes ready (cache). The pantry is the truth (database). Dishes that take long go on the order rail (queue).
Actually
Alex Xu's step 2 is "propose high-level design and get buy-in": draw the key boxes and ask the interviewer if they agree before going deeper. That "buy-in" is the point. A design the interviewer has agreed to is one you can build on. The skeleton itself is common practice, not a standard (advice). Alex Xu review, ch. 3

Get the skeleton agreed, then change it. Do not start with the clever part.

Source: Alex Xu review · Pages 03-09

07How to choose a database, cache and queue

A decision you can say in one breath interview favourite

Pick the boring choice first. Leave it only when a requirement forces you. Then say which requirement forced you. That sentence is the trade-off the interviewer wants to hear.

Which database first? Ask two questions. Need joins or transactions: pick a SQL database. Else, simple key lookups at huge scale: pick a key-value or wide-column store. Else a document store. YES NO YES NO Joins or ACID? Key lookups? Relational SQLPostgreSQL / MySQL Key-value storeDynamoDB / Cassandra Document storeMongoDB LEGEND Safe default Question Pick
Start from SQL. Leave it only when a requirement forces you.
NeedPickWhyWatch out
Hot reads, same data again and againCache (Redis, Memcached)Memory is ~1000x faster than diskStale data; invalidation; cache stampede
Leaderboards, counters, rate limitsRedisSorted sets and atomic incrementsMemory cost; persistence settings
Slow work after the request (email, video encode)Queue (SQS, RabbitMQ)User does not wait; retries for freeAt-least-once: make workers idempotent
Many readers of one event stream; replayLog (Kafka)Kept on disk; each consumer has its own offsetOrder only inside one partition
Full-text search, fuzzy matchSearch engine (Elasticsearch)Inverted indexNot the source of truth; sync lag
Big files (images, video)Object storage (S3)Cheap, durable, hugeStore the key in the DB, not the file
Actually
"Queue vs log" is a real difference. A queue like SQS deletes a message once a consumer handles it. Kafka keeps messages for a set retention time, and each consumer group tracks its own offset, so many readers and replays work. Kafka's docs say an idempotent producer "guarantees that resending will not result in duplicate entries in the log". Detail and sources in pages 09 and 13. kafka.apache.org design

Say "SQL, because we need transactions on orders; I would move to X only if Y". That is a full trade-off in one line.

Source: Kafka design docs · Pages 04, 05, 06, 09, 11

08Deep dives and talking about trade-offs

The sentences that score core

A deep dive zooms into one box and shows the real mechanism. Pick the part that is hardest for this problem: ID generation for a URL shortener, fan-out for a feed, ordering for chat. Then compare two options out loud.

MomentPhrase to use
Offering a choice"There are two ways. A gives us X but costs Y. B is the reverse."
Picking"Given the read-heavy numbers we wrote down, I pick A."
Naming the cost"The price is that reads can be a few seconds stale. For likes that is fine."
Leaving a door open"If writes grew 10x, I would switch to B. Here is what changes."
Handing over control"I could go deeper on caching or on ID generation. Which is more useful to you?"
Not knowing"I have not used X in production. My understanding is… Here is how I would check."
Classic pair
Consistency vs availability
During a network split you must choose: refuse some requests, or answer with possibly old data. Page 08.
Classic pair
Latency vs cost
Precompute and cache to be fast; pay in memory, storage and stale data.
Classic pair
Write work vs read work
Do work at write time (fan-out) or at read time (fan-in). Pick by the read/write ratio.
Classic pair
Simple vs scalable
One database is easy to run. Shards scale but make joins and transactions hard.
In everyday words
Buying a car. "The sports car is fast, but costs more and seats two. We have three kids, so the van." The listener trusts the reason more than the pick.
Actually
Google's SRE workbook builds the same habit into its loop: after "Is it possible?" it always asks "Can we do better?", then "Is it feasible?" (money, hardware) and "Is it resilient?" ("What happens when this component fails?"). Those four questions are a ready-made deep-dive script. sre.google/workbook/non-abstract-design

Every pick gets "because" and "the cost is". A pick without a cost sounds like a guess.

Source: Google SRE workbook, NALSD · phrases are advice

09"What if traffic grows 10x?"

The most common follow-up interview favourite

This question checks if you know where the design breaks first. Do not list every tool you know. Use the numbers: multiply your peak QPS and storage by ten, and find the first box that cannot take it.

Moves for 10x traffic Six steps from cheap to costly: measure the bottleneck, add cache and CDN, add read replicas, add app servers, add queues, shard the database. 1. Measure: which part breaks first?CPU, DB QPS, p99 latency, connections 2. Cache hot reads, put a CDN in frontcuts DB reads; static files leave your servers 3. Add read replicasmore read capacity; replicas lag a little 4. Add stateless app serversbehind the load balancer; autoscale 5. Queue the slow workabsorb spikes; workers drain at their pace 6. Shard the databasesplit writes by key; costly and hard to undo LEGEND Always first Common move Last resort
Climb from the top. Each step down costs more and is harder to undo.
How it sounds (feed example)
Peak reads go 35k → 350k QPS. Peak writes go 3.5k → 35k.
1. App servers are stateless: add more behind the LB. Cheap.
2. Feed reads already hit Redis; add Redis shards for memory.
3. DB writes at 35k/s is past one primary  // the real bottleneck
   → shard posts by user_id; move counters to Redis with periodic flush.
4. Celebrity fan-out grows too: switch those users to pull-on-read.
In everyday words
A shop suddenly gets ten times the customers. You do not rebuild the shop. You first see where the line forms: the till, the door, or the stockroom. Then you fix that one place.
Actually
The order of moves is advice, but each move's limit is real. Read replicas add read capacity but not write capacity, because every write still goes to the one primary (page 07). Twitter's 2013 numbers show why read-heavy systems precompute: about 300k QPS of timeline reads against about 6,000 writes per second. highscalability.com, Twitter 2013

Answer 10x with numbers: "this box hits its limit first, so I change this box". Not with a shopping list.

Source: High Scalability on Raffi Krikorian's 2012 talk · Pages 07, 04

10Thinking out loud

Silence scores zero core

The interviewer can only score what they hear. A great idea you keep in your head is worth nothing. Talk in a loop: say it, draw it, check in, adjust.

The talking loop Say what you will do, draw it, check in with the interviewer, adjust, then repeat for the next part. THEN PAUSE LISTEN NEXT PART Say the plan"next I will..." Draw itboxes, arrows, numbers Check in"does this match?" Adjusttake the hint LEGEND Step Step most people skip
Repeat this loop every few minutes. Silence breaks it.
Do
Narrate: "I am thinking about whether the cache can go stale here."
Do
Take hints. "Have you thought about…" means "please go there now".
Do
Summarise every 10 minutes: what is done, what is next.
In everyday words
A pilot talking to the tower. "Turning left, climbing to 3,000." The tower can only help if it knows what you are doing.
Actually
"Communication and collaboration" is one of the four areas Hello Interview says is assessed, and Alex Xu's framework makes "get buy-in" a named part of step 2. Both treat the talk itself as something that is scored, not decoration. hellointerview.com intro

Check in at least once per step. It also saves you from building the wrong thing for ten minutes.

Source: Hello Interview, introduction · Alex Xu review

Practice

—When to use what

Situation → pick → why decision table

SituationPickWhy
Reads far more than writes (feeds, profiles, URL redirect)Cache + read replicasMost requests never touch the primary database
Money, stock, bookingsSQL with transactions, strong consistencyWrong data costs real money
Huge write volume, simple key access (events, chat history)Wide-column / key-value storeScales writes by adding nodes
Slow or flaky downstream (email, push, payment provider)Queue + retries + idempotencyThe user request stays fast; failures retry safely
Server must push to the clientWebSocket (or SSE)Polling wastes requests and adds delay
Static files, video, images worldwideObject storage + CDNBytes travel from an edge near the user
Protect the API from abuseRate limiter at the gatewayStops bad traffic before it costs anything
Need unique IDs on many machinesSnowflake-style IDsNo central counter; roughly time-sorted

—Common mistakes

What sinks good engineers traps

Trap 1
Jumping to the solution

Looks like: "We use Kafka and Cassandra" in minute 1.

Fix: requirements and numbers first. The tools follow from them.

Trap 2
Over-engineering

Looks like: 15 microservices for 100 QPS.

Fix: the simplest design that meets the numbers. Add parts only with a reason.

Trap 3
Ignoring the numbers

Looks like: estimating 35k QPS, then never using it.

Fix: point back to the number at each choice.

Trap 4
Silent thinking

Looks like: two minutes of quiet drawing.

Fix: narrate while you draw.

Trap 5
Buzzwords without mechanism

Looks like: "consistent hashing" with no idea how it moves keys.

Fix: only name what you can explain one level down.

Trap 6
No failure story

Looks like: every box always works.

Fix: for each box ask "what if it dies?" and answer it.

Trap 7
Fighting the interviewer

Looks like: defending a choice after a clear hint.

Fix: "Good point. If that matters, I would change it like this."

Trap 8
Running out of time

Looks like: still on requirements at minute 20.

Fix: watch the clock; use the 45-minute plan.

—Building blocks cheat sheet

One line each, with the course page to revise links

Building blockOne-line useRevise in
Estimation, latency, availabilitySize the problem; nines of uptime01 Fundamentals
HTTP, REST, gRPC, WebSocketHow clients and services talk02 Networking and APIs
Load balancer, gateway, rate limiterSpread and protect traffic03 Load balancing
Cache, CDNServe hot data fast and close to the user04 Caching and CDNs
RedisCounters, sorted sets, locks, sessions05 Redis
SQL, NoSQL, indexes, transactionsPick and shape the store06 Databases
Replication, sharding, consistent hashingGrow past one machine07 Replication and sharding
CAP, quorum, consensusReason about failures and staleness08 Distributed systems
Queues, pub/sub, KafkaAsync work and event streams09 Messaging and Kafka
Saga, outbox, circuit breakerMake many services behave10 Microservices patterns
Object storage, searchFiles and text search11 Storage and search
AWS compute, VPC, IAM, S3Where it runs12 AWS compute
DynamoDB, ElastiCache, SQS, LambdaManaged versions of the blocks13 AWS data
Metrics, logs, SLOs, authKnow it works; keep it safe14 Observability
Full worked designsPractise the whole flow16 Classic designs

—Practice plan, week by week

Eight weeks, about an hour a day advice

WeekLearnPractise (out loud, 45-minute timer)
1Pages 01-03: estimation, APIs, load balancingDo 10 estimation drills. URL shortener, untimed.
2Pages 04-06: caching, Redis, databasesURL shortener timed. Rate limiter.
3Pages 07-08: sharding, CAP, consensusKey-value store. Typeahead.
4Pages 09-10: Kafka, microservices patternsNotification system. News feed.
5Page 11 + 14: storage, search, observabilityWeb crawler. Chat system.
6Pages 12-13: AWS mappingVideo streaming. Map each box to an AWS service.
7Page 16 re-read; weak spotsRide sharing. Payment system. One mock with a friend.
8Cheat sheets onlyTwo mocks with a stranger. Re-do your worst design.
Why this order
Each week's designs use the blocks you just learned. Recording yourself once a week shows the silences and the "um"s you cannot hear live. This plan is advice, not from a source.

—Interview questions

About the interview itself, with model answers 20 questions

What do you do in the first five minutes? easy
Show answer
I ask questions and write two lists: functional requirements (what it does) and non-functional ones (scale, latency, consistency, availability). I pick 3 to 5 core features and say what is out of scope. I ask for daily users and the read/write ratio, because those set the whole design. I do not draw boxes yet. Alex Xu gives this step 3-10 minutes in a 45-minute slot. Ending the step with "does this scope look right to you?" gets buy-in and stops me building the wrong thing.
Why estimate at all if the numbers are rough? easy
Show answer
Because the size class changes the design. 100 QPS fits on one database; 100k QPS does not. A rough estimate tells me if I need caching, replicas or sharding. I round hard: 100M users × 10 actions ÷ 86,400 s ≈ 12k QPS average, about 35k at a 3x peak. Then I use the number: "35k writes per second is past one primary, so I will shard." An estimate that changes nothing was wasted time.
How is SDE-2 judged differently from SDE-1? easy
Show answer
An SDE-1 must reach a working design, with hints allowed. An SDE-2 is expected to reach it without hints, bring their own numbers, go deep on one or two hard parts, and name the trade-off of each choice unasked. Hello Interview says mid-level covers "the basics well but not into great depth" while seniors move fast to deep dives. SDE-2 sits between: solid basics plus at least one real deep dive. Company rubrics are private, so this is my reading.
The interviewer says "design Twitter". What do you say first? easy
Show answer
"Twitter has many features. Can I focus on posting a tweet, following users, and the home timeline? I will leave out search, DMs and ads unless you want them." Then: how many daily users, how many tweets per user, how many timeline reads. Is a few seconds of delay on the timeline OK? That last answer matters most: if yes, I can precompute timelines (fan-out on write), which is how Twitter served about 300k timeline reads per second in 2012.
How do you choose between SQL and NoSQL? medium
Show answer
I start from SQL: transactions, joins, constraints and mature tooling. I move away only when a requirement forces it. Very high write volume with simple key access (chat history, events) points to a wide-column or key-value store that scales by adding nodes. Flexible nested documents point to a document store. Then I say the cost: "Cassandra gives me write scale, but no joins and only per-partition ordering, so I design tables around my queries." The reason matters more than the pick.
When do you add a cache, and what can go wrong? medium
Show answer
When reads repeat and the read/write ratio is high, like 10:1 or more. Cache-aside is the usual pattern: read the cache, on a miss read the DB and fill the cache with a TTL. What goes wrong: stale data (fix with TTL or delete-on-write), a stampede when a hot key expires (fix with a lock or early refresh), and a cold cache after restart. I also say what I do if Redis is down: fall back to the DB with a rate limit, so the DB is not crushed.
Queue or direct call? medium
Show answer
Direct call when the user needs the answer now and the callee is fast and reliable. Queue when the work is slow, can be late, or the downstream is flaky: sending email, encoding video, push notifications. A queue keeps the user request fast and absorbs spikes. The cost: delivery is usually at-least-once, so consumers must be idempotent (doing it twice gives the same result). I also add a dead-letter queue for messages that keep failing.
How do you handle "what if traffic grows 10x"? medium
Show answer
I multiply my peak numbers by ten and walk the request path to find the first box that breaks. Stateless app servers: add more, easy. Read load: more cache and replicas. Write load on one primary is usually the real limit, so I shard by a key that spreads evenly, like user_id. Queues absorb bursts. I name what gets harder: cross-shard queries, rebalancing, and hot keys. The point is a ranked answer from numbers, not a list of tools.
How do you pick what to deep-dive into? medium
Show answer
I pick the part that is hardest for this problem and most likely to break: unique IDs for a URL shortener, fan-out for a feed, ordering and delivery for chat, idempotency for payments. Then I offer: "I think the riskiest part is X; shall I go deep there, or would you prefer Y?" This shows judgement and lets the interviewer steer. In the dive I compare two options, pick one with a reason, and give a number.
What do you say in the wrap-up? easy
Show answer
A 30-second summary of the design against the requirements. Then the known weak spots: "the single Redis cluster is a risk; I would add replicas and a fallback." Then what I would add with more time: monitoring (QPS, p99 latency, error rate), alerts, a rollout plan, and what breaks at 10x. Alex Xu gives this step 3-5 minutes. It ends the talk on judgement, not on a half-drawn box.
You do not know a technology the interviewer mentions. What now? easy
Show answer
Say so plainly, then reason from what I do know. "I have not used Spanner. My understanding is it gives strong consistency across regions using synchronised clocks. If that is right, here is how it changes the design." Faking it is worse than a gap: one follow-up question exposes it. Interviewers score reasoning, so a clear "I don't know, but here is how I would think about it" usually costs little.
How do you talk about consistency for a feature? medium
Show answer
Feature by feature, not system-wide. Payment balance and stock counts need strong consistency: a reader must never see a wrong value. Like counts, feeds and view counts can be eventually consistent: a few seconds late is fine. Then I tie the choice to tools: strong means a single leader or a consensus store, and reads from the primary; eventual allows replicas and caches. I say the cost: strong consistency adds latency and can refuse requests during a network split (CAP).
Design question: the interviewer gives no numbers. What do you do? medium
Show answer
I propose numbers and ask them to confirm: "Let me assume 10M daily users and 5 posts a day each; is that the right scale?" Most interviewers accept or adjust. If they say "you decide", I pick a size that makes the problem interesting (needs more than one machine) and write it down. Then I work out QPS and storage and refer back to them. Refusing to assume, or never using numbers, both look weak.
How do you show availability thinking? medium
Show answer
I walk each box and ask "what if this dies?". App servers: several behind a load balancer with health checks. Database: a primary with a replica in another zone and automatic failover. Cache: replicas, and the app survives a cache outage. Queue: durable, replicated. I tie it to a target: 99.9% allows about 43 minutes of downtime a month; 99.99% about 4.3 minutes. Higher nines need multi-zone or multi-region and cost more.
What is a good API design answer in an interview? easy
Show answer
One endpoint per functional requirement, with method, path, input and output. For a URL shortener: POST /v1/urls with the long URL returns the short one; GET /{code} returns a 302 redirect. I mention the user comes from the auth token, not the body. For lists I use cursor pagination. For writes that may be retried (payments, orders) I add an idempotency key header. Keep it short: three to five lines, then move on.
How do you avoid over-engineering? medium
Show answer
I tie every box to a requirement or a number. If I cannot say which requirement a box serves, it goes. At 500 QPS, one database with a replica is enough; Kafka and sharding are noise. I say so: "At this scale one Postgres is enough. If writes grow past a few thousand per second, I would shard." That shows I know the bigger tools and when they pay off, without paying their cost now.
Design question: how would you design for a global audience? hard
Show answer
Static content goes to a CDN so bytes come from an edge near the user. Reads can be served from regional replicas or caches. Writes are the hard part: either one home region per user (simple, consistent, slower for travellers) or multi-region writes with conflict handling (fast, complex). I pick per data type: a user's profile lives in their home region; global counters can merge. Cost: cross-region latency is ~100 ms+ per round trip, so I avoid synchronous cross-region calls on the hot path.
What if the interviewer pushes back on your choice? medium
Show answer
First, find out why: "Is the concern write volume or cost?" Often the push-back is a hint toward a deep dive they want. If their point is right, I change the design and say what it costs. If I still think my choice fits the stated requirements, I explain once, with the number behind it, and offer the alternative: "If you expect writes to grow 10x, then your option wins." Being stubborn or folding at once both score badly.
How do you manage time if you fall behind? medium
Show answer
I watch the clock against the plan: requirements done by minute 8, a working picture by minute 25. If I am late, I say it: "I'll keep the data model short so we have time for the deep dive." I cut detail, not steps. A working end-to-end design with one deep dive beats a perfect requirements list with no design. If the interviewer pulls me into a detail early, I follow, then return to the plan.
Design question: walk through a whole mini design of a pastebin in 3 minutes. hard
Show answer
Requirements: paste text, get a link, read by link; 1M pastes a day, reads 10x; pastes up to 1 MB, expiry. Numbers: ~12 writes/s, ~120 reads/s average, storage ≤1 TB a day worst case. API: POST /pastes → {id}; GET /pastes/{id}. Design: app servers behind a LB; text goes to object storage (S3) keyed by id; metadata (id, key, expiry) in a SQL or key-value table; a cache and CDN for hot pastes. Deep dive: id generation (random base62, check for collision) and expiry (TTL plus a cleanup job).

—Cheat sheet

Memorise these numbers

FactValueSource
Alex Xu's steps (45-min slot)Scope 3-10 · High-level 10-15 · Deep dive 10-25 · Wrap 3-5 minBook ch. 3 (via review)
Hello Interview stepsRequirements ~5 · Entities ~2 · API ~5 · High-level ~10-15 · Deep dives ~10 minhellointerview.com
Seconds in a day86,400 (≈ 100k)arithmetic
1M per day≈ 12 per secondarithmetic
Memory reference / datacenter round trip~100 ns / ~500 µsDean / Norvig list, approximate
Downtime per 30 days at 99.9% / 99.99%~43 min / ~4.3 minarithmetic: 43,200 min × 0.1% / 0.01%
Peak factor2-3x average (assumption)advice
NALSD questionsPossible? Better? Feasible? Resilient?Google SRE workbook ch. 12

Reference

—Sources

WhatWhere
Alex Xu, "System Design Interview", ch. 3 framework (secondary, quotes the book)sandordargo.com review
Hello Interview delivery framework (minutes per step)hellointerview.com/learn/system-design/in-a-hurry/delivery
Hello Interview, what is assessed, level expectations…/in-a-hurry/introduction, …/problem-breakdowns/bitly
Google SRE workbook, Non-Abstract Large System Designsre.google/workbook/non-abstract-design
Latency numbers (Jeff Dean, Peter Norvig), approximategist.github.com/jboner/2841832, norvig.com/21-days.html
Twitter timeline numbers, 2012 talkhighscalability.com, 2013
Kafka delivery semanticskafka.apache.org/43/design/design
Things marked adviceMy synthesis: the SDE-1 column, the 8-step minute split, phrases, practice plan

Course

—Where next

Use the framework on real problems course

Next, page 16 Classic designs runs this exact framework end to end on eleven classic questions. Before that, page 14 covers the monitoring you mention in the wrap-up. All pages are on the course home.