Vibe Engines
YouTube
LEARNING PATH · Systems & Backend

Pass the System Design Interview

For engineers prepping the system-design loop.

Intermediate ~4h10 lessons12 steps

Build the vocabulary and the trade-off intuition first, practice the back-of-envelope numbers, then rehearse five canonical designs, from a URL shortener to a payment system.

  • Speak fluently about CAP, consistency, partitioning and consensus
  • Estimate capacity and reason about trade-offs out loud
  • Walk through canonical designs with a repeatable structure
0 / 10 done · 0%
  1. HandbookNext up

    The System Design Fundamentals Handbook

    The building blocks and the vocabulary.

  2. Handbook

    CAP Theorem & Consistency Models

    Consistency vs availability under partition.

  3. Handbook

    Partitioning, Sharding & Replication

    How data scales horizontally.

  4. Handbook

    Concurrency, Locks & Isolation Levels

    Isolation levels and race conditions.

  5. Handbook

    Consensus, Transactions & Coordination

    Agreement: Raft/Paxos-level intuition.

  6. ToolTool · optional

    Interactive Capacity Estimator

    Practice back-of-envelope numbers.

  7. ToolTool · optional

    Consistent Hashing Visualizer

    See how keys move when nodes change.

  8. System Design

    Design a URL Shortener

    A clean first design to rehearse.

  9. System Design

    Design a Rate Limiter

    A focused, very common prompt.

  10. System Design

    Design a Key-Value Store

    Replication + consistency in practice.

  11. System Design

    Design a News Feed

    Fan-out and ranking at scale.

  12. System Design

    Design a Payment System

    Consistency and ledgers where it counts.

How this path works

This path is for engineers preparing for the system-design round of a backend, full-stack or infrastructure loop. It assumes you have built web services and used a database, but not that you have run a distributed system yourself.

The round is usually 45 to 60 minutes spent on one open prompt, such as a URL shortener or a rate limiter. A typical split is a few minutes on requirements and scale, a high-level sketch, then most of the time on a deep dive into whichever component the constraints make hard. The follow-up questions are almost always trade-offs: what happens during a network partition, how two writes to the same row stay correct, how the data gets split across machines, and what breaks first when traffic grows tenfold. You score well by naming the trade-off you are accepting, not by drawing the most boxes.

The steps follow that shape. Five short handbooks give you the vocabulary those follow-ups use, two tools make estimation and key placement concrete, and five designs let you rehearse the whole loop out loud. The designs run from the gentlest prompt, the URL shortener, to the least forgiving, a payment system, where a retried request must never charge a card twice.

What each step gives you

  1. The System Design Fundamentals Handbook

    The four ideas every prompt leans on: CAP and the consistency spectrum, concurrency and locking, partitioning and replication, and consensus, plus statelessness, horizontal scaling and a back-of-the-envelope primer. Read it to collect the vocabulary interviewers expect, then practice answering "why is your app tier stateless?" and "which reads can be eventually consistent here?" in one or two sentences each.

  2. CAP Theorem & Consistency Models

    What CAP actually claims, why "CA" is not a real option, how PACELC adds the latency trade-off you pay even without a partition, and the spectrum from linearizable to causal to eventual consistency. You also prove the quorum rule, that R + W must exceed N, by brute force. That prepares you for the classic follow-up: during a partition, does this design refuse requests or serve stale data, and which is acceptable for which data?

  3. Partitioning, Sharding & Replication

    Partitioning and replication answer two different questions, and this handbook keeps them apart: range, hash and directory partitioning, consistent hashing with virtual nodes, hot partitions and choosing a shard key, then single-leader, multi-leader and leaderless replication tied together by quorums. It readies you for "how would you shard this table?", where a strong answer names the shard key, the hot-key risk and what happens when a node joins.

  4. Concurrency, Locks & Isolation Levels

    Covers the races that break correctness, such as lost updates, dirty reads and double-spends, and the tools against them: pessimistic versus optimistic locking, the four SQL isolation levels and the anomalies each allows, MVCC, and distributed locks with fencing tokens. Interviewers reach for this when two users try to book the last seat at once, so practice saying which isolation level or version check you would use and why.

  5. Consensus, Transactions & Coordination

    Why agreement between machines is hard, how Raft and Paxos use majority quorums to elect a leader, what coordination services like ZooKeeper and etcd are for, two-phase commit versus sagas, and idempotency as the practical answer to "exactly once". At interview depth you rarely implement any of it; you need to say when a design needs consensus at all and why a five-node cluster survives two failures.

  6. Interactive Capacity Estimator

    Slide daily active users, requests per user, read ratio, payload size, replication and peak factor, and watch QPS, storage per year, bandwidth, node count and cache memory recompute with the formula shown for each. Use it to rehearse the two-minute estimate that opens a design answer, until the 86,400-seconds-a-day arithmetic is automatic and you can say what the result means for the architecture.

  7. Consistent Hashing Visualizer

    An interactive hash ring: add and remove nodes, change the number of virtual nodes, and watch which keys move and how evenly load spreads. It turns a common follow-up into something you have seen, namely why modulo hashing reshuffles almost every key when a server is added while a ring moves only about K/N of them.

  8. Design a URL Shortener

    The gentlest full design, built piece by piece: minting base-62 codes, a read path that dwarfs the write path, caching and scaling out, sharding billions of rows, click analytics behind a queue, and aliases, expiry and abuse. Rehearse it first because its follow-ups are well known, such as 301 versus 302 redirects and why a key-generation service beats per-server counters, and the page closes with how to open the answer in an interview.

  9. Design a Rate Limiter

    A focused prompt that rewards precision: where the limiter lives, what key you limit on, token bucket versus sliding windows, keeping one counter correct across many gateways with atomic operations, one Redis or one per region, and whether to fail open or closed when the store is down. The page's interviewer follow-ups press on exactly those choices, so practice defending each one in a sentence.

  10. Design a Key-Value Store

    A Dynamo-style store assembled step by step: consistent hashing, replication along a preference list, quorum reads and writes, conflict resolution, gossip membership, hinted handoff and read repair. This is where the handbook concepts meet a real prompt, so answer the page's follow-ups out loud, including why the design chooses availability over consistency and whether a read can still be stale when R + W exceeds N.

  11. Design a News Feed

    The fan-out problem in full: pull on read, push on write, the hybrid that handles accounts with huge followings, ranking candidates, mixing sources, and pagination with deduplication. It prepares you for read-heavy social prompts and their standard probes, such as what happens to a post deleted after fanning out to a million feeds and how ranking stays fast on every read.

  12. Design a Payment System

    The design where consistency is not negotiable: authorize then capture as a state machine, idempotency keys so retries cannot double-charge, a double-entry ledger, tokenization to shrink PCI scope, webhooks for slow external events, and reconciliation against the provider. It closes the path because it tests whether you can say no to eventual consistency, and you should expect questions about refunds, chargebacks and keeping your ledger in step with the payment provider.

