Top 25 System Design Interview Questions
Don’t forget to get your copy of Designing Data Intensive Applications, the single most important book to read for system design interview prep! Udacity | Coursera | Pluralsight.
Check out ByteByteGo’s popular System Design Interview Course
Consider signing-up for paid Medium account to access our curated content for system design resources.

If you are interviewing, consider buying our number#1 course for Java Multithreading Interviews.
Below are the most commonly asked system design interview questions at Big Tech such as Facebook, Microsoft, Google, Tesla, Salesforce etc.
Get a leg up on your competition with the Grokking the Advanced System Design Interview course and land that dream job! Or check out the newbie system design course Grokking the System Design Interview.

Breeze through your coding interviews with Hacking the Coding Interview.
1. How To Design Twitter/ Facebook News Feed (or similar social networking service)
Key Features / Requirements
- The user can register and delete an account, and recover its password.
- The user can post within seconds, and it may contain text, images or videos.
- The user should be able to see timelines, including a user timeline which shows his/her own posts, home timeline which includes posts from those he/she follows and search timelines via keywords.
- The user should receive notifications through email or mobile app of new posts from those they follow.
- User’s posts should be available to all the followers within seconds.
- The user can follow another user
2. How To Design Facebook Messenger/ Whatsapp/ Slack/ Discord (or similar messaging app)
Key Features / Requirements
- Real-time messaging between individuals
- Support for group messaging
- The user can upload text, media and other file types
- Displays status of the user, notifying others whether he/she is online or offline
- The user can see delivery and read status
- The user can receive call and message notifications
Learn patterns to dynamic programming interview questions to land your next Big Tech job!
3. How To Design TinyURL/ bit.ly/ qlink.me (or similar URL shortening service)
Key Features / Requirements
- The service can assign a short, unique alias for a long URL
- When a user clicks the short URL, the service redirects it to the original long URL
- The short URL expires after default timespan
- It should ideally allow users to customize short URLs
- The service has to be scalable so that there’s minimum latency even with thousands of shortening requests every second.
Land a higher salary with Grokking Comp Negotiation in Tech.

4. How To Design Instagram/ Snapchat / Flickr/ Picasa (or similar photo-sharing app)
Key Features / Requirements
- Users can upload pictures
- Users can share pictures with other users
- Users should be able to view pictures and download them
- Users can follow others that are using the app
- It offers searches to view pictures and videos based on related keywords
- There should be a News Feed displaying recent/hot photos from followees
- The user can like pictures posted by followees
Land a higher salary with Grokking Comp Negotiation in Tech.
5. How To Design A Web Crawler (like Googlebot, DuckDuckBot, and Yahoo! Slurp)
Key Features / Requirements
- The system should accept a single or a set of seed URLs to start
- The system should be highly scalable as it will crawl and fetch billions of webpages
- It should be able to prioritize webpages based on certain attributes such as frequency of change and website ranking.
- The system should use Robot Exclusion protocol to allow webmasters to keep certain pages of the website out of bound for web crawlers
- Design the approach to store and output the pages that are crawled
- A more specific question on web crawler design could be: Design a system that crawls Wikipedia, fetching all URLs exactly once. The system should only crawl pages that are in English and should not crawl images. Design an approach to minimize the traffic between servers.
Check out the course Grokking the System Design Interview from our sponsor Educative.

6. How To Design Uber/ Grab/ Lyft/ Ola (or similar ride-hailing service)
Key Features / Requirements
- The rider should be able to view all active cabs in the nearby location on a map.
- Riders should be able to request a ride, giving source and destination addresses.
- Design the approach to match the rider's request with the nearby available drivers.
- Generate an algorithm to calculate ETAs for the journey.
- Design an efficient approach to save the frequent geographical locations for riders and drivers.
- Design a receipt for the rider after the completion of the ride. It can include details like journey route, price etc.
Work smart, learn coding patterns to solve interview questions rather work hard and waste endless hours on LeetCode
7. How To Design YouTube/ Netflix (or similar video streaming service)
Key Features / Requirements
- Users should be able to upload and watch videos
- The system should be scalable to accommodate millions of daily users
- It should offer support for most video formats and resolutions
- It should ensure smooth video streaming and fast uploads
- It should allow users to add comments to videos in real time
- Design an approach to record video stats, like number of views, likes and dislikes
Get a leg up on your competition with the Grokking the Advanced System Design Interview course and land that dream job!
8. How To Design GoogleDrive/ Dropbox/ Google Photos (or similar file storage and sharing service)
Key Features / Requirements
- It should allow users to upload, share, store, view, search, download and delete files
- It should allow multiple users to make changes to the same document
- The changes made to a document should be synchronized across all devices and IP addresses
- It should offer support for storing heavy files, up to 1 GB.
- Design an approach to track permissions for file sharing

