Practice with purpose.
Take on a problem. Explain your decisions. Find your next improvement.
A system design interview asks you to make useful decisions while the problem is still incomplete.
Preparation works best as a loop: learn one mechanism, retrieve it from memory, apply it to a new prompt, and review where your explanation failed.
A complete interview framework with a worked notification design.
Use core concepts as tools for explaining a workload, not as vocabulary to recite.
Choose a technology from required behavior and operating constraints.
A question breakdown is a worked example of the delivery framework, not a diagram to memorize.
Before a request reaches your application, several separate conversations may occur.
Five scenario questions with explanations and a visual checkpoint.
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.
A cache stores a reusable answer closer to the caller or cheaper than the source.
Sharding divides data across independent storage owners so one machine does not need to hold or process everything.
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.
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.
Estimation is a way to expose constraints, not a memory contest about hardware constants.
Five scenario questions with explanations and a visual checkpoint.
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.
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.
Design a service that matches customers placing local orders with couriers, tracks pickup and delivery, and communicates changes.
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.
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.
Design a feed from posts and follow relationships with hybrid fanout, ranking, stable pagination, privacy changes, and deletion.
Design a location-aware discovery and matching service with profile cards, likes, mutual matches, and messaging handoff.
Design an online judge that executes submitted programs against versioned hidden tests. Treat submitted code as hostile.
Design a messaging service around three separate facts: the server accepted a message, a device received it, and a person read it.
Design an admission control service that limits requests by a documented identity and time policy.
Design a comment stream for live videos, including durable posting, fast fanout, reconnect, and moderation.
Find the most viewed videos over a time range, such as the top 100 during the last hour.
Design ride matching by separating approximate discovery from exclusive assignment.
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.
Design search across posts while respecting audience visibility, deletion, and recent edits.
Design nearby business search with category, text, radius, opening-hours filters, and paginated results.
Design nearby business search with text, category, and geographic filters.
Design activity recording and fitness discovery: mobile uploads, route samples, summaries, segment matching, and social feeds.
Design a cache cluster that serves key/value reads through node failures and membership changes.
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.
Design a service that runs delayed and recurring jobs with retries, cancellation, and multiple worker regions.
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.
Design price history and threshold alerts for products collected from merchant pages or feeds.
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.
Design collaborative editing for a shared document with low-latency updates, offline clients, reconnect, and durable snapshots.
A payment service must represent uncertainty without creating another charge.
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 turn-based online chess with authoritative legal moves, clocks, reconnects, and game history.
Design a conversational AI product at the platform level: accepting turns, streaming generated output, managing conversation context, routing inference, and enforcing usage budgets.
Five scenario questions with explanations and a visual checkpoint.
Contention occurs when concurrent operations compete over the same mutable fact.
Five scenario questions with explanations and a visual checkpoint.
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.
Five scenario questions with explanations and a visual checkpoint.
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.
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.
Long tasks outlive ordinary HTTP requests and often outlive the process that started them.
Five scenario questions with explanations and a visual checkpoint.
Redis offers in-memory data structures that can make shared counters, caches, rankings, and short-lived coordination convenient.
Search engines organize text and other fields for retrieval rather than ordinary transactional ownership.
Temporal is a workflow platform for durable application processes that must wait, retry, and resume across worker failure.
An API gateway is an edge entry point for routing and selected cross-cutting policies.
Cassandra encourages query-first modeling: design tables around known access patterns and bounded partitions.
DynamoDB is a managed key-value/document database whose efficient access depends on known partition and sort key patterns.
PostgreSQL is useful when relationships, constraints, and transactional state transitions matter.
Flink processes unbounded and bounded event streams with stateful operators, event-time windows, and checkpoint recovery.
ZooKeeper coordinates small amounts of critical shared state using an ordered replicated service and client sessions.
Advanced topics help when a baseline design hits a specialized data or scale constraint.
Proximity search asks for objects near a point, but the best index depends on whether objects are static businesses or rapidly moving drivers.
A time-series system stores measurements keyed by time and one or more dimensions.
Approximate data structures trade a stated error for lower memory or communication.
Vector retrieval finds items whose embeddings are close under a chosen distance function.
Change data capture (CDC) publishes database changes for downstream projections and event consumers.
Shopify’s account describes replacing Redis reservations with MySQL.
Discord’s account describes moving its message store from Cassandra to ScyllaDB and adding Rust data services.
Slack describes a Redis queue outage caused by backlog and memory pressure.
Figma describes a centralized collaboration design inspired by CRDTs, not operational transformation.
Spotify’s RAP account describes an external index that maps lookup keys to files and row locations in existing Parquet data.
Assign behavior to the object that owns the relevant state.
Protect compound operations, not just individual fields.
Prevent the model from learning information it will not have at serving time.