A study plan

  1. Week 1

    Read System Design Fundamentals, then the CAP and partitioning handbooks. After each, write five one-line definitions from memory, such as linearizable, PACELC, shard key, virtual node and quorum, and check them against the page. Then estimate a ten-million-user service by hand before you check yourself in the Capacity Estimator.

  2. Week 2

    Finish the concurrency and consensus handbooks, then use the Consistent Hashing Visualizer until you can predict how many keys move before you click. Start the designs with the URL shortener and the rate limiter: sketch each on paper first, then read the page and list what you missed.

  3. Week 3

    Work through the key-value store, the news feed and the payment system. Run each as a timed 45-minute mock: five minutes of requirements, five of estimates, fifteen of high-level design, fifteen of deep dive and five of trade-offs. Answer the page's interviewer follow-ups aloud before reading them.

  4. Final days

    Redo the two designs you found hardest from a blank page, and practice the first two minutes of every design until they come out without thinking. If you can, run one mock with another engineer who interrupts you, because handling new constraints mid-answer is part of what the round measures.

Questions about this path

How long does it take to prepare for a system design interview?

With backend experience, two to four weeks of steady practice is a common range: one week on fundamentals and estimation, then two or three designs a week rehearsed out loud. Without distributed-systems experience, budget six weeks or more, because ideas like quorums and partitions take time to become intuitive. The reading in this path fits into a few evenings; the real work is the timed mocks. A good readiness check is opening any of the five designs cold and reaching a defensible high-level design within fifteen minutes.

What do interviewers look for in a system design interview?

Mostly process and judgment. Strong candidates clarify requirements and scale before drawing, separate functional from non-functional requirements, back their choices with rough numbers, and name the trade-off they accept each time they pick a database, a cache or a consistency level. Interviewers also watch how you respond to pushback: adapting when a new constraint arrives is a good sign, and so is defending a choice with a clear reason. A polished diagram with no reasoning behind it scores worse than a simpler design you can justify.

Which system design questions should I practice first?

Start with prompts that isolate one idea. A URL shortener teaches read-heavy scaling and key generation, a rate limiter teaches counting correctly under concurrency, and a key-value store teaches partitioning, replication and quorums. Then move to designs that combine ideas, such as a news feed with its fan-out trade-off and a payment system where correctness beats availability. That is the order this path uses. Once those five feel comfortable, other common prompts like chat, notifications or video streaming reuse the same building blocks in new combinations.

Do I need to know the CAP theorem for system design interviews?

You need it as a working tool rather than a definition. Interviewers rarely ask you to recite CAP; they ask what your system does when a network partition separates replicas, and a good answer differs by data type. Account balances usually refuse to serve stale data, while a like count or a feed can tolerate it. Being able to say that, and to mention PACELC, the latency cost you pay even when the network is healthy, shows you understand the trade-off rather than the slogan.

How much math is in a system design interview?

Only back-of-the-envelope arithmetic, but you are expected to do it quickly and out loud. A typical estimate turns daily active users into requests per second by dividing by roughly 86,400 and multiplying by a peak factor, then turns write rates and payload sizes into storage per year and bandwidth. The goal is the right order of magnitude, because it decides whether one database is enough or you need sharding and caching. The Capacity Estimator in this path shows the formula behind every number, so you can check your mental math.

How to walk into the room ready

The system-design interview rewards structured thinking under ambiguity: clarify the requirements, estimate the scale, sketch the components, then defend the trade-offs. This path builds that instinct with the fundamentals handbook, a capacity estimator and a consistent-hashing visualizer, and a run of real interactive system designs you can reason about end to end.

The aim isn't to memorise architectures — it's to internalise the moves (partition, replicate, cache, queue) and the trade-offs interviewers actually probe, so any prompt becomes a design you can drive rather than a blank you freeze on.

← All learning paths