System Design Series — Page 7
The Interview Framework
How to structure a system design answer in 45 minutes. The RESHADED framework, back-of-the-envelope estimation, latency numbers, and the six mistakes that cost people offers.
45 min
Average Interview
8
RESHADED Steps
6
Estimation Scenarios
9
Latency Numbers
Most people fail system design interviews not because they don't know the concepts — but because they don't know how to present them. You have 45 minutes. The interviewer is evaluating your ability to break down ambiguity, make decisions under pressure, communicate tradeoffs, and demonstrate depth where it matters. That's a performance skill, not just a knowledge test.
This page teaches the meta-skill: how to structure your answer. We'll walk through the RESHADED framework (8 steps, applied to a real example), practice estimation with 6 scenarios from Twitter to Uber, memorize the latency numbers that shape every architecture, and dissect the 6 mistakes that cost people offers.
If you haven't read the series yet, start with System Design 101 for the building blocks, then The Data Layer and Distributed Systems for the concepts you'll apply. This page teaches you how to wield them in 45 minutes.
The RESHADED Framework — 8 Steps, 45 Minutes
Every strong system design answer follows a structure. RESHADED gives you one: Requirements, Estimation, Storage, High-level, API, Detailed, Evaluation, Distinctive. Each step builds on the last. Skip one and the interviewer notices.
Requirements
3–5 minClarify what you're building. Separate functional requirements (what it does) from non-functional requirements (how well it does it). This is the most important step — a wrong assumption here derails the entire design.
- 1.Ask: Who are the users? How many?
- 2.List functional requirements (core features only — 3-5 max)
- 3.List non-functional requirements (latency, availability, consistency, durability)
- 4.Identify scale: DAU, read:write ratio, data volume
- 5.State assumptions explicitly — don't guess silently
Functional: shorten URL, redirect to original, custom aliases optional, link expiry. Non-functional: 99.99% availability, <100ms redirect latency, 100:1 read:write ratio, 100M new URLs/day.
Jumping straight to architecture without asking a single question. Interviewers expect you to clarify — it's not a test of telepathy.
Time Allocation (45 min interview)
Detailed Design gets the most time — that's where senior thinking shows
The framework is the skeleton. Estimation is the muscle.
You know the structure. But when the interviewer asks “how many servers do we need?” — you need to answer with numbers, not vibes. Back-of-the-envelope estimation takes 2-3 minutes and completely changes your architecture. The difference between 10K QPS and 1M QPS is the difference between one server and a distributed system.
Estimation Gym — Practice Back-of-the-Envelope Math
Estimation is a distinct interview skill. The goal isn't exact numbers — it's order of magnitude. Is it 10K QPS or 1M QPS? That changes everything. Practice with these 6 real-world scenarios using the formula: QPS = DAU × actions / 86,400.
Twitter has 400M DAU. Each user views 200 tweets and posts 2 tweets per day. Calculate read and write QPS.
Try to estimate the answer before revealing the solution
Estimation is only as good as your baseline numbers
To estimate “can one Redis node handle this?” you need to know that Redis does ~100K-500K ops/sec. To decide between caching and hitting the database, you need to know that L1 cache is 0.5ns and a cross-datacenter round trip is 500μs — a million times slower. These numbers are the vocabulary of system design.
Numbers to Know — The Cheat Sheet
System design estimation relies on a small set of memorized numbers. Jeff Dean's latency numbers, powers of 2, and throughput baselines for common systems. Knowing these lets you estimate any system's requirements in under 3 minutes.
Latency Numbers Every Programmer Should Know
Originally compiled by Jeff Dean at Google. L1 cache to cross-continent spans a 300-million-x difference. These numbers shape every caching, replication, and architecture decision.
Powers of 2 — Quick Size Reference
Quick Reference — Numbers for Estimation
Click a card to reveal the value. Test yourself.
Knowing the right answer isn't enough if you deliver it wrong
You can know every concept, nail the estimation, and still fail the interview. System design is a communication exercise as much as a technical one. The difference between a “hire” and a “no hire” often comes down to how you present — not what you present. Here are the six patterns that trip up even experienced engineers.
6 Mistakes That Cost People Offers
These aren't edge cases. They're the most common reasons candidates fail system design interviews, based on feedback from interviewers at Google, Meta, Amazon, and Stripe. Each one is preventable.
Jumping straight into drawing boxes without asking a single question. You're solving a problem you invented, not the one the interviewer intended.
Interviewer: 'Design a chat system.' You: 'Okay, so we have WebSocket servers...' — you never asked: 1-to-1 or group? Message history? Read receipts? Presence? File sharing?
Spend the first 3-5 minutes ONLY on requirements. Ask at least 5 clarifying questions. Write the requirements on the board.
Continue the Series
You have the framework. Now apply it — the Netflix case study walks through a complete system design using every concept from the series.
Frequently Asked Questions
How long should I spend on each part of a system design interview?+
Should I draw a diagram in a system design interview?+
What if I don't know a specific technology the interviewer mentions?+
How do I handle 'what if' follow-up questions?+
Should I mention specific technologies like Redis, Kafka, or DynamoDB?+
How important is back-of-the-envelope estimation?+
What's the difference between a junior and senior system design answer?+
How many system design problems should I practice?+
What if I run out of time?+
Is the RESHADED framework the only way to structure an answer?+
Sources & References
- Jeff Dean — Numbers Every Programmer Should Know (Stanford CS295)
- Alex Xu — System Design Interview (Volume 1 & 2)
- Designing Data-Intensive Applications — Martin Kleppmann (O'Reilly)
- Google SRE Book — Site Reliability Engineering (sre.google/sre-book)
- ByteByteGo — System Design Interview Framework (blog.bytebytego.com)
- Meta, Google, Amazon — System Design Interview Feedback Patterns (Glassdoor, Blind)
- Twitter, YouTube, WhatsApp, Uber, Instagram, Slack — Public Engineering Blogs