Intuition Lab

Predict first, say how sure you are, explain your reasoning, then see why every option works or fails.

System builder

Design a system one decision at a time and watch its architecture grow.

  1. A URL shortenerJunior · 6 decisions · about 9 minutes · Design a URL shortener (TinyURL)
  2. A chat appMid-level · 6 decisions · about 9 minutes · Design a chat system (WhatsApp)
  3. A rate limiterMid-level · 5 decisions · about 8 minutes · Design a rate limiter service
  4. A notification systemMid-level · 5 decisions · about 8 minutes · Design a notification system
  5. Search autocompleteMid-level · 5 decisions · about 8 minutes · Design search autocomplete
  6. A distributed cacheSenior · 5 decisions · about 8 minutes · Design a distributed cache
  7. File storage and syncSenior · 5 decisions · about 8 minutes · Design file storage and sync (Dropbox)
  8. A ticket booking systemMid-level · 5 decisions · about 8 minutes · Design a ticket booking system
  9. Ship a risky change safelyMid-level · 5 decisions · about 8 minutes · Deployment strategies
  10. Live score updatesJunior · 5 decisions · about 8 minutes · Real-time delivery: polling, SSE, WebSockets
  11. A payment ledgerSenior · 5 decisions · about 8 minutes · Design a payment ledger

Drills

37 drills, about 2–3 minutes each

  1. 1One box, growing painsIntern · Everyday design · The scaling journey, step by step
  2. 2The database is on fireJunior · Everyday design · Caching — the highest leverage optimization
  3. 3Death by round tripsIntern · Everyday design · Latency numbers every engineer must know
  4. 4Logged out every deployIntern · Everyday design · Stateless web tier & auto-scaling
  5. 5One shard is meltingMid-level · Everyday design · Database sharding (horizontal partitioning)
  6. 6The midnight spikeJunior · Everyday design · Caching — the highest leverage optimization
  7. 7Uploads that time outJunior · Everyday design · Message queues & async processing
  8. 8Retries make it worseMid-level · Everyday design · Fault tolerance — building for failure
  9. 9I just changed that!Mid-level · Everyday design · Consistency models spectrum
  10. 10Adding a cache nodeMid-level · Everyday design · Consistent hashing
  11. 11How many servers?Junior · Everyday design · Back-of-envelope estimation
  12. 12Two data centers, one outageMid-level · Everyday design · Multiple data centers & geo-routing
  13. 13The leaky limitJunior · Everyday design · Rate limiting
  14. 14Search that crawlsJunior · Everyday design · Search — full-text & beyond
  15. 15Charged twiceMid-level · Everyday design · Fault tolerance — building for failure
  16. 16Page 4,000 is slowJunior · Everyday design · API design — REST, GraphQL, gRPC
  17. 17The growing backlogJunior · Everyday design · Message queues & async processing
  18. 18The old logo won’t dieIntern · Everyday design · CDN & blob storage
  19. 19Fan-out for 50 millionMid-level · Everyday design · Design a news feed (Twitter/Instagram)
  20. 20Two primariesSenior · Everyday design · Leader election
  21. 21Lookups that find nothingMid-level · Everyday design · Bloom filters
  22. 22Reads slow down under writesSenior · Senior judgment · Storage engines: B-trees vs LSM trees
  23. 23Launch or hold?Senior · Senior judgment · SLOs, error budgets and cost
  24. 24One customer slows everyoneSenior · Senior judgment · Multi-tenancy and isolation
  25. 25Spot the flaw: order eventsMid-level · Spot the flaw · Event-driven architecture & event sourcing
  26. 26Spot the flaw: price updatesJunior · Spot the flaw · Caching — the highest leverage optimization
  27. 27Spot the flaw: weekly payoutsSenior · Spot the flaw · Distributed locks
  28. 28Spot the flaw: two regionsSenior · Spot the flaw · Vector clocks & conflict resolution
  29. 29Spot the flaw: scaling workersSenior · Spot the flaw · SLOs, error budgets and cost
  30. 30Incident: errors right after a deployMid-level · On call · Deployment strategies
  31. 31Incident: a slow dependencyMid-level · On call · Fault tolerance — building for failure
  32. 32Incident: database disk almost fullSenior · On call · SLOs, error budgets and cost
  33. 33Incident: cache cluster restartedJunior · On call · Caching — the highest leverage optimization
  34. 34Incident: paged for nothing againJunior · On call · Metrics, logging & distributed tracing
  35. 35Incident: launch-day traffic spikeIntern · On call · Stateless web tier & auto-scaling
  36. 36Incident: a migration deleted rowsSenior · On call · Data modelling and online migrations
  37. 37Incident: a secret in the logsSenior · On call · Threat modelling and data privacy