Quick Cheat sheet for top 20 System Design Interview Questions (Part 1) (2023)

In software engineering interview process system design round has become a standard part of the interview. If you want to get your dream job in some big tech giant companies (especially as a senior engineer) then you need to tell your approach about building a complex large scalable system. There is no standard or accurate answer to the design interview questions.

You may have different conversations with different interviewers. Due to the lack of experience in building a large scale system and open-ended nature of system design round a lot of candidates struggle with this round. Not just junior and mid-level developers but also experienced developers feel uncomfortable in system design round.

We will discuss some common design interview questions asked by the interviewers frequently in big tech companies. We will also discuss some key points which you should consider while designing the system and explaining the answer to the interviewer.

1. Design a URL Shortening Service (TinyURL)

URL shortening service allows users to enter a long URL, and then it returns a shorter, unique URL. For example bit.ly and TinyURL. These services generate a short URL if user gives a long URL and if the user gives a short URL then it returns the original long URL.

Things to discuss and analyze:

(Video) HLD CheatSheet of Questions to ask|High Level System Design Interview|Extensive list of Quess to ask

  • Given a long URL, the service should generate a shorter and unique alias of it.
  • When the user hits a short link, the service should redirect to the original link.
  • Consider scalability if 1000’s of URL shortening requests coming every second.
  • Service handle redirects.
  • Support for custom short URLs.
  • Track click stats.
  • Delete expired URLs.
  • System should be highly available.

You need to consider three things while designing this service.

  1. API(REST API)- Discuss how client will follow an approach to communicate with the service along with load balancer which is the front end of the service.
  2. Application Layer– Discuss how the worker thread or hosts that will take the long URL, generate the tiny URL and how it will store both of the URLs in the database .
  3. Persistence Layer– Database

2. Design YouTube/Netflix (a global video streaming service)

Design a video streaming service like Youtube/Netflix where user can upload/view/search videos. The service should be scalable where a large number of users can watch and share the videos simultaneously. It will be storing and transmitting petabytes and petabytes of data.

Things to discuss and analyze:

  • Approach to record stats about videos e.g the total number of views, up-votes/down-votes, etc.
  • Adding comments on videos in real-time.


  1. OC – Clouds like AWS, OpenConnect which act as a content delivery network.
  2. Backend-Database
  3. Client- Any device to use Youtube/Netflix

3. Design Facebook Messenger or WhatsApp (a global chat service)

Things to discuss and analyze:

(Video) 5 Tips for System Design Interviews

  • Approach for one-on-one text messaging between users.
  • Approach for extending the design to support group chats.
  • Delivered and read status
  • What action needs to be taken if user is not connected to the internet.
  • Push notifications
  • Sending media like images or other documents
  • Approach for providing end-to-end message encryption.

4. Design Quora/Reddit/HackerNews (a social network + message boardservice)

These services allow users to post questions, share links and answer the questions of other users. Users can also comment on questions or shared links.

Things to discuss and analyze:

  • Approach to record stats of each answer such as number of views, up-votes/down-votes, etc.
  • Follow options should be there for users to follow other users or topics.
  • News feed generation which means users can see the list of top questions from all the users and topics they follow on their timeline.

5. Design Search Typeahead

Typeahead service allows users to type some query and based on that it suggests top searched items starting with whatever the user has typed.

Things to discuss and analyze:

  • Approach to store previous search queries
  • Real time requirement of system
  • Approach to keep the data fresh.
  • Approach to find the best matches to the already typed string
  • Queries per second to be handled by the system.
  • Criteria for choosing the suggestions.
  • Total number of data to be stored.
  • Approach to find the best matches to the already typed string

6. Design Dropbox/Google Drive/Google Photos (a global file storage and sharingservice)

Design a file or image hosting service that allows users to upload, store, share, delete and download files or images on their servers and provides synchronization across various devices.

(Video) Amazon System Design Preparation (SIP)

Things to discuss and analyze:

  • Approach to upload/view/search/share/download files or photos from any device.
  • Service should support automatic synchronization between devices, i.e., after updating a file on one device, it should get synchronized on all devices.
  • ACID (Atomicity, Consistency, Isolation and Durability) property should be present in the system.
  • Approach to track permission for file sharing.
  • Allowing multiple users to edit the same document.
  • System should support storing large files up to a GB.

7. Design a Web Crawler

Design a Web Crawler scalable service that collects information (crawl) from the entire web and fetch hundreds of millions of web documents.

Things to discuss and analyze:

  • Approach to find new web pages.
  • Approach to prioritize web pages that change dynamically.
  • Ensure that crawler is not unbounded on the same domain.

8. Design Facebook, Twitter or Instagram

You need to design a social media service for billions of users. Most of the interviewers spend time in the discussion of news feed generation services in these apps.

Features to be considered:

