What question should we breakdown next?
We'll take the top voted question every couple weeks and add it to the list of Common Problem Breakdowns.
114
Design a distributed web crawler
statement 1 (source from internet) : Download all urls from 1000 hosts. Imagine all the urls are graph. Requirement: Each host has bad internet connection among each other, Has to download url exactly once. statement 2 (source from internet) : Use 10k IOT machine (limited cpu, bandwidth) to crawl wikipedia. 1. don’t repeat same URL; 2. Minimize traffic. 3. save webpage locally (no storage problem).
91
Design Messenger
69
Design a bidding system
User's can post any item for auction/bidding at any time Bidders can bid on any existing item any number of times 10M new auction items are added everyday & 100M new bids come in every day User wins an item if there are no higher bids in the next 1hour User has to pay for the item within 10 mins of winning the item User's can only bid for 1 count of an item at a time.
56
Design a Flash Sale Site
Limited number of items for sale with millions of active buyers fighting for remaining items
44
Design YouTube
A video streaming service like YouTube, Netflix, Hulu, etc.
41
Design a real-time document editors
Like Google Docs or Notion, or even Excalidraw.
38
Design WhatsApp
32
Design Instagram
Design a photo-sharing service like Instagram, where users can upload photos to share them with other users.
31
Create Distributed Cache
28
Design Facebook post privacy functionality
Users have the ability to choose the privacy of their posts (Only me, Friends, Public). If possible, also get into Friends of friends and custom lists.
24
Design "likes" counter
Design a system that tracks the number of “likes” (posts / tweets / photos) at scale.
23
Design GoogleDoc
A realtime document editor
17
Design a recommendation system for netflix/prime/Hulu to recommend movie
Design a recommendation system for netflix/prime/Hulu to recommend movies or TV shows
17
Design meta chess
- Design meta chess. Store all the games and events and player moves. How do you design "undo" if each player can undo their last (or their two last) move(s)? Compute and maintain the scoreboard of billions of players? Top 100 games and winners.
16
Design the auto-complete/type-ahead backend
Design the backend for an auto-complete system, like Meta, Google or Amazon.
13
Create Key/Value Store
13
Design Status Search
Context: Every user can post something as "status", at any given time, one user can only have one status (vs multiple posts). Build a search system which should enable users to search the statuses.
11
Design distributed rate limiter
- Design a horizontally scalable distributed rate limiting solution to prevent facebook's public api abuse
11
Design Stock Exchange Platform (Robinhood)
I think this is an extremely interesting problem and I believe if you watch the Jane Street talks, they actually talk about how they do almost everything in memory with almost no Storage or database at all (or in memory databases only).
8
Design a Single Server Memcached
Might also extend that to cluster level memcached as well.
8
Distributed Job scheduler
10 millions jobs to be scheduled every second, 100B jobs per day, job type flexibility (java, python etc).
6
Distributed Logging and analysis
Petabytes of data per second ingestion, petabytes of data per second while querying.
5
Design Cab Sharing / Ride Sharing App
Multiple (3-4) user can share a cab, it can be either like Uber cab sharing or something like if I am driving from point a to b as a user I post that & anyone willing to travel on same route can pair with me and pay me for the part of ride, quickride
5
Design chess game between human and ai
- Determine how points are assigned for every move and how to determine winner/looser/draw state
5
Design Steam
Game creators, can create new games, publish and upload files. Users can search for games, add to cart, buy and download.
5
Mock interview to get requirements
This is not an interview question specifically, but with both Evan and Stefan, I think it could be helpful to watch how an interviewee susses out requirements in a mock scenario without having practiced or knowing the problem.
5
Design a billing system
5
Design a leaderboard
User's have a list of friends and can see their leaderboard ranking among their friends and among global users. System should scale to millions of users per day.
4
Design meta chess
- Design meta chess. Store all the games and events and player moves. How do you design "undo" if each player can undo their last (or their two last) move(s)? Compute and maintain the scoreboard of billions of players? Top 100 games and winners.
4
Design FIFO Pubsub system
Design a Pubsub system that makes guarantee FIFO delivery. I was asked this question during my interview.
4
Design GoogleMeet
Online realtime video conferencing tool
4
Design YouTube
4
Design amazon product/inventory management
4
Design CamelCamelCamel
price tracking system
4
Design distributed message queue
Functional Requirements - Client should be able to create a queue - Producer should be able to send message - Consumers should be able to receive messages - Consumer should be able to delete a message - delete queue.
3
Design a Parking Lot
3
Distribute 6M burgers in 10 minutes.
No one should get more than 1 burger. We should distribute exactly 6M burgers.
3
Design a reminder service
Users can schedule a onetime or recurring reminder which will send an email / push notification to the user. The reminder should be delivered exactly once within 5 minutes of the time. It should scale to millions of users.
3
Design CDN
we have to build content delivery network
3
Design Google Calendar
Design a calendar service that people can create events, invite others and suggest meeting rooms
3
Design Advertising Platform for Ad Reporting
1. Analytical Load Serving 2. Data Skewness handling 3. Realtime Reporting
3
Design a bidding system
Where users can bid
2
Design Twitter
2
Design YouTube
2
Blocking IPs from a specific country
We can't serve data to banned IP addresses. This country exposes a web interface - http://security.gov.x/ - that just tells us for any given IP address if it’s banned or not. you have to solve it within two months so no need hot fix but no redesign.
2
HTTP downloader
2
Design whatsapp/messenger
2
Design web crawler
Meta twists this question a bit and asks peer to peer approach assuming we have 10,000 phones or machines and use those to crawl the web. No system design course has clearly demonstrated this so far, so I am really interested to see your take Evan.
2
Design Amazon Lockers
1. User can select nearby lockers at checkout. 2. System should generate OTP until used by user to unlock locker.
2
Payment System
A payment system similar to Stripe or PayPal.
2
Design Metrics Monitoring and Alerting System
2
Design a notification service
Notification to other services or notification to users
1
Design Proximity Service like Yelp
1
PSP like VISA
Design a payment service provider like VISA.
1
Design an E-Commerce System
Design an E-Commerce system with a functionality to handle billion $ sale days.
1
Distributed high scale telemetry system
Telemetry/Metrics system such as Datadog, Splunk etc
1
Design Stadia like gaming service with top player leaderboards
Imagine that Youtube team would like to start advertising games before video begins. The ad will allow you play for 2 minutes and offer a link to purchase a game after that + leaderboards. Can you succeed where Google failed?
1
Transactions deep dive
Can you please explain how transactions work internally. For example how rollback will work in a simple in-memory key value store. Also it will be great if you can touch upon the distributed transactions. Thanks.
1
Design google calendar
Focusing on the notification system (users can set reminders with frequency/interval, i.e. once a week, twice a month, etc.)
1
Design google calendar
Focusing on the notification system (users can be in different time zones, each reminder should be sent only once, set reminders with frequency/interval, i.e. once a week, twice a month, etc.)
Propose a New Question
Please look through the list to make sure your question isn't already there.