System design
System design interview problems
36 classic interview problems, each worked through the way you would in a real interview: what the system must do, how big it gets, the API, a high-level architecture diagram, the deep dives an interviewer pushes on, and the trade-offs behind each choice.
Every problem also has a video on the Shubham Aher YouTube channel, published one per day. New to system design? Start with the free system design course for the building blocks, then work through the problems from Easy to Hard.
Easy (4)

Problem 1Video
Design Bitly
Learn to design a Bitly-like URL shortener: collision-free short codes with a counter and base62, cached redirects under 100 ms, and a read-first scaling plan.

Problem 2Video
Design Dropbox
Design a Dropbox-like file sync service: resumable chunked uploads to object storage, change-log driven sync across devices, and chunk-level deduplication.

Problem 3Video
Design Yelp
Design a Yelp-like local search app: geohash-based nearby search, race-free star rating averages, and the caching and sharding that keep reads fast at scale.

Problem 4Video
Design Local Delivery Service
Design a quick-commerce delivery app: show stock from nearby dark stores, reserve a whole cart atomically so nothing oversells, and stream rider locations live.
Medium (18)

Problem 5Video
Design Ticketmaster
Design a Ticketmaster-like booking system: Redis seat holds with expiry, a database check against double sales, and a virtual waiting room for huge on-sales.

Problem 6Video
Design Instagram
Design an Instagram-like photo app: direct uploads served via a CDN, a hybrid push-pull feed that copes with celebrities, and Redis timelines for fast reads.

Problem 7Video
Design Facebook News Feed
Learn how to design a news feed for billions of users: hybrid push and pull fan-out, fast cursor-based feed reads, and surviving viral posts and hot keys.

Problem 8Video
Design Tinder
Learn to design a swipe-based dating app: geo search for nearby profiles, storing billions of swipes, and race-free mutual match detection with Redis.

Problem 9Video
Design LeetCode
Learn to design an online coding judge: sandboxing untrusted code, absorbing contest spikes with queues and autoscaling, and a live Redis leaderboard.

Problem 10
Design WhatsApp
Learn to design a real-time chat app: WebSocket connection servers, a session registry, guaranteed delivery with acks, message ordering and group fan-out.

Problem 11
Design Strava
Learn to design a GPS fitness app: storing GPS tracks as compressed files, live location sharing at 200K updates per second, and segment leaderboards.

Problem 12
Design Distributed Cache
Learn to design a Redis-like distributed cache: consistent hashing with virtual nodes, O(1) LRU eviction and TTLs, replication, failover and hot keys.

Problem 13
Design Rate Limiter
Learn to design a distributed API rate limiter: token bucket math, atomic Redis Lua checks, fail-open behaviour, and where to enforce limits in the stack.

Problem 14
Design Online Auction
Learn to design an online auction service: race-free bids with conditional updates, live price push over SSE, and closing each auction on time exactly once.

Problem 15
Design YouTube
Learn to design a YouTube-like video platform: resumable chunked uploads, parallel transcoding into HLS and DASH, adaptive bitrate, and CDN delivery at scale.

Problem 16
Design Job Scheduler
Learn to design a distributed job scheduler: time-bucketed indexes for due jobs, leases and heartbeats for at-least-once runs, and retries with backoff.

Problem 17
Design Facebook Live Comments
Learn to design live comments for streaming video: SSE delivery, pub/sub channels per video, routing viewers by video ID, and batching for huge streams.

Problem 18
Design News Aggregator
Learn to design a news aggregator: adaptive feed crawling, SimHash near-duplicate detection, story clustering, personalised ranking and layered feed caches.

Problem 19
Design Price Tracking Service
Learn how to design a price tracking service: priority crawling of 100M products, cheap time-series price history, and fast matching of price-drop alerts.

Problem 20
Design Notification System
Learn to design a notification platform for push, email and SMS: per-channel queues, user preferences, provider rate limits, safe retries and deduplication.

Problem 33
Design Food Review App
Design a Zomato-style food review app: geo search with Elasticsearch, running-sum ratings with Bayesian ranking, and direct photo uploads to S3 behind a CDN.

Problem 34
Design Game Leaderboard
Design a real-time game leaderboard: Redis sorted sets for top N and exact rank, sharding by player hash, daily and weekly boards, and friends rankings on read.
Hard (14)

Problem 21
Design YouTube Top K
Learn how to design a top-K most viewed videos service: stream counting with Kafka and Flink, exact vs approximate counts, and sliding time windows.

Problem 22
Design Uber
Learn how to design a ride-hailing app like Uber: an in-memory geo index for 500K location pings/s, driver locks, and a safe ride state machine.

Problem 23
Design Robinhood
Learn to design a stock trading app like Robinhood: WebSocket price fan-out to millions, an exchange gateway over FIX, and orders that never fill twice.

Problem 24
Design Google Docs
Learn how to design a collaborative editor like Google Docs: OT vs CRDT, one server per document, an operation log with snapshots, and live cursors.

Problem 25
Design Web Crawler
Learn how to design a web crawler that fetches 10 billion pages in five days while staying polite to every site, skipping duplicates and surviving crashes.

Problem 26
Design Ad Click Aggregator
Learn how to design an ad click aggregator that records a billion clicks a day, counts each one exactly once and serves minute-level dashboards in milliseconds.

Problem 27
Design Facebook Post Search
Learn how to design keyword search for a social network: inverted indexes, sharding by post, fast multi-word queries and keeping like-sorted results fresh.

Problem 28
Design Payment System
Learn how to design a payment system with idempotency keys, a double-entry ledger, an event outbox and daily reconciliation so no charge is lost or doubled.

Problem 29
Design Metrics Monitoring
Learn how to design a metrics monitoring and alerting system that ingests 5 million points per second, compresses time series and fires alerts within a minute.

Problem 30
Design Online Chess
Learn how to design an online chess platform: rating-based matchmaking, server-validated moves over WebSockets, fair game clocks and recovery from disconnects.

Problem 31
Design ChatGPT
Learn to design a ChatGPT-like chat service: token streaming over SSE, GPU queues and continuous batching, quotas, and fitting long chats in the context window.

Problem 32
Design Flash Sale
How to design a flash sale: a virtual waiting room, atomic Redis stock counters that never oversell, async orders, and payment windows that release stock.

Problem 35
Design Donations Website
Design a GoFundMe-style donations site: idempotent payments with webhooks, an outbox to Kafka, sharded counters for live totals, and caching for viral spikes.

Problem 36
Design GitHub Actions
Design a GitHub Actions-like CI/CD platform: turning Git events into job graphs, fair queues, throwaway VM runners with warm pools, and live log streaming.