Interview Guides
Grokking the System Design Interview
The classic course: a step-by-step interview framework, 16 worked designs from TinyURL to Ticketmaster, and the building blocks every design uses.
System Design Problems
- 1System Design Interviews: A step by step guide
- 2Designing a URL Shortening service like TinyURLLet's design a URL shortening service like TinyURL. This service will provide short aliases redirecting to long URLs.
- 3Designing PastebinLet's design a Pastebin like web service, where users can store plain text. Users of the service will enter a piece of text and get a randomly generated URL to access it.
- 4Designing InstagramLet's design a photo-sharing service like Instagram, where users can upload photos to share them with other users.
- 5Designing DropboxLet's design a file hosting service like Dropbox or Google Drive. Cloud file storage enables users to store their data on remote servers. Usually, these servers are maintained by cloud storage providers and made available to users over a network (typically through the Internet). Users pay for their cloud data storage on a monthly basis.
- 6Designing Facebook MessengerLet's design an instant messaging service like Facebook Messenger where users can send text messages to each other through web and mobile interfaces.
- 7Designing TwitterLet's design a Twitter-like social networking service. Users of the service will be able to post tweets, follow other people, and favorite tweets.
- 8Designing Youtube or NetflixLet's design a video sharing service like Youtube, where users will be able to upload/view/search videos.
- 9Designing Typeahead SuggestionLet's design a real-time suggestion service, which will recommend terms to users as they enter text for searching.
- 10Designing an API Rate LimiterLet's design an API Rate Limiter which will throttle users based upon the number of the requests they are sending.
- 11Designing Twitter SearchTwitter is one of the largest social networking service where users can share photos, news, and text-based messages. In this chapter, we will design a service that can store and search user tweets. Similar Problems: Tweet search.
- 12Designing a Web CrawlerLet's design a Web Crawler that will systematically browse and download the World Wide Web. Web crawlers are also known as web spiders, robots, worms, walkers, and bots.
- 13Designing Facebook’s NewsfeedLet's design Facebook's Newsfeed, which would contain posts, photos, videos, and status updates from all the people and pages a user follows.
- 14Designing Yelp or Nearby FriendsLet's design a Yelp like service, where users can search for nearby places like restaurants, theaters, or shopping malls, etc., and can also add/view reviews of places.
- 15Designing Uber backendLet's design a ride-sharing service like Uber, which connects passengers who need a ride with drivers who have a car.
- 16Design TicketmasterLet's design an online ticketing system that sells movie tickets like Ticketmaster or BookMyShow.
- 17Additional Resources
System Design Basics
- 18Key Characteristics of Distributed Systems
- 19Load Balancing
- 20Caching
- 21Sharding or Data Partitioning
- 22Indexes
- 23Proxies
- 24Redundancy and Replication
- 25SQL vs. NoSQL
- 26CAP Theorem
- 27Consistent Hashing
- 28Long-Polling vs WebSockets vs Server-Sent EventsWhat is the difference between Long-Polling, WebSockets, and Server-Sent Events?