System Design Repository
All things System Design. Books, Blog Posts, Interview questions, e.t.c
Table Of Contents
Books
- Designing Data Intensive Applications by Martin Kleppmann
- Designing Distributed Systems by Brendan Burns
- System Design Interview by Alex Xu
Blog Posts
- Scalability for Dummies
- Scalable Web Architecture and Distributed Systems
- Introduction to architecting systems for scale
- System design interview questions - Concepts you should know
Company Engineering Blogs
- High Scalability
- The GitHub Blog
- Engineering at Quora
- Yelp Engineering Blog
- Twitter Engineering
- Facebook Engineering
- Yammer Engineering
- Etsy Code as Craft
- Foursquare Engineering Blog
- Airbnb Engineering
- WebEngage Engineering Blog
- LinkedIn Engineering
- The Netflix Tech Blog
- BankSimple Simple Blog
- Square The Corner
- SoundCloud Backstage Blog
- Flickr Code
- Instagram Engineering
- Dropbox Tech Blog
- Cloudera Developer Blog
- Bandcamp Tech
- Oyster Tech Blog
- THE REDDIT BLOG
- Groupon Engineering Blog
- Songkick Technology Blog
- Google Research Blog
- Pinterest Engineering Blog
- Twilio Engineering Blog
- Bitly Engineering Blog
- Uber Engineering Blog
- Godaddy Engineering
- Splunk Blog
- Coursera Engineering Blog
- PayPal Engineering Blog
- Nextdoor Engineering Blog
- Booking.com Development Blog
- Scalyr Engineering Blog
- Grammarly Engineering Blog
- Intercom Engineering Blog
- Slack Engineering Blog
- Stripe Engineering Blog
Courses And Tutorials
Interview Questions
Design a CDN network
Design a Google document system
Design a random ID generation system Reference:
Design a key-value database Reference:
Design the Facebook news feed function Reference:
- What are best practices for building something like a News Feed?
- What are the scaling issues to keep in mind while developing a social network feed?
- Activity Feeds Architecture
Design the Facebook timeline function Reference:
Design a function to return the top k requests during past time interval
- Efficient Computation of Frequent and Top-k Elements in Data Streams
- An Optimal Strategy for Monitoring Top-k Queries in Streaming Windows
Design an online multiplayer card game
- How to Create an Asynchronous Multiplayer Game
- How to Create an Asynchronous Multiplayer Game Part 2: Saving the Game State to Online Database
- How to Create an Asynchronous Multiplayer Game Part 3: Loading Games from the Database
- How to Create an Asynchronous Multiplayer Game Part 4: Matchmaking
- Real Time Multiplayer in HTML5
Design a graph search function
- Building out the infrastructure for Graph Search
- Indexing and ranking in Graph Search
- The natural language interface of Graph Search and Erlang at Facebook
Design a picture sharing system
Design a search engine
Design a recommendation system
Design a tinyurl system
Design a garbage collection system
Design a scalable web crawling system
Design the Facebook chat function
Design a trending topic system
- Implementing Real-Time Trending Topics With a Distributed Rolling Count Algorithm in Storm
- Early detection of Twitter trends explained
Design a cache system
YouTube
Channels
Videos
- System Design Mock Interview: Design Instagram
- Google Systems Design Interview With An Ex-Googler
- Amazon System Design Interview: Design Parking Garage
Credits
- Company Engineering Blogs from checkcheckzz
- Initial post of interview questions from checkcheckzz