Round four
Design a system on a whiteboard, the way the round actually runs.
Six steps on one board: Goals, Data, API, Sketch, Hard parts, Wrap-up. Practise with feedback after every step, then sit it as a 45-minute interview with somebody pushing on your design and a debrief at the end.
- 25
- systems to design
- 6
- steps on the board
- 45
- minutes as an interview
- 7
- kinds of pressure
Showing 24 systems
A paste service for sharing text
Paste text, get a link, share it; pastes that expire on time and stay fast when a link goes round a big group.
Order numbers for a marketplace
Hand every order a unique ID, from fifty servers in three regions at once, without them ever asking each other.
Login OTPs by SMS
Send a six-digit code to a phone, check it when it comes back, and keep working when an SMS provider slows down on sale day.
A website uptime monitor
Check two million websites every minute from three continents, and wake their owners only when a site is really down.
Profile photos in three sizes
Take a photo from a phone on a slow network, keep it safe, and show it everywhere at three sizes without making anyone wait.
Chat for teams at work
Channels and direct messages that arrive within a second, in the same order for everyone, from ten people or fifty thousand.
A rate limiter for a public API
Refuse requests over each customer limit across two hundred servers, in under two milliseconds, and keep serving when the limiter itself is sick.
Notifications for a shopping app
One service every team uses to reach shoppers by push, email or SMS, where an order update never waits behind a fifty-million-person sale.
Search suggestions as you type
Show the eight best completions for every keystroke in a shopping app, in under a tenth of a second, fresh within the hour.
A web crawler for a search startup
Fetch a billion pages a month from five million websites, never hammering any one of them, and never fetching the same thing twice for nothing.
A live leaderboard for a mobile game
Rank fifty million players as scores pour in, show the top hundred to everyone, and tell each player exactly where they stand.
Judging code for a coding contest
Run fifty thousand people untrusted code against hidden tests, fairly and safely, through a last-ten-minutes rush.
Live tracking for a food delivery app
Show hungry customers their rider moving on a map at dinner time, from three hundred thousand phones on patchy mobile data.
Live cricket scores for a final
Get every ball of an India final onto sixty million phones within three seconds, and tell thirty million of them the moment a wicket falls.
Board exam results day
Three million students, their parents and every refresh button in the state, all at exactly 10 a.m., on a site that crashed last year.
Ten-minute grocery: stock across dark stores
Show what the nearest dark store really has, hold it while the customer pays, and never sell the last packet of milk twice.
The home feed of a photo sharing app
Build every user a feed of the people they follow, fast to open, where one post can have two hundred followers or fifty million.
A folder that stays the same on every device
Keep one folder identical on a laptop, a phone and a work machine, with twenty-gigabyte files, flaky connections and edits made offline.
Matching riders with nearby drivers
Find a nearby free driver in seconds, among a million moving cars, without ever handing one driver two rides.
Uploading and watching video
Take long uploads from creators, turn them into every quality a phone or TV needs, and stream them to millions without the bandwidth bill ending the company.
A job scheduler for every team
Start two million scheduled jobs on time, including three hundred thousand at the top of every hour, once each, even when machines die.
A document many people edit at once
Let fifty people type into one document at the same time and all end up with exactly the same text, including the one who was offline on a train.
Tatkal hour: train tickets at 10 a.m.
Half a million people, and some bots, reach for a few thousand seats at the same second, in front of a booking system that cannot go any faster.
Paying friends and shops from a wallet
Move money between fifty million wallets in seconds, through a Diwali rush and crashing servers, without ever creating, losing or doubling a rupee.