Resumer

Skip to article
5 min read

System design when you haven't drilled it: a survival framework

If you have a system-design round in two weeks and no prep time, here's the minimum-viable approach that won't get you screened out.

interviewssystem-designengineering
System design when you haven't drilled it: a survival framework
On this page
  1. 01The interviewer is not testing whether you've seen this problem before
  2. 02The seven moves
  3. 03Four archetypes to memorize
  4. 04What senior thinking actually sounds like
  5. 05The 14-day study plan
  6. 06What to do mid-interview when you don't know something
  7. 07What this isn't
  8. 08Sources

System-design rounds are the interview format with the worst signal-to-prep ratio. Two weeks of focused prep gets most candidates to a passable level. Six months of prep gets them to staff-level. Almost no other interview format has such a sharp learning curve in the first 20 hours.

This post is for the candidate who has a system-design round coming in two weeks and no prep time to speak of. The goal isn't to get a perfect score. It's to look like someone who could do the job, which is a lower bar than candidates assume.

The interviewer is not testing whether you've seen this problem before

System-design interviews look like memorization tests. They aren't. The interviewer almost certainly knows you haven't designed Twitter from scratch, and they don't care. What they're checking is whether your thinking about scaling tradeoffs is legible.

This matters because most candidates fail by treating the round as a memorization exercise — trying to recall the exact design from a YouTube video they watched. The interviewer notices when you're regurgitating. Worse, the interviewer asks a follow-up the video didn't cover, and you have nothing.

The candidates who pass have a structure they apply to whatever they're asked. The structure is the prep. The specific patterns are bonus.

The seven moves

The seven moves of a defensible system-design round

Backbone
  1. 01
    Clarify scope and scale (3-5 min)

    Ask three questions: who uses it, how many, and what does success mean. 'Are we designing Twitter for 100 users or 100 million?' is a serious question. Without it, you'll over-engineer or under-engineer at random. Write the assumptions on the board.

  2. 02
    Sketch the functional requirements (3 min)

    List what the system must do, in 3-5 bullet points. Posting, viewing, search, notifications. Then list one or two explicit non-goals — 'we're not designing the recommendation algorithm.' This bounds the conversation and prevents scope creep mid-design.

  3. 03
    Capacity estimation, out loud (3-5 min)

    Daily active users, read-to-write ratio, payload size, peak QPS. Do the math out loud and round generously. The interviewer doesn't want precision — they want to see you reason about whether this is 1k or 10M QPS, because the architecture answer differs by orders of magnitude.

  4. 04
    Draw the high-level architecture (5-8 min)

    Five boxes max: client, load balancer, app servers, cache, database. Add a queue or a CDN if the use case demands it. Resist drawing 14 boxes — the interviewer can't grade what they can't follow.

  5. 05
    Drill into one component (10-15 min)

    Pick the most interesting bottleneck and go deep. The feed-generation service. The notification fanout. The chosen depth shows engineering judgment more than the breadth of the diagram. The interviewer is usually waiting to follow your lead.

  6. 06
    Discuss failure modes (5 min)

    What breaks when the database goes down? When the cache is cold? When traffic 10x's overnight? Naming three real failure modes and one mitigation each is the highest-leverage move in the entire round.

  7. 07
    Recap and offer alternatives (2 min)

    Summarize the design in one paragraph. Mention one thing you'd do differently with more time, and one tradeoff you made on purpose. Self-awareness in the recap closes the round well.

The seven steps are the backbone. Every senior-engineering system-design round at every reputable tech company follows roughly this arc, even when the surface details differ.

The two moves candidates most often skip are step 1 (clarify) and step 6 (failure modes). Skipping step 1 makes the rest of the design arbitrary — you can't know if you need sharding without knowing how big the data is. Skipping step 6 signals that you've designed systems but never been on call for one. Both are easy to add and disproportionately valued.

Step 5 — the deep-dive — is the highest-leverage move. The interviewer is generally not impressed by a broad sweep across every component. They're impressed by depth in one component that reveals you actually understand what's happening. Pick the most interesting one and lean in.

Four archetypes to memorize

Four common system-design archetypes (memorize one of each)

Pattern bank
Read-heavy
Twitter-style feed

Fan-out on write vs. fan-out on read tradeoff. Cache aggressively. Discuss eventual consistency on the timeline. If asked anything social, this pattern usually fits.

Write-heavy
Ride-sharing dispatch

Real-time matching, geospatial indexing, queueing. Discuss partitioning by geo, low-latency reads, and what happens when supply drops to zero. Generalizes to delivery and on-demand services.

Search
Autocomplete / search index

Inverted index, prefix tree, ranking. Discuss freshness vs. latency tradeoff. Discuss how the index gets updated and how stale data is acceptable. Useful for any 'search bar' prompt.

