This roadmap connects the site’s system designs, technical guides, and DDIA notes into 30 practice tasks. It is an editorial practice list, not a claim about any company’s current interview bank. Follow the stages or begin with your weakest area.
How to practice each question
- Before reading the guide, spend about 5 minutes identifying users, core operations, load assumptions, and correctness requirements.
- Spend about 20 minutes drawing a minimal architecture and tracing one critical path.
- Use about 10 minutes to introduce a hotspot, timeout, duplicate request, or failed component, then explain recovery.
- Read the linked guide and compare your answer with the self-review check. Record one omission to revisit. Adjust these suggested timings to the exercise.
Six-stage contents
1. Estimate and bound the system
01 Estimate a service from DAU
State daily requests, read/write mix, peak ratio, payload size, and retention. Separate external QPS from database work.
Self-review: Explain one uncertain assumption and how a 10× change affects the design.
02 Design a URL shortener
Choose an ID strategy, redirect path, and expiration policy. Explain which data must be durable.
Self-review: Handle a collision, a deleted link, and a hot link without changing the contract.
03 Trace DNS resolution
Follow a lookup through caches and authoritative servers. Distinguish propagation from cache expiry.
Self-review: Explain the tradeoff of a shorter TTL during a migration.
04 Design a CDN delivery policy
Choose cache keys, TTLs, and invalidation for public assets. Keep private responses separate.
Self-review: Show how an origin failure and a bad cached version are recovered.
05 Add a cache without breaking correctness
Choose a source of truth, a cache population strategy, and an acceptable staleness bound.
Self-review: Walk through a cache miss, concurrent update, and cache outage.
2. Deliver updates to users
06 Design a chat service
Define message IDs, ordering scope, delivery acknowledgments, and reconnect behavior.
Self-review: Handle an offline recipient and a repeated send without claiming global ordering.
07 Design a notification service
Route messages across channels with per-user preferences, retry limits, and expiration.
Self-review: Prevent duplicate effects and explain what a dead-letter queue operator does next.
08 Design a news feed
Compare fan-out on write and read. Include the distribution of follower counts in estimates.
Self-review: Explain a celebrity post and a follower change while caches are stale.
09 Design nearby search
Choose a geographic index and radius-query approach. Separate candidate retrieval from ranking.
Self-review: Discuss dense city hotspots and how location freshness affects results.
10 Design autocomplete
Choose prefix retrieval, popularity updates, and a latency budget. Explain where freshness matters.
Self-review: Handle a rapidly trending term without rebuilding every prefix synchronously.
3. Make scarce resources correct
11 Reserve multiple hotel nights
Define the inventory invariant and the transaction boundary for a stay across several dates.
Self-review: If the final night is unavailable, show why no earlier night remains reserved.
12 Handle a payment after reservation expiry
Choose a deadline policy and replay confirmation versus expiry in both orders.
Self-review: Inventory is released once; repeated callbacks do not create repeated refunds.
13 Design payment idempotency
Separate a business payment identity from individual attempts and provider request keys.
Self-review: Explain how to recover an unknown timeout without charging twice.
14 Sell tickets during a traffic spike
Define admission control, a waiting room, inventory ownership, and hold expiration.
Self-review: Show how fairness and correctness behave when an admitted client disconnects.
15 Design a distributed rate limiter
Choose the key, time model, algorithm, and behavior when the counter store is unavailable.
Self-review: State whether a temporary overshoot is acceptable and bound its impact.
4. Store and move large data
16 Design a key-value store
Choose partitioning, replication, and read/write consistency for a specific workload.
Self-review: Explain a failed replica and the behavior of reads during recovery.
17 Design file synchronization
Model chunks, metadata, version history, and resumable uploads. Separate content from permissions.
Self-review: Handle two edits to the same file and a partially completed upload.
18 Design expiring text storage
Choose identifiers, retention, read caching, and abuse limits for a paste service.
Self-review: Explain the difference between hiding an expired item and physically deleting it.
19 Design video delivery
Separate upload, transcoding, metadata, and playback. Estimate bandwidth with an explicit payload model.
Self-review: Show how failed transcoding retries without publishing an incomplete asset.
20 Design a web crawler
Define URL deduplication, crawl scheduling, per-host politeness, and incremental refresh.
Self-review: Prevent a URL trap from consuming the frontier indefinitely.
5. Stress the design
21 Design ride matching
Distinguish location updates, candidate search, matching, and trip state transitions.
Self-review: Handle stale driver locations and two riders competing for one driver.
22 Design a map application
Separate tile delivery from route calculation and changing traffic data.
Self-review: Explain which operations can use a stale cache and which cannot.
23 Design a leaderboard
Define rank semantics, tie handling, update rate, and whether approximate ranking is allowed.
Self-review: Discuss a hot tournament and the cost of exact global rank.
24 Coordinate ecommerce checkout
Separate cart intent, inventory reservation, payment, order confirmation, and fulfillment.
Self-review: For each failed step, name the durable state and compensation path.
25 Replay an event stream
Choose partition keys, offset handling, and consumer-side idempotency for a projection.
Self-review: Rebuild from history without duplicating external side effects.
6. Combine the concepts
26 Design a RAG service
Connect ingestion, chunking, retrieval, permissions, and answer evaluation.
Self-review: Explain how a deleted document stops appearing in retrieved answers.
27 Design a streaming AI chat service
Separate request admission, inference, token streaming, session state, and cost controls.
Self-review: Handle disconnects and retries without starting duplicate expensive jobs.
28 Migrate a hot shard
Identify the hot key and choose a migration or repartitioning strategy with observable progress.
Self-review: Specify read/write ownership during migration and a rollback condition.
29 Choose batch versus stream processing
Define freshness, event-time behavior, replay requirements, and output correctness.
Self-review: Explain late events and how a recomputation changes previously emitted results.
30 Evolve the design without synchronized releases
Plan a schema change across old and new producers, consumers, and stored records.
Self-review: Demonstrate backward/forward compatibility with a concrete changed field.
A consistent review rubric
Score four areas from 0–2: requirements and invariants, load assumptions, the critical data path, and failure/recovery. Zero means missing; one means mentioned but not traced; two means explained using a concrete request or failure. Use the score to identify gaps, not to predict interview outcomes.
Keep the date, question number, least certain assumption, one failure timeline, and one item to revisit. Prioritize questions you cannot yet explain clearly.
Check assumptions with the capacity calculator · Replay inventory and payment failures