Open In App

System Design Interview Questions and Answers

In the 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 to build 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 the open-ended nature of the 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 the system design round. If you are preparing yourself for this round then we recommend you to read the blog How to Crack System Design Round in Interviews. Along with this, if you also want to crack Architect, SDM, SDE, and SSE jobs then you can check out Mastering System Design Course and optimize your approach towards getting an amazing job. 

We will discuss some common design interview questions asked by the interviewers frequently in big tech companies. We will also discuss some key points, that 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. These services generate a short URL if the 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: 

You need to consider three things while designing this service. 

  1. API(REST API) – Discuss how the client will follow an approach to communicate with the service along with the 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 Live Video Streaming Service)

Design a video streaming service like Youtube/Netflix where users 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: 

Components: 

  1. OC – Clouds like AWS, and OpenConnect 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: 

4. Design Quora/Reddit/HackerNews (A Social Network + Message Board Service)

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:

5. Design Search Typeahead(Autocomplete)

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:

6. Design Dropbox/Google Drive/Google Photos (A Global File Storage and Sharing Service)

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.

Things to discuss and analyze:

7. Design a Web Crawler

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

Things to discuss and analyze:

8.  Design Facebook, Twitter, or Instagram

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

Features to be considered:

Things to analyze:

Components:

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 the system design round of interviews. 

Architecture: Monolithic/Microservices (real-time service, Front-end (Application), and database)

Things to analyze and discuss:

10. Design an API Rate Limiter(Github)

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

Things to analyze and discuss:

11. Design a Notification System (Push Notifications):

Design a Notification System that monitors the number of requests a service receives and blocking excess calls when the limit is exceeded.

Things to analyze and discuss:


Article Tags :