How to Practice System Design
Reading this repo will make you understand system design. Only practice will make you good at the
interview. This chapter is the meta-guide: how to turn knowledge into fluency, why active recall beats
re-reading, and a concrete study plan you can start today.
Prerequisites: The Framework, Case Studies
Time to read: ~14 minutes
The uncomfortable truth
🚨 You cannot learn system design by reading, any more than you can learn to swim by reading. Watching
someone design Twitter feels like learning; it isn’t. The interview asks you to produce a design under
time pressure while thinking out loud — a performance skill. Performance skills are built by doing the
thing, getting feedback, and doing it again.
The single biggest mistake candidates make is passive consumption — reading case studies, watching
videos, nodding along — and mistaking recognition (“yeah, I’ve seen fan-out”) for the ability to generate
the answer from scratch when the clock is running. 🚨 Recognition ≠ recall ≠ performance. Close the gap
deliberately.
The practice loop
For every topic or problem, run this loop:
flowchart LR
A[Attempt cold<br/>no notes, timed] --> B[Compare to a<br/>reference answer]
B --> C[Identify the gap<br/>what did I miss?]
C --> D[Study just that gap]
D --> E[Redo later<br/>from scratch]
E --> A
- Attempt cold. Before reading the write-up, design it yourself — 45 minutes, out loud, on a
whiteboard. This is uncomfortable and that discomfort is the learning.
- Compare to the reference (the case study, a mock partner, a rubric).
- Find the gap — the deep dive you skipped, the trade-off you couldn’t name, the estimation you
fudged.
- Study the gap specifically — go read that one building block.
- Redo from scratch a few days later. If you can re-derive it, you’ve learned it. If you’re recalling
the write-up, you haven’t.
🚨 The gap between your cold attempt and the reference is your entire study list. Everything else is
noise.
Active recall & spaced repetition
Two learning-science principles do the heavy lifting:
- Active recall: retrieving an answer from memory (a cold attempt) builds durable knowledge far better
than re-reading. Every time you struggle to recall the fan-out trade-off and then get it, you strengthen
it. Re-reading feels productive but builds almost nothing.
- Spaced repetition: revisit a problem after increasing intervals (1 day, 3 days, a week, two weeks).
Redoing “Design Twitter” cold a week later, when it’s slightly faded, is worth ten re-reads. 🚨 Space
your redos; don’t cram them.
Keep a simple log: problem, date attempted, what you missed, date to redo. A spreadsheet is enough.
Practice out loud
🚨 The interview is a spoken performance — practice speaking, not just thinking. Silent whiteboarding
in your head skips the hardest part: narrating your reasoning clearly while designing. Record yourself, or
better, practice with a partner. You’ll discover that things clear in your head come out as mush the first
time you say them. That’s exactly the skill the interview tests, so build it directly.
- Rubber-duck: explain a design aloud to an inanimate object / an imagined interviewer.
- Record & rewatch: painful but revealing — you’ll hear the filler, the skipped steps, the
unjustified buzzwords.
- Mock with a partner: the gold standard (see mock interviews).
The four kinds of drills
Practice decomposes into skills you can drill separately before combining them in a full mock:
- Estimation drills — back-of-envelope math until numbers are instant.
- Component drills — “when and why would you use X?” for every building
block.
- Trade-off drills — articulate the trade-off for any decision, in
trade-off vocabulary.
- Full mocks — a complete 45-minute design, ideally with a partner.
🚨 Isolate weaknesses. If your estimation is shaky, drill just estimation for a week — don’t hide it
inside full mocks. Musicians practice scales separately from pieces; do the same.
A concrete study plan
Pick the track that matches your timeline (see ROADMAP for the full version):
If you have 2 weeks (crunch)
- Days 1–3: read Part 0, Part 11 framework, skim building blocks.
- Days 4–10: one case study/day — cold attempt first, then read. Cover
the Tier-1 and your target company’s favorites.
- Days 11–13: full mocks with a partner; drill your weakest skill.
- Day 14: rest, review your notes/soundbites.
If you have 4–8 weeks (recommended)
- Weeks 1–2: foundations + building blocks, with estimation and
component drills daily.
- Weeks 3–6: two case studies/week (cold attempt → read → redo the previous week’s cold). Add
trade-off drills.
- Weeks 7–8: full mocks 2–3×/week; spaced redos of earlier problems; polish.
Ongoing (career-long)
Measuring progress
You’re improving when:
Grade yourself honestly with the self-grading checklist.
🚨 Common practice mistakes
- Reading instead of attempting. The cold attempt is non-negotiable — do it even when it’s ugly.
- Only doing full mocks. Drill weak sub-skills in isolation.
- Never redoing. Spaced repetition is where fluency comes from; one pass isn’t enough.
- Practicing silently. The interview is spoken; practice speaking.
- Memorizing designs. You’ll get a variant you didn’t memorize. Learn to derive from principles and
patterns.
- No feedback loop. Compare against a reference/rubric/partner, or you’ll reinforce your mistakes.
🛠️ Start now
1. Do a cold attempt today. Pick URL Shortener, set a
45-minute timer, and design it out loud before reading it. Note every gap. That’s your first study list.
2. Set up a practice log. A spreadsheet: problem, date, what I missed, redo date. Fill in row one from
step 1.
3. Schedule your redos. Put the 1-day / 3-day / 1-week redos in your calendar now, or they won’t happen.
Further reading