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.
Each level keeps everything below it and adds one more thing.
Signal
SDE-1 (junior)
SDE-2 (your target)
Senior
Requirements
Asks a few questions when nudged
Asks on their own; writes down functional and non-functional lists
Pushes back on scope; finds the one requirement that shapes the design
Numbers
Skips them or needs help
Does a quick estimate and uses it to choose
Uses numbers to rule options out early
High-level design
A design that works, with hints
A clean working design without hints, by about minute 25
Works it out fast to leave time for depth
Deep dives
Shallow; one level down
1 or 2 real deep dives (ID generation, caching, fan-out)
Several; picks the hardest parts unasked
Trade-offs
Names a tool
Names a tool, why, and what it costs
Compares 2 to 3 options and says when each wins
Communication
Answers questions
Leads the talk, checks in often
Runs 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.
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.
First 15 minutes: agree on the problem before drawing anything.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 step
Minutes
Alex Xu step (minutes)
Hello Interview step (minutes)
1. Clarify requirements
5
1. Understand the problem, set scope (3-10)
Requirements (~5)
2. Estimation
3
part of step 1
inside Requirements
3. API design
4
part of step 2
API or system interface (~5)
4. Data model
3
part of step 2
Core entities (~2)
5. High-level design
10
2. High-level design, get buy-in (10-15)
High-level design (~10-15)
6. Deep dives
13
3. Design deep dive (10-25)
Deep dives (~10)
7. Bottlenecks, scaling
4
part of step 3 and 4
part of deep dives
8. Wrap-up
3
4. 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.
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).
Topic
Ask this
Why the answer changes the design
Users
Who uses it? Mobile, web, other services?
Mobile means flaky networks: retries, offline, push.
Core features
Which 3 features are in scope? What is out?
Fewer features = more time for depth.
Scale
How many daily users? How many actions each?
Sets QPS and storage. 1k QPS fits one database; 100k does not.
Read/write ratio
Do people read much more than they write?
Read-heavy: cache and replicas. Write-heavy: queues, sharding, log-style storage.
Latency
How fast must the main action feel? p99 target?
Under ~100 ms usually means the answer is precomputed or cached.
Consistency
Is a few seconds of stale data OK?
Money and stock counts: strong. Likes and feeds: eventual is fine.
Availability
What if it is down for 5 minutes?
High targets need replicas in several zones and no single point of failure.
Geography
One country or worldwide?
Worldwide: CDN, regional copies, and the speed of light across oceans.
Data size and life
How big is one item? Keep it forever?
Video vs text is a 1,000,000x difference in storage.
Security / abuse
Logged-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.
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.
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 this3. 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 fact
Value
Note
Seconds in a day
86,400
Round to 100k for speed: then 1M/day ≈ 10 per second
Main memory reference
100 ns
Jeff Dean / Peter Norvig list, approximate
Round trip inside one datacenter
500 µs
Same list, approximate
Bytes ladder
KB, MB, GB, TB, PB
Each 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".
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.
Choice
Pick when
Cost
REST over HTTP
Public, simple create/read calls
Chatty for many small calls
gRPC
Service to service, high volume
Harder to call from a browser
WebSocket
Server must push (chat, live location)
Long-lived connections to manage
Cursor pagination
Feeds and long lists
No "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.
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.
Start here for almost any web system, then change what the problem needs.
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.
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.
Start from SQL. Leave it only when a requirement forces you.
Need
Pick
Why
Watch out
Hot reads, same data again and again
Cache (Redis, Memcached)
Memory is ~1000x faster than disk
Stale data; invalidation; cache stampede
Leaderboards, counters, rate limits
Redis
Sorted sets and atomic increments
Memory cost; persistence settings
Slow work after the request (email, video encode)
Queue (SQS, RabbitMQ)
User does not wait; retries for free
At-least-once: make workers idempotent
Many readers of one event stream; replay
Log (Kafka)
Kept on disk; each consumer has its own offset
Order only inside one partition
Full-text search, fuzzy match
Search engine (Elasticsearch)
Inverted index
Not the source of truth; sync lag
Big files (images, video)
Object storage (S3)
Cheap, durable, huge
Store 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.
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.
Moment
Phrase 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.
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.
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.
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.
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.
Ride sharing. Payment system. One mock with a friend.
8
Cheat sheets only
Two 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
Fact
Value
Source
Alex Xu's steps (45-min slot)
Scope 3-10 · High-level 10-15 · Deep dive 10-25 · Wrap 3-5 min
Book ch. 3 (via review)
Hello Interview steps
Requirements ~5 · Entities ~2 · API ~5 · High-level ~10-15 · Deep dives ~10 min
hellointerview.com
Seconds in a day
86,400 (≈ 100k)
arithmetic
1M per day
≈ 12 per second
arithmetic
Memory reference / datacenter round trip
~100 ns / ~500 µs
Dean / Norvig list, approximate
Downtime per 30 days at 99.9% / 99.99%
~43 min / ~4.3 min
arithmetic: 43,200 min × 0.1% / 0.01%
Peak factor
2-3x average (assumption)
advice
NALSD questions
Possible? Better? Feasible? Resilient?
Google SRE workbook ch. 12
Reference
—Sources
What
Where
Alex Xu, "System Design Interview", ch. 3 framework (secondary, quotes the book)
My 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.