Assalamualaikum Warrahmatullahi Wabarokatuh,

My Name is Reza Fauzi Augusdi, from Informatics Engineering “Electronic Engineering Polytechnic Institute of Surabaya”

I’ll gonna be telling you about,


Designing Large Scale Distributed Systems has become the standard part of the software engineering interviews. Engineers struggle with System Design Interviews (SDIs), primarily because of the following two reasons:

1.Their lack of experience in developing large scale systems.

2.Unstructured nature of SDIs. Even engineers who’ve some experience building large systems aren’t comfortable with these interviews, mainly due to the open-ended nature of design problems that don’t have a standard answer.

A great performance in SDIs is highly rewarding since it reflects upon your ability to work with complex systems and translates into the position and compensation (salary & stocks) that the interviewing company will offer you.

And These all are the most frequently asked questions to the things that interviewers want you to consider while designing the system.


  1. Design / TinyURL (a URL shortening service)
    • How to generate a unique ID for Each URL?
    • How would you generate unique IDs at scale (thousand of URL shortening request coming every second)
    • How would your service handle redirects?
    • How would you support a custom short URL?
    • How to delete expired URL?
    • How to track click stats?
  2. Design youtube/Netflix/twitch (a global video streaming)
    • How would you record stats about videos, e.g the total number of views, up-votes/down-votes, etc
    • How would a user add comments on videos (in real-time)
  3. Design WhatsApp/facebook (a global chat service)
    • How would you design one-on-one conversations between users
    • How would you extend your design to support group chats?
    • What to do when the user is not connected to the internet?
    • When to send push notifications?
    • Can you provide end-to-end encryption? How?
  4. Designing quora/Reddit/hacker news (a social network + message board service)
    • Records stats for each answer e.g. the total number of views, up-votes/down-votes, etc.
    • The user should be able to follow other users or topics
    • Their timeline will consist of top questions from all the users and topic they follow (similar to newsfeed generation).
  5. Design dropbox/g-drive/g-photos (a global file storage & sharing service)
    • How would users be able to upload/view/search/share files or photos?
    • How would you track permissions for file sharing
    • How would you allow multiple users to edit the same document
  6. Design facebook/twitter/Instagram (a social media service with millions of users)
    • Efficient storage and search for posts or tweets
    • Newsfeed generation
    • Social Graph (who befriends whom or who follows whom-specially when millions of users are following a celebrity)
  7. Design Grab/Go-jek (a ride-sharing service)
    • The most critical use case-when a customer request a ride and how to efficiently match them with the nearby driver?
    • How to store millions of geographical locations for drivers and riders who are always moving
    • How to handle updates to driver/rider locations (millions of update every second)?
  8. Design a type-ahead/web crawler (search engine related service)
    • For Type-Ahead :
    • How to store previous search queries?
    • How to keep the data fresh?
    • How to find the best matches to the already typed string?
    • How to handle updates and the user is typing too fast?
    • For Web Crawler :
    • How to find new web pages?
    • How to prioritize web pages that change dynamically?
    • How to ensure that your crawler is not infinitely stuck on the same domain?
  9. Design an API rate limiter (e.G. for Firebase or GitHub)
    • Limit the number of requests an entity can send to an API within a time window e.g. 15 requests per second.
    • The rate-limiting should work for a distributed setup, as the APIs are accessible through a cluster of servers.
    • How would you handle throttling (soft and hard throttling, etc.)
  10. Design yelp/nearby places (a proximity server)
    • How would the users of the service be able to search nearby friends or places?
    • How to rank places (based on the distance, user reviews).
    • How to efficiently store location data according to the population density (e.g. a block in New York City might have more places/people than a small city).

That’s all things that I can say, and thanks to the resources who supply this information. and thanks to you all who sincerely heard my podcast.

Wassalamualaikum Warahmatullahi Wabarokatuh.

Resources :