Mock system design interview at Microsoft
A live 45-minute round on a question reported in Microsoft interviews, run by an AI interviewer that asks one thing at a time, probes what you say, looks at your whiteboard, and weighs what that round is reported to weigh. It ends with a debrief: a score, what was strong, what was missing.
Design a URL Shortener
bit.ly at scale: turn long URLs into short codes, redirect in milliseconds from anywhere, count the clicks.
You will not see the requirements, the numbers or the design before you start. That is the point.
What the Microsoft round is reported to look like
45–60 minutes, usually one design plus follow-ups, with the level of abstraction set by the role.
What it weighs
- Requirements and scoping before design
- Reliability, versioning and backwards compatibility
- Concrete component choices with reasons
- Communication: a design someone else could implement from your description
The common mistake
Skipping the boring version. Get a simple end-to-end design on the board early, then improve it.
From public interview guides and candidate reports, and Microsoft’s own interview guidance where it publishes any. Not endorsed by Microsoft. The interviewer is an AI running in that style; it is practice, not a prediction.
Start the round
The interviewer’s opening question is free. Answering it is part of Pro. See an example round and its debrief →
The 45 questions this round draws from
Each is reported in Microsoft interviews. Pick one to sit, or read its reference design and walk through a strong answer first.
- Design a URL Shortenerbit.ly at scale: turn long URLs into short codes, redirect in milliseconds from anywhere, count the clicks.drawn
- Design SlackReal-time team messaging: channels, DMs, presence, history and search for millions of concurrent users.
- Design YouTubeUpload, transcode, and stream video to a billion viewers: a processing pipeline on one side, a CDN problem on the other.
- Design a Notification SystemDeliver push, email, SMS and in-app notifications to hundreds of millions of users: the right channel, once, on time, and never at 3 a.m.
- Design Google DocsReal-time collaborative editing: many cursors in one document, every keystroke converging to the same text, offline edits merged on reconnect.
- Design ChatGPTAn AI chat assistant for 100 M weekly users whose streamed answers survive dropped connections, call tools mid-answer, and share scarce GPUs across tiers.
- Design a Distributed CacheA Redis-like cache as a service: hundreds of nodes, terabytes of memory, sub-millisecond gets, and a cluster that survives losing a machine mid-request.
- Design a Web CrawlerFetch billions of pages a month politely, discover new links, skip duplicates, and keep the copy fresh without getting the crawler banned.
- Design DropboxKeep a folder identical on every device: upload huge files in resumable chunks, push only what changed, and reconcile two machines that both edited the same file offline.
- Design InstagramUpload photos, publish posts and stories, and load a feed of them for 500 M daily users, with every image served from a CDN in milliseconds.
- Design WhatsAppDeliver 50 billion end-to-end encrypted messages a day to phones that are often offline, with sent, delivered and read ticks, and a server that cannot read any of it.
- Design a Real-Time LeaderboardRank 300 M players of a mobile game in real time: the global top 100, your exact rank among millions, your friends, and daily, weekly and season boards that reset on time.
- Design a Distributed Key-Value StoreA Dynamo-style store that keeps 10 billion keys on dozens of machines, survives node and rack failures, and lets each caller trade consistency for latency with N, R and W.
- Design a Unique ID GeneratorHand out a million 64-bit ids a second across many hosts and regions, never twice, roughly in time order, with no central bottleneck and no trust in the wall clock.
- Design LeetCodeRun untrusted code from strangers against hidden tests in a dozen languages, return a fair verdict in seconds, and survive 50,000 people submitting in the last minutes of a contest.
- Design a Distributed Message QueueA Kafka-style log that ingests a million messages a second, keeps them in order per key, replicates them so no acknowledged message is lost, and lets many consumer groups read at their own pace.
- Design a Metrics and Monitoring SystemIngest 10 million samples a second from 100,000 hosts, keep them queryable for a year at shrinking resolution, draw dashboards in under a second, and page the right person within a minute.
- Design ZapierConnect thousands of third-party apps: watch ten million triggers by polling or webhook, and run each new event through multi-step workflows on someone else’s APIs.
- Design an Online AuctionRun 50 million live eBay-style auctions: order every bid strictly per auction, push the price to watchers live, and close each auction exactly once.
- Design Live CommentsComments and reactions on live video that reach viewers within two seconds, at 50 M concurrent viewers and 5 M on one stream.
- Design ZoomReal-time audio, video and screen share for 2 to 1,000 people per meeting, 300 M participants a day, under 150 ms mouth to ear.
- Design Google SearchSearch 50 billion pages at 100 k queries a second: the ten best results with snippets in under 200 ms, and news within minutes.
- Design GmailReceive, filter, store and search email for 1.5 billion users: 200 billion inbound messages a day, mostly spam, kept for 20 years.
- Design a Distributed Lock ServiceA Chubby-style lock service for 50 k processes: leases, leader election, fencing tokens and watched config, never letting two holders act at once.
- Design an Object Storage ServiceAn S3-like store for objects from bytes to terabytes, with eleven nines of durability and strong read-after-write consistency at exabyte scale.
- Design Google CalendarRecurring events, invitations, free/busy and reminders for 500 million users, correct in every time zone and synced to every device within seconds.
- Design a Code Deployment SystemBuild each merge once into a signed artifact, roll it out in stages to 50,000 hosts in 10 regions, and roll back automatically on regression.
- Design a Distributed Logging SystemCollect 10 million log lines a second from 100,000 hosts, make them searchable within seconds, stream them live, and keep a year affordably.
- Design TwitchIngest 100 k live broadcasts, transcode them in real time, and deliver each about three seconds behind live, to three viewers or 500 k.
- Design a Price TrackerTrack 500 M products' price history and alert 50 M users when a price drops below their target, in time to buy.
- Design Figma500 k design files open at once, some with 200 people: objects converge live, cursors stream, and 300 MB files open in seconds.
- Design a Load BalancerSpread 5 M requests a second over 50 k backends, terminate TLS, route by host and path, survive losing any balancer or data centre.
- Design a RAG SystemAn assistant that answers employees’ questions from their company’s documents, with citations, only from what each user may open, minutes after edits.
- Design a CDNA multi-tenant CDN for 30 M customer domains: 300 PoPs, 50 M requests a second served mostly from cache, and global purges in seconds.
- Design an API GatewayOne front door for public and partner APIs: authenticate, limit and route 1 M requests a second to 300 services, adding under 10 ms.
- Design a Social GraphLinkedIn’s connections for 1 B members: invitations, follows, a 1st/2nd/3rd badge on 200 k profile views a second, and daily People You May Know.
- Design an Ad Serving SystemPick the best of 10 M active ads for 5 M requests a second in under 100 ms, within every campaign’s targeting, budget and frequency caps.
- Design GitHubHost 400 M git repositories on replicated file servers, serve 100 k fetches a second, and run pull requests, forks and webhooks on top.
- Design a Multiplayer Game BackendBattle royale for 3 M concurrent players: 100-player matches on authoritative 30 Hz servers, fair hits, warm fleets and launch-day surges.
- Design Google NewsCollect 2 M articles a day from 50,000 publishers, group them into stories, rank them per edition, and serve 300 M daily readers.
- Design an A/B Testing PlatformRun 500 experiments at once on 300 M users: sticky variants in microseconds, exposure logging, and confidence intervals teams can trust.
- Design GitHub CopilotInline AI code suggestions for 10 M developers, shown within 300 ms of a pause in typing, when most requests are never used.
- Design PastebinStore and serve 10 M text pastes a day behind unguessable links: expiry that is never late, burn after reading, and abuse takedown.
- Design a Container OrchestratorPlace 300,000 containers on 10,000 machines from declared desired state, keep them running through failures, and give every service a stable address.
- Design DiscordCommunity chat and voice: servers with a million members, years of history, roles and presence, for 20 M concurrent users.
Other companies: Anthropic · Google · Meta · Amazon · OpenAI · Uber · DoorDash · Netflix