Read the full solution, or practice the problem step by step with feedback on each answer.
| Completed | Interview Problem | Companies | Study |
|---|---|---|---|
Design URL Shortener Design a URL shortener like bit.ly — map a long URL to a short unique alias and redirect back at scale. The core problems are generating collision-free short keys and serving billions of low-latency redirects. | M H G +8 | ||
Design Pastebin Pastebin lets users store and share plain text through unique URLs. Developers use it for code snippets and configuration files. The core challenge: generate unique short URLs and serve content with low latency at scale.
| A M I | ||
Design Webhook Design a webhook service that processes incoming requests and ensures efficient, secure handling of real-time events, such as payment notifications from services like Stripe or Shopify.
| U O | ||
Design Typeahead / Autocomplete Design the suggestion service behind a search box — as a user types, return the few most-relevant completions of their prefix faster than the next keystroke. The hard part is ranking a huge corpus inside a per-keystroke time budget. | A J T +3 | ||
Design Tinder Design the core of a location-based dating app — a candidate feed to swipe through and a mutual-match detector. The swipe write firehose, not the candidate feed, is the load that shapes the design. | Add company report | ||
Design LeetCode (Online Judge) LeetCode system design for an online judge that runs untrusted code safely, grades submissions under strict limits, and serves a live contest leaderboard at scale. | A M F | ||
Design a Distributed Rate Limiter Distributed rate limiter system design for API requests, including atomic counters, token buckets, sliding windows, multi-region coordination, and failure behavior. | I G W +4 | ||
Design Google Calendar Design a calendar where events repeat, span timezones, and involve many attendees. The hard part is that a recurring event is a rule, not a list — you store the generator and expand it per query window. | Add company report | ||
Design Twitter Design a simplified version of Twitter where users can post tweets, follow/unfollow other users and is able to see the tweets of its followings. | A M | ||
Design Yelp Design a local business discovery platform with geo-based search and crowd-sourced reviews. | Add company report | ||
Design Netflix Design a streaming service that plays a curated catalog smoothly to tens of millions of concurrent viewers. The hard part is delivery economics — hundreds of terabits per second that must come from the edge, not the origin. | M | ||
Design Robinhood (Stock Trading) Users watch live prices tick and tap "buy" — two systems with opposite requirements have to work together, a lossy price broadcast and an exactly-once ledger that must never lose track of anyone's money. | Add company report | ||
Design Dropbox Design a file-sync service like Dropbox — a folder of files lives on many devices, and an edit on one device appears on every other device within seconds. This is a sync problem before it is a storage problem. | P M T | ||
Design Google Docs Design a collaborative document editor — many people type into the same document at once, every keystroke shows up for others within a moment, and everyone converges to the identical text with no edit ever silently lost. | Add company report | ||
Design Ticketmaster Design a ticket-booking system with assigned seats — browse availability, hold a seat, and buy it, and the same seat must never sell twice. A popular on-sale is a synchronized stampede, and inventory correctness under that contention is the hard part. | M F | ||
Design Live Comments (Real-Time Fan-Out) Millions of viewers watch one broadcast and expect every new comment to stream in instantly. At peak, comments arrive faster than any person can read — fan-out alone isn't the hard part. | Add company report | ||
Design a News Aggregator Crawl tens of thousands of news sources and show a fresh, ranked feed. The trap is a time-sorted list of raw articles — the real problem is recognizing that twenty articles are one story. | Add company report | ||
Design Post Search (Full-Text Search) A user types a multi-word query and expects the best-matching posts out of billions, ranked, in milliseconds. Scanning post text at query time is impossible — the design turns on inverting the corpus. | Add company report | ||
Design Local Delivery (Gopuff) Design local, on-demand delivery of physical goods — a shopper sees what a nearby store actually has in stock, orders it, and watches a courier bring it. Live inventory, not courier dispatch alone, is what makes this hard. | Add company report | ||
Design an Online Auction Design a real-time auction — many bidders compete on an item, the price climbs live in front of thousands of watchers, and the auction closes at a deadline with an unambiguous winner. One item is both a write hotspot and a read hotspot at once. | Add company report | ||
Design a Metrics Monitoring System Millions of hosts emit numeric measurements every few seconds. The trap is modeling it as one database you insert rows into — the real fight is against cardinality, not raw volume. | L | ||
Design a Distributed Job Scheduler Distributed job scheduler system design for one-off and recurring jobs, with time buckets, leases, retries, crash recovery, and effectively-once execution at scale. | M O N | ||
Design a Payment System Design a system that moves money between a payer and a payee, correctly, even when every step runs over networks that fail and the external payment provider can't participate in your database transaction. | Add company report | ||
Design a Web Crawler Design a system that crawls the web at scale — starting from seed URLs, fetching pages, and following links, billions of pages deep. Dedup and per-host politeness, not raw fetch throughput, are what break a naive queue. | Add company report | ||
Design an Ad Click Aggregator Design a pipeline that counts ad clicks accurately for billing while giving advertisers near-real-time aggregates. Duplicate deliveries and hot-key skew, not raw click volume, are what break a naive counter. | Add company report | ||
Design Top K (Trending) Design a system that surfaces the top K trending items — videos, songs, search queries — from a firehose of events. Unbounded distinct items against bounded memory, not raw event volume, is what breaks a naive counter. | L B | ||
Design Uber / Nearby Drivers Design the core of a ride-hailing service — drivers stream location, riders find and match a nearby driver. The twist is that it is write-heavy; the location index takes a firehose of updates, far more than the rider-request reads. | Add company report | ||
Design a Pub-Sub / Message Queue Design a durable, high-throughput message system that decouples producers from consumers — producers append events; many independent consumer groups read at their own pace, replay history, and survive each other's failures. The Kafka lineage — a partitioned, append-only log, not a transient queue. | Add company report | ||
Design a Chat App (WhatsApp / Messenger) Chat app system design for WhatsApp or Messenger, covering WebSocket gateways, ordered delivery, offline sync, group chat, presence, and durable storage. | M U A | ||
Design YouTube Design a video platform where users upload videos and a global audience streams them. The hard parts are the transcode pipeline and delivery economics — serving video is an egress-bound problem measured in exabytes. | A | ||
Design a News Feed Design the home feed for a social product — a ranked, near-real-time stream of posts from followed accounts. The hard parts are fan-out and ranking, and they are coupled. | Add company report | ||
Design Instagram Design a photo-sharing service — upload images, follow accounts, and see a timeline of recent posts. The read path is a News Feed variant; the new problem is the media write path — upload, transcode, durable blob storage, and CDN delivery. | Add company report | ||
Design a Distributed Cache Design an in-memory caching layer that serves reads at sub-millisecond latency for tens of millions of requests per second, shards across many nodes, survives node loss without taking the database down, and has a defensible answer for stale data. | Add company report | ||
Design a Distributed Key-Value Store Design a horizontally-scalable key-value store that stays available and low-latency across hundreds of nodes and multiple datacenters, survives node and network failures, and has a defensible answer for what a read returns after a write that raced a partition. The Dynamo / Cassandra / Riak lineage. | Add company report | ||
Design Google Maps Design a mapping service like Google Maps | P | ||
Design a RAG System Design the retrieval layer behind "chat with your data" — ground answers in a private, per-tenant corpus of billions of chunks that changes every minute. The hard parts are approximate vector search that fits in memory, retrieval quality, and filtering by tenant without breaking the index. | Add company report | ||
Design ChatGPT Design a conversational assistant whose replies stream from a large language model. The reply is a GPU computation produced one token at a time, so the design is an inference-serving and scheduling problem wrapped in a chat product. | Add company report | ||
Design an Image Generation Service Design a text-to-image service. Each image is a fixed block of GPU work that takes seconds, produces a large binary, and must pass a safety check on both ends before anyone sees it. | Add company report | ||
Design a Coding Agent CLI (Claude Code) Design a terminal coding agent like Claude Code. The model runs remotely, the code and the shell live on the user's machine, and the repository is far larger than the model's context window. The hard part is the harness — a bounded tool-use loop, a local permission gate, and a token budget. | Add company report | ||
Design Deep Research Design a deep-research feature for an AI assistant. One hard question becomes a minutes-long job that searches the web, reads dozens of sources, and returns a cited report. The hard part is staying grounded inside a fixed budget of tokens, time, and searches. | Add company report | ||
Design Reasoning Effort Levels Design the serving layer that lets one LLM assistant answer at low, medium, high, or max reasoning effort. The hard part is that effort multiplies cost per request, so cheap requests must stay fast while expensive ones run. | Add company report |