(Video) Harloween: The 1938 Alien Invasion Of The East Coast

  • Some of the specific Twitter/Facebook/Instagram features to be supported.
  • Privacy controls around each tweet or post.
  • User should be able to post tweets also the system should support replies to tweets/grouping tweets by conversations.
  • User should be able to see trending tweets/post.
  • Direct messaging
  • Mentions/Tagging.
  • User should be able to follow another user.

Things to analyze:

  • System should be able to handle the huge amount of traffic for billions of users.
  • Number of followers
  • Number of times the tweet has been favorited.


  • News feed generation.
  • Social graph (Friend connection networking between users or who follows whom?—?specially when millions of users are following a celebrity
  • Efficient storage and search for posts or tweets.

9. Design Uber or lyft (a ride sharing service)

Design a service where a user requests a ride from the app, and a driver arrives to take them to their destination. A frequently asked interview question in system design round of interviews.

Architecture: Monolithic/Micro services ( Realtime service, Front-end (Application) and database)

Things to analyze and discuss:

(Video) Database Design Tips | Choosing the Best Database in a System Design Interview

  • The backend is primarily serving mobile phone traffic. uber app talks to the backend over mobile data.
  • How dispatch system works (GPS/ location data is what drive dispatch system)? How to efficiently match the user request with the nearby drivers?
  • How do maps and routing works in Uber? How ETAs are calculated?
  • An efficient approach to store millions of geographical locations for drivers/riders who are always on the move.
  • Approach to handle millions of updates to driver location.
  • Dispatch is mostly built using Node.js
  • Services: Business logic services mostly written in python.
  • Databases: Postgres, Redis, MySQL.

10. Design an API Rate Limiter(Github)

Design a service or tool that monitor the number of requests per a window time a service agrees to allow. If the number of request exceeds the rate limiter blocks all the excess calls.

Things to analyze and discuss:

  • Limiting the number of requests an entity can send to an API within a time window, for example, twenty requests per second.
  • Rate limiting should work for a distributed setup, as the APIs are available through a group of servers.
  • How to handle throttling (soft and hard throttling etc.).


How do I prepare for a system design interview? ›

To crack your system design interview, you'll need to prepare in three areas: Distributed system fundamentals. The architecture of large-scale web applications. Designing distributed systems.

Are system design Interviews hard? ›

A Focused Study Guide. System design interview questions separate junior and senior engineering roles. They're difficult to prepare for because, unlike algorithm questions, they don't boil down to a handful of prescribed patterns. Instead, they draw upon a vast ocean of technical knowledge and experience.

How do I prepare for system design interview medium? ›

Read through few questions and understand how the problem is being approached. The goal of this interview is to build a design and be collaborative.
Things to note while walking through examples are,
  1. Requirements and use cases are defined.
  2. Focus on how the bottlenecks are identified and resolved.

What are the basics of system design? ›

System design requires a systematic approach to building and engineering systems. A good system design requires you to think about everything in an infrastructure, from the hardware and software, all the way down to the data and how it's stored.

How do you solve system design problems? ›

System design problem solving approach
  1. Ask clarifying questions. Specify all requirements to understand what exactly your design should do. ...
  2. Scope business requirements. ...
  3. Do estimations. ...
  4. Start with as simple design as possible. ...
  5. Now scale up and iterate. ...
  6. Think about the extra details of your system.

How do you rock a systems design interview? ›

Try using the following steps to guide your discussion:
  1. Step 1 — Understand the Goals. Clarifying ambiguities early in the interview is critical. ...
  2. Step 2 — Establish the Scope. ...
  3. Step 3 — Design for the Right Scale. ...
  4. Step 4 — Start High-Level, then Drill-Down. ...
  5. Step 5 — Data Structures and Algorithms (DS&A) ...
  6. Step 6 — Tradeoffs.
12 Aug 2018

What are the steps in system design? ›

There are four system design processes: developing stakeholder expectations, technical requirements, logical decompositions, and design solutions.


1. System Design Interview – Step By Step Guide
(System Design Interview)
2. Cracking the Dropbox / Google Drive System Design Interview Part 1 of 2
3. System Architect Breaks Down System Design Interview [ex Google/Microsoft]
4. Top 20 Systems Engineer Interview Questions and Answers for 2022
5. IP address network and host portion | subnet mask explained | ccna 200-301 free |
6. The SDM Interview at Amazon
(Inside Amazon Videos)
Top Articles
Latest Posts
Article information

Author: Velia Krajcik

Last Updated: 02/11/2023

Views: 5704

Rating: 4.3 / 5 (54 voted)

Reviews: 85% of readers found this page helpful

Author information

Name: Velia Krajcik

Birthday: 1996-07-27

Address: 520 Balistreri Mount, South Armand, OR 60528

Phone: +466880739437

Job: Future Retail Associate

Hobby: Polo, Scouting, Worldbuilding, Cosplaying, Photography, Rowing, Nordic skating

Introduction: My name is Velia Krajcik, I am a handsome, clean, lucky, gleaming, magnificent, proud, glorious person who loves writing and wants to share my knowledge and understanding with you.