← All topics

πŸ— Interview Prep

System Design

Scaling, caching, databases, queues and the classic "design X" questions, each with a diagram you can step through.

100 questions, most asked first

Ordered so the most useful questions for learning each pattern come first.

#1Design a URL shortener (like bit.ly)Design interviewMediumFree#2How do you scale a web app from 1 to 1 million users?Scaling basicsMediumFree#3Caching strategiesCachingMediumFree#4Load balancersLoad balancingMediumFree#5Scaling the databaseDatabases at scaleHardFree#6Consistent hashingConsistent hashingHardFree#7The CAP theoremCAP & consistencyMediumFree#8Message queues and background jobsQueues & asyncMediumFree#9Design a rate limiterRate limitingMediumFree#10Serving images and video at scaleCDNs & storageMediumFreeUnlock 90 more System Design questions Β· all 1,200 questions for $39/year (about 11Β’ a day)See full access#11Design a chat app (like WhatsApp)Real-timeHardπŸ”’#12Design a news feed (like Twitter or Instagram)Design interviewHardπŸ”’#13Design a notification systemQueues & asyncMediumπŸ”’#14Design search autocomplete (backend)Design interviewHardπŸ”’#15Design a web crawlerDesign interviewHardπŸ”’#16Design a distributed cache (like Redis Cluster)CachingHardπŸ”’#17Design a photo-sharing app (like Instagram)Design interviewHardπŸ”’#18Design a video platform (like YouTube)CDNs & storageHardπŸ”’#19Design a ride-sharing app (like Uber)Real-timeHardπŸ”’#20Design a ticket booking system (like Ticketmaster)CAP & consistencyHardπŸ”’#21Design a unique ID generatorDesign interviewMediumπŸ”’#22Design a distributed key-value storeCAP & consistencyHardπŸ”’#23Design a payment systemDesign interviewHardπŸ”’#24Design a real-time leaderboardCachingMediumπŸ”’#25Design file sync (like Google Drive or Dropbox)CDNs & storageHardπŸ”’#26Design a metrics and alerting systemReliabilityHardπŸ”’#27What does an API gateway do?Load balancingMediumπŸ”’#28Design an online code judge (like LeetCode)Queues & asyncHardπŸ”’#29Design a pastebinDesign interviewEasyπŸ”’#30Add full-text search to a websiteDatabases at scaleMediumπŸ”’#31Monolith vs microservicesScaling basicsMediumπŸ”’#32Back-of-the-envelope estimationDesign interviewMediumπŸ”’#33Latency numbers every engineer should knowScaling basicsMediumπŸ”’#34Availability, SLAs and the "nines"ReliabilityMediumπŸ”’#35Circuit breakers, timeouts and retriesReliabilityMediumπŸ”’#36Distributed transactions and the saga patternQueues & asyncHardπŸ”’#37Event-driven architecture and pub/subQueues & asyncMediumπŸ”’#38Sharding strategiesDatabases at scaleHardπŸ”’#39Bloom filtersCachingHardπŸ”’#40Leader election and consensus (Raft)CAP & consistencyHardπŸ”’#41Blue-green, canary and rolling deploymentsReliabilityMediumπŸ”’#42Logs, metrics and traces (observability)ReliabilityMediumπŸ”’#43Backups and disaster recovery (RPO and RTO)ReliabilityMediumπŸ”’#44Going multi-regionCAP & consistencyHardπŸ”’#45Backpressure and load sheddingReliabilityHardπŸ”’#46Scaling WebSockets to millions of connectionsReal-timeHardπŸ”’#47The transactional outbox patternQueues & asyncHardπŸ”’#48CQRS and event sourcingDatabases at scaleHardπŸ”’#49Hot keys and the thundering herdCachingHardπŸ”’#50Edge computing and serverlessCDNs & storageMediumπŸ”’#51Design a collaborative editor (like Google Docs)Real-timeHardπŸ”’#52Design "restaurants near me" (like Yelp)Databases at scaleMediumπŸ”’#53Design a distributed job scheduler (cron at scale)Queues & asyncHardπŸ”’#54Design reliable webhook deliveryQueues & asyncMediumπŸ”’#55Design an ad-click counter at massive scaleQueues & asyncHardπŸ”’#56Design an e-commerce cart and checkoutCAP & consistencyHardπŸ”’#57Design live comments for a stream (like Twitch chat)Real-timeHardπŸ”’#58Design a recommendation systemDesign interviewHardπŸ”’#59Design centralized loggingReliabilityMediumπŸ”’#60Design an online learning platform (like this one)Design interviewMediumπŸ”’#61Forward proxy vs reverse proxyLoad balancingEasyπŸ”’#62Stateless vs stateful servicesScaling basicsMediumπŸ”’#63Sticky sessionsLoad balancingMediumπŸ”’#64Block vs file vs object storageCDNs & storageMediumπŸ”’#65Strong, eventual and read-your-writes consistencyCAP & consistencyHardπŸ”’#66B-tree vs LSM-tree storage enginesDatabases at scaleHardπŸ”’#67At-most-once, at-least-once, exactly-onceQueues & asyncHardπŸ”’#68Cache eviction policiesCachingMediumπŸ”’#69Security in system design interviewsReliabilityMediumπŸ”’#70Data pipelines, warehouses and lakesDatabases at scaleMediumπŸ”’#71Design view and like countersCachingMediumπŸ”’#72Design price alerts (stocks or flights)Queues & asyncHardπŸ”’#73Design an email service (like Gmail)Databases at scaleHardπŸ”’#74Design a calendar with schedulingDesign interviewMediumπŸ”’#75Design a distributed message queue (like Kafka)Queues & asyncHardπŸ”’#76Design a feature flag systemReliabilityMediumπŸ”’#77Design a content moderation pipelineQueues & asyncMediumπŸ”’#78Design video calling (like Zoom)Real-timeHardπŸ”’#79Design maps and turn-by-turn routing (like Google Maps)Design interviewHardπŸ”’#80Design a live poll or voting systemCAP & consistencyMediumπŸ”’#81How to run a system design interviewDesign interviewMediumπŸ”’#82Non-functional requirementsDesign interviewEasyπŸ”’#83How to choose a database for a designDatabases at scaleMediumπŸ”’#84Distributed locksCAP & consistencyHardπŸ”’#85Time, clocks and ordering eventsCAP & consistencyHardπŸ”’#86Service discoveryLoad balancingMediumπŸ”’#87Heartbeats, failure detection and gossipReliabilityHardπŸ”’#88Cache invalidation strategiesCachingHardπŸ”’#89API versioning and backward compatibilityDesign interviewMediumπŸ”’#90Graceful degradationReliabilityMediumπŸ”’#91Design trending topics (top-K heavy hitters)Queues & asyncHardπŸ”’#92How does object storage (like S3) work?CDNs & storageHardπŸ”’#93AutoscalingScaling basicsMediumπŸ”’#94Containers and Kubernetes in system designScaling basicsMediumπŸ”’#95Design a banking ledgerCAP & consistencyHardπŸ”’#96Design a food delivery appReal-timeHardπŸ”’#97Design a hotel booking systemCAP & consistencyMediumπŸ”’#98Designing for privacy (GDPR) and data deletionReliabilityMediumπŸ”’#99Designing for costScaling basicsMediumπŸ”’#100Walk me through the design of something you builtDesign interviewMediumπŸ”’