Storage / pipeline
Distributed file store

Chunking, replication, consistency model. Discuss what 'durable' means and what 'available' means and why they conflict. Useful for storage, logging, analytics pipelines.

You do not need to memorize 30 designs. You need to memorize four — one read-heavy, one write-heavy, one search, one storage — and the tradeoffs each archetype is built around. Almost every system-design prompt maps to one of these four with minor variations.

A worked mapping:

  • "Design Instagram" → read-heavy archetype, fan-out + cache, plus image-storage subproblem
  • "Design Uber" → write-heavy real-time matching, geospatial indexing
  • "Design a URL shortener" → write-light read-heavy plus a hashing detail
  • "Design a notification system" → write-heavy queueing with fanout
  • "Design a typeahead / autocomplete" → search archetype with a trie or n-gram index

If you understand the four archetypes deeply enough to draw them in 10 minutes each, you can compose them to handle 80% of system-design prompts. The remaining 20% are usually niche storage or streaming problems and they're rare in non-specialist interviews.

What senior thinking actually sounds like

What signals senior thinking vs. junior thinking

Same diagram, different framing
Senior signal
  • Asks scale and scope before drawing
  • Names tradeoffs out loud — 'we trade write latency for read availability'
  • Picks one component to drill into and goes deep
  • Mentions monitoring and how to verify the design works
  • Acknowledges what they'd do differently with more time
Junior signal
  • Starts drawing immediately
  • Adds Kafka because they've heard of Kafka
  • Skims every component superficially
  • Treats the design as final the moment it's drawn
  • Defends the first design instead of iterating

The difference between a junior and a senior system-design round is not the diagram. It's the running commentary on tradeoffs.

A junior candidate draws three app servers behind a load balancer and moves on. A senior candidate draws the same three app servers and says: "I'm putting these stateless because we'll need to scale horizontally. We'll keep session state in the cache rather than in the app. The tradeoff is one more network hop per request, but it makes failover trivial."

The diagram is identical. The signal is completely different.

This is the most important thing to internalize before a system-design round: the interviewer is grading the commentary, not the drawing. If you can't draw a fancy diagram but can talk about three tradeoffs and one failure mode for whatever you do draw, you'll pass most rounds.

The 14-day study plan

If you have exactly 14 days, the highest-ROI plan looks like:

  • Days 1-3: Read System Design Primer — sections on caching, load balancing, databases, queues. Skim, don't memorize. Two hours per day is enough.
  • Days 4-7: Watch one design video per day from Hello Interview, Exponent, or similar. Take notes on the structure they use, not the specific designs.
  • Days 8-10: Practice three designs out loud — one read-heavy, one write-heavy, one search. Use a whiteboard or paper. Time yourself to 35 minutes.
  • Days 11-13: Do one mock interview if you can. If you can't, do another three solo designs with a focus on the deep-dive step.
  • Day 14: Rest. Re-read your notes once. Sleep.

The biggest mistake candidates make is watching 30 videos and doing zero solo designs. The skill is not in the watching — it's in the talking out loud. Five practice designs beat 30 hours of passive learning.

For broader interview prep timing, see phone-screen-what-recruiters-evaluate. For the behavioral-round structure that usually pairs with system design, see tell-me-about-yourself-90-seconds.

What to do mid-interview when you don't know something

This happens to everyone, including senior engineers. The interviewer asks "how would you handle leader election here?" and you blank.

Three responses, in order of preference:

  1. Reason from first principles, out loud. "I haven't implemented this directly, but if I were going to, I'd want one source of truth — probably a coordination service like ZooKeeper or etcd. Let me think about what happens when the leader dies..." Almost as good as knowing the answer.
  2. Ask what they'd consider standard. "Honestly, I'd reach for whatever the team uses — is there a coordination service in your stack?" Often the interviewer will share, and you're back on solid ground.
  3. Acknowledge the gap and move on. "I don't have a strong intuition for leader election. Let me note that as a thing I'd want to read up on, and come back to the design." This is fine in moderation — once is honest, twice is concerning, three times means you're not prepared.

What you should not do: bluff. Senior engineers can hear bluffing within one sentence.

What this isn't

A few clarifications:

  • It's not a coding interview. No one wants to see code. If you start writing pseudocode, you've misread the round.
  • It's not a Kubernetes review. You do not need to name specific AWS services. "Object storage" is fine — you don't have to say "S3 with cross-region replication and Glacier tiering."
  • It's not pass/fail on completeness. A partial design with strong reasoning beats a complete design with shallow reasoning. Interviewers grade depth over breadth.

The short version: the seven moves are the backbone, four archetypes cover most prompts, and the interviewer is grading commentary more than diagrams. Two weeks of focused practice clears the bar. Most candidates over-prep on memorization and under-prep on talking out loud.

More to read