Problem library
Browse every active problem. Sign in only when you are ready to start an interview.
Design the rankings service behind App Store charts, Amazon bestsellers, trending lists, game leaderboards, and similar most-popular surfaces. A firehose of score events (downloads, purchases, views, high scores) must be turned into per-category top-K lists over the last hour, day, week, and all time, and chart reads must return in tens of milliseconds.
Design a consumer AI conversational assistant like ChatGPT. Users hold multi-turn chat threads, browse and resume history, stream replies token by token, and can run a playground-style turn with a chosen model plus sampling knobs (temperature, max tokens, optional system prompt). The hard constraint is GPU memory and time-to-first-token at ~200M daily actives, not the chat CRUD.
Design the counting pipeline behind an ad platform: the same system people call an ad-click event aggregator, a distributed click counter, an impression/click billing-and-analytics pipeline, or a real-time metrics aggregator for advertising. Every click is recorded exactly once, advertisers see campaign metrics within a minute, and finance bills from an audited count. You are not designing the ad server, the auction, or the fraud model.
Design the likes counter for a video platform like YouTube. Logged-in users like and unlike a video (at most one like per user per video), and everyone watching sees a near-real-time count. A single viral video can take thousands of likes per second. The hard problem is incrementing one number without melting a row, double-counting a retry, or losing the user's like.
Design a real-time collaborative text editor like Google Docs, the same interview as a concurrent document-sync system, Notion/Quip/Microsoft 365 Word, or a collaborative canvas if you change the data model. Multiple people type in one document at once; every client must converge on identical text; your own keystrokes feel instant. Assume a simple text document unless you explicitly switch the conflict unit.
Design a snippet-sharing service like Pastebin (same shape as a GitHub Gist without Git, or TinyURL with a large text payload). A user pastes text, gets a short unique URL, and anyone with the link can read the snapshot. Pastes are immutable after create, may expire, and range from tens of bytes to 1 MB, so this is a key-generation problem attached to an object store, not a URL string in a row.
Design a calendar service like Google Calendar, Outlook, or Apple Calendar: equivalently a meeting scheduler or free/busy system. People create timed events, repeat them on a rule, invite others who RSVP, open a day/week/month view, and ask when a group is all free. The hard constraint is time correctness: a 9 a.m. series must stay at 9 a.m. local across time zones and daylight-saving changes, without exploding storage for unbounded recurrence.
Design the harvesting half of a search engine: the same machinery people call a spider, a distributed scraper, a content-harvesting pipeline, or a URL-frontier plus fetcher service. From a seed set you discover and download pages across the open web, stay polite to every host, refuse to waste the fleet on URL or content duplicates, and recrawl so the stored copy stays fresh enough to index. Ranking, the inverted index, and query serving are out of scope.
Design a distributed key-value store in the Dynamo lineage, the same class of system as Amazon Dynamo, Apache Cassandra, or a durable multi-node cache. Clients put, get, and delete opaque values by key. The store must stay available through node failures, grow by adding machines, and let callers trade consistency for latency.
Design the search-as-you-type suggestion service for a large search product. As a user types into the search box, return the top 10 most popular query completions for the current prefix, fast enough to keep up with typing. Newly popular queries must appear in the dropdown within minutes, not the next day.
Design a global video-on-demand (VoD) / OTT streaming service like YouTube or Netflix. Creators upload videos up to 10 GB; viewers worldwide stream them with quality that adapts to the network, and can resume on another device. Playback must start in under two seconds and stay smooth on flaky mobile links. The hard constraint is egress and encode cost at ~100 million watches a day, not the API tier.
Design a URL shortener like Bitly — the same problem is often asked as Design TinyURL or Design a URL Shortener. Users paste a long URL and get a compact, unique short link on a domain you own; visiting that link must redirect to the original in under 100 milliseconds, and each short code maps to exactly one destination.
Design a location-based dating app like Tinder (also framed as a proximity matching service or a real-time swiping and matching system). Users get a deck of nearby profiles filtered by distance and preferences, swipe yes or no on each, and a mutual yes creates exactly one match that both people hear about. The hard parts are finding the right nearby people without scanning the world, and absorbing a swipe firehose without dropping or duplicating a match.
Design a messenger like WhatsApp. Users send text and media in 1:1 and group chats (up to 100 people). When both sides are online, delivery must feel instant; when the recipient is offline, the message still has to land and stay available for up to 30 days.
Design a ticket booking platform like Ticketmaster or BookMyShow. Users discover concerts, sports, theater, and movie showtimes, pick assigned seats (or a general-admission quantity), hold them while they pay, and receive a confirmed booking. The same seat must never sell twice, including when a million people hit one onsale at once.
Design a cloud file-storage and sync service like Dropbox or Google Drive. Users keep a folder on each device that stays in sync with the cloud and with their other devices, including after offline edits, and can share files and folders. Files can be as large as 50 GB; a small edit must not re-upload the whole file.