The curriculum
01Orientation
A system design interview asks you to make useful decisions while the problem is still incomplete.
A complete interview framework with a worked notification design.
02Foundations
Before a request reaches your application, several separate conversations may occur.
Five scenario questions with explanations and a visual checkpoint.
An API is a promise between independently failing programs.
Five scenario questions with explanations and a visual checkpoint.
Begin with questions the product must answer, not a choice between SQL and NoSQL.
Five scenario questions with explanations and a visual checkpoint.
An index is an extra access path that trades storage and write work for less read work.
Five scenario questions with explanations and a visual checkpoint.
03Thinking in Scale
A cache stores a reusable answer closer to the caller or cheaper than the source.
Five scenario questions with explanations and a visual checkpoint.
Sharding divides data across independent storage owners so one machine does not need to hold or process everything.
Five scenario questions with explanations and a visual checkpoint.
A placement rule should not move nearly every key whenever membership changes.
Five scenario questions with explanations and a visual checkpoint.
CAP concerns what a distributed system can guarantee while communication is partitioned.
Five scenario questions with explanations and a visual checkpoint.
Estimation is a way to expose constraints, not a memory contest about hardware constants.
Five scenario questions with explanations and a visual checkpoint.
04Scaling Reads
Design editable, expiring short links for a public URL service. An owner creates and disables links; visitors resolve them without signing in.
Design a short-link service with creation, redirection, editing, and expiration.
Read scaling is a sequence of decisions about cost and freshness.
Five scenario questions with explanations and a visual checkpoint.
PostgreSQL is useful when relationships, constraints, and transactional state transitions matter.
Redis offers in-memory data structures that can make shared counters, caches, rankings, and short-lived coordination convenient.
Design a personalized list of articles collected from publishers.
Run a 30-minute self-guided design session for a news aggregator. Build ingestion, deduplication, and a paginated topic feed, then respond to changing conditions.
05Scaling Writes
A write path is limited by the slowest sustained stage, not by the length of its queue.
Five scenario questions with explanations and a visual checkpoint.
Kafka is a partitioned durable log.
Cassandra encourages query-first modeling: design tables around known access patterns and bounded partitions.
Design a near-real-time campaign click dashboard with replay and late-arrival correction. Explicitly separate dashboard estimates from billing finalization.
Count ad clicks per campaign and time window while accepting retries, late arrivals, and reprocessing.
06Real-time Updates
Design a comment stream for live videos, including durable posting, fast fanout, reconnect, and moderation.
Design comments for a live video room.
Real-time is a freshness requirement, not a transport name.
Five scenario questions with explanations and a visual checkpoint.
Design a messaging service around three separate facts: the server accepted a message, a device received it, and a person read it.
07Dealing with Contention
Design a reserved-seat ticket sale with temporary holds and payment confirmation. One seat may have at most one confirmed owner.
The hard part of a ticket sale is scarce inventory under a burst, not drawing a payment box.
Contention occurs when concurrent operations compete over the same mutable fact.
Five scenario questions with explanations and a visual checkpoint.
An auction needs an authoritative rule for bid acceptance and closing.
Run a 40-minute self-guided auction design session. Define bid acceptance, deadline rules, winner selection, and payment recovery.
08Multi-step Processes
Design a multi-tenant notification service for transactional alerts and bulk campaigns across email and push. Show the lifecycle from accepted intent to a reconciled outcome.
A business process that crosses databases or external services cannot usually be rolled back like one local transaction.
Five scenario questions with explanations and a visual checkpoint.
A payment service must represent uncertainty without creating another charge.
09Handling Large Blobs
Design a file synchronization service with resumable uploads, immutable versions, multiple devices, and explicit conflict handling.
Design file upload and synchronization with separate metadata and bytes.
Large files should not usually pass through application workers that only need to authorize and track them.
Five scenario questions with explanations and a visual checkpoint.
Design video upload, processing, and playback as distinct lifecycles.
10Managing Long Running Tasks
Design an online judge that executes submitted programs against versioned hidden tests. Treat submitted code as hostile.
Design an online code judge that executes untrusted submissions.
Long tasks outlive ordinary HTTP requests and often outlive the process that started them.
Five scenario questions with explanations and a visual checkpoint.
A crawler is a scheduler with a fetch-and-discover loop.
11Proximity-Based Services
Design nearby business search with category, text, radius, opening-hours filters, and paginated results.
Design nearby business search with text, category, and geographic filters.
Proximity search asks for objects near a point, but the best index depends on whether objects are static businesses or rapidly moving drivers.
Search engines organize text and other fields for retrieval rather than ordinary transactional ownership.
Design ride matching by separating approximate discovery from exclusive assignment.
12Final Designs
Design a feed from posts and follow relationships with hybrid fanout, ranking, stable pagination, privacy changes, and deletion.
Design a feed from posts and a follow graph, with ranking, pagination, deletion, and privacy.
A monitoring platform ingests time series, stores recent and historical samples, serves queries, and evaluates alerts.
Five scenario questions with explanations and a visual checkpoint.
Design a feed from posts and follow relationships with hybrid fanout, ranking, stable pagination, privacy changes, and deletion.