9. How To Design NearBy/ Yelp (or similar proximity servers)
Key Features / Requirements
- Users can log in and add or delete locations and events
- Users should be able to view nearby locations/events, at a set radius around their location.
- Users should be able to upload feedback for locations/events in the form of pictures, comments or rating
- The service should be scalable to handle several search requests per day
10. How To Design Airbnb (or similar online marketplace for lodging)
Key Features / Requirements
- Homeowners should be able to upload houses or rooms for rent
- Homeowners should be able to view and manage bookings
- Customers should be able to search for available accommodations
- Customers should be able to make booking and cancelations
- Customers should be able to make payment for the booking
- The service should send an email receipt to the customer as payment confirmation
Don’t waste hours on Leetcode. Learn patterns with the course Grokking the Coding Interview: Patterns for Coding Questions to beat the interview. Or, if you prefer video-based courses check out Udacity.
11. How To Design Amazon/ Flipkart/ Ebay (or similar e-commerce applications)
Key Features / Requirements
- Customers can search for available goods
- Customers can add goods to a ‘cart’ or wishlist
- Customers should be able to confirm orders and make payments
- The service should be able to provide an expected delivery date and receipt of payment
- Customers should be able to track their order
12. How To Design A Parking Lot System
Key Features / Requirements
- The customers should receive tickets at the entry points
- The customers should be able to make payments at the exit points
- The service should be able to handle payments in cash and credit card
- The parking lot should have multiple entry and exit points
- When the capacity is full, the system should cease the entry of more vehicles
13. How To Design An API Rate Limiter
Key Features / Requirements
- The service limits the number of requests a user can send to an API within a time frame
- The API can be available through multiple servers, so the rate limit has to apply across a distributed system
- Design an approach to handle throttling

14. How To Design A Search Autocomplete (Or Search Typeahead) System for A Search Box
Key Features / Requirements
- Taking users input as a prefix, the system delivers a list of, let’s say 7 autocomplete suggestions
- The service should be able to handle millions of queries a day
- The suggestions are ordered through some form of ranking
- The response should be fast enough to match user’s type speed

15. How To Design An ATM Machine
Key Features / Requirements
- The system should be able to read user’s ATM card
- It should allow the users to make balance inquiries, withdraw cash, deposit checks, deposit cash and make transfers to another bank account
- The system must provide a receipt for the transactions
16. How To Design A Recommendation System (As Used By Youtube, Netflix etc)
Key Features / Requirements
- Design an approach to collect and store data to filter it and make recommendations
- The system makes suggestions based on a number of things, including the user’s watch history, likes, subscribes, shares and freshness of the content itself
17. How To Design A Mini Search Engine (like Google or Yahoo Search)
Key Features / Requirements
- The system should be able to scan and extract data
- It should be able to index and filter out data
- The system should be able to scale to millions of users with minimum latency
- Design an approach to store and display the filtered content
Don’t waste hours on Leetcode. Learn patterns with the course Grokking the Coding Interview: Patterns for Coding Questions to beat the interview. Or, if you prefer video-based courses check out Udacity.
18. How To Design A Garbage Collection System
Key Features / Requirements
- The system should be able to detect all unreachable objects
- It should also be able to release the memory allocated to these unreachable objects
- The released memory space should be made available for new objects

19. How To Design Reddit
Key Features / Requirements
- Users should be able to make posts under different forums
- Posts can be images, text, or a mix of both
- Users can view feeds with posts based on relevancy and freshness
- Users can vote and comment on posts
Check out the course Grokking the System Design Interview from our sponsor Educative.
20. How to Design BookMyShow/ Fandango (or similar movie ticket booking application)
Key Features / Requirements
- The system should be able to list the nearby cinemas
- The system should be able to handle booking for different halls for each cinema, where each halls runs a single show at a time
- Each movie can have different show times
- Customers should be able to make searches based on movie name, release date, language, genre etc
- The service should be able to show the customers available seats
- Customers should be able to select seats and make bookings
- Design an approach to handle payments
- Design an approach to handle variations in pricing for children, students etc
21. How To Design LinkedIn (or similar professional social network)
Key Features / Requirements
- Users can create their profiles, including education, experience, and skills
- The system should be able to introduce participants with each other based on similarities in profession
- The system should be able to generate stats on user’s profiles, including views and connections
- The system should be able to connect producers with consumers
- Users should be able to create company pages and make job postings
- Users can create and join groups
- Users can create, comment, like and share posts
- Users can send personal messages to other users
22. How To Design A Notification Service
Key Features / Requirements
- The system should be able to send notifications in the form of push notifications, emails and sms
- It should be easy to incorporate into any application
- Design an approach to prioritize notifications
- Design an approach to apply a rate limit to avoid scamming users with messages
23. How To Design An Elevator System For A Multi-Storey Building
Key Features / Requirements
- The elevator can move in the upwards direction, downwards or stand stationary
- The elevator door should only be allowed to open when it is stationary on the floor
- The building can have hundreds of floors, and several elevators
- It should be able to transport users from one floor to another inside the same building in the shortest time

24. Design A Multiplayer Card Game
Key Features / Requirements
- The system follows the same rules as a standard cards game
25. How To Design Twitter Snowflake (or similar random ID generator at high-scale)
Key Features / Requirements
- The system generates a unique, random ID for each user
- The IDs are of a fixed length
- The IDs can be incremented by date
- The system should be scalable to accommodate millions of users
Check out the course Grokking the System Design Interview from our sponsor Educative.

Your Comprehensive Interview Kit for Big Tech Jobs
0. Grokking the Machine Learning Interview This course helps you build that skill, and goes over some of the most popularly asked interview problems at big tech companies.
1. Grokking the System Design Interview Learn how to prepare for system design interviews and practice common system design interview questions.
2. Grokking Dynamic Programming Patterns for Coding Interviews Faster preparation for coding interviews.
3. Grokking the Advanced System Design Interview Learn system design through architectural review of real systems.
4. Grokking the Coding Interview: Patterns for Coding Questions Faster preparation for coding interviews.
5. Grokking the Object Oriented Design Interview Learn how to prepare for object oriented design interviews and practice common object oriented design interview questions
6. Machine Learning System Design





