https://github.com/OpesanyaAdebayo/systems-design
All things systems design. Resources, Interview questions, e.t.c
https://github.com/OpesanyaAdebayo/systems-design
backend-development open-source system-design system-design-interview system-design-project system-design-questions
Last synced: 3 months ago
JSON representation
All things systems design. Resources, Interview questions, e.t.c
- Host: GitHub
- URL: https://github.com/OpesanyaAdebayo/systems-design
- Owner: OpesanyaAdebayo
- License: mit
- Created: 2020-09-06T06:48:50.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-08-27T22:07:04.000Z (about 4 years ago)
- Last Synced: 2024-11-24T06:32:48.522Z (11 months ago)
- Topics: backend-development, open-source, system-design, system-design-interview, system-design-project, system-design-questions
- Homepage:
- Size: 59.6 KB
- Stars: 979
- Watchers: 40
- Forks: 212
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
README
# System Design Repository
All things System Design. Books, Blog Posts, Interview questions, e.t.c## Table Of Contents
- [Books](#books)
- [Blog Posts](#blog-posts)
- [Company Engineering Blogs](#company-engineering-blogs)
- [Courses And Tutorials](#courses-and-tutorials)
- [Interview Questions](#interview-questions)
- [YouTube](#youtube)## Books
- [Designing Data Intensive Applications by Martin Kleppmann](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321)
- [Designing Distributed Systems by Brendan Burns](https://azure.microsoft.com/en-us/resources/designing-distributed-systems/)
- [System Design Interview by Alex Xu](https://www.amazon.com/dp/B08CMF2CQF/)## Blog Posts
- [Scalability for Dummies](https://www.lecloud.net/tagged/scalability)
- [Scalable Web Architecture and Distributed Systems](https://www.aosabook.org/en/distsys.html)
- [Introduction to architecting systems for scale](https://lethain.com/introduction-to-architecting-systems-for-scale/)
- [System design interview questions - Concepts you should know](https://www-freecodecamp-org.cdn.ampproject.org/c/s/www.freecodecamp.org/news/systems-design-for-interviews/)## Company Engineering Blogs
- [High Scalability](http://highscalability.com/)
- [The GitHub Blog](https://github.com/blog/category/engineering)
- [Engineering at Quora](http://engineering.quora.com/)
- [Yelp Engineering Blog](http://engineeringblog.yelp.com/)
- [Twitter Engineering](https://engineering.twitter.com/)
- [Facebook Engineering](https://www.facebook.com/Engineering)
- [Yammer Engineering](http://eng.yammer.com/blog/)
- [Etsy Code as Craft](http://codeascraft.com/)
- [Foursquare Engineering Blog](http://engineering.foursquare.com/)
- [Airbnb Engineering](http://nerds.airbnb.com/)
- [WebEngage Engineering Blog](http://engineering.webengage.com/)
- [LinkedIn Engineering](http://engineering.linkedin.com/blog)
- [The Netflix Tech Blog](http://techblog.netflix.com/)
- [BankSimple Simple Blog](https://www.simple.com/engineering/)
- [Square The Corner](http://corner.squareup.com/)
- [SoundCloud Backstage Blog](https://developers.soundcloud.com/blog/)
- [Flickr Code](http://code.flickr.net/)
- [Instagram Engineering](http://instagram-engineering.tumblr.com/)
- [Dropbox Tech Blog](https://tech.dropbox.com/)
- [Cloudera Developer Blog](http://blog.cloudera.com/)
- [Bandcamp Tech](http://bandcamptech.wordpress.com/)
- [Oyster Tech Blog](http://tech.oyster.com/)
- [THE REDDIT BLOG](http://www.redditblog.com/)
- [Groupon Engineering Blog](https://engineering.groupon.com/)
- [Songkick Technology Blog](http://devblog.songkick.com/)
- [Google Research Blog](http://googleresearch.blogspot.com/)
- [Pinterest Engineering Blog](http://engineering.pinterest.com/)
- [Twilio Engineering Blog](http://www.twilio.com/engineering)
- [Bitly Engineering Blog](http://word.bitly.com/)
- [Uber Engineering Blog ](https://eng.uber.com/)
- [Godaddy Engineering](http://engineering.godaddy.com/)
- [Splunk Blog](http://blogs.splunk.com/)
- [Coursera Engineering Blog](https://building.coursera.org/)
- [PayPal Engineering Blog](https://www.paypal-engineering.com/)
- [Nextdoor Engineering Blog](https://engblog.nextdoor.com/)
- [Booking.com Development Blog](https://blog.booking.com/)
- [Scalyr Engineering Blog](https://blog.scalyr.com/)
- [Grammarly Engineering Blog](https://www.grammarly.com/blog/engineering/)
- [Intercom Engineering Blog](https://www.intercom.com/blog/engineering)
- [Slack Engineering Blog](https://slack.engineering/)
- [Stripe Engineering Blog](https://stripe.com/blog/engineering)## Courses And Tutorials
- [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview)
- [Algoexpert.io](https://www.algoexpert.io)
- [Hired In Tech](https://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)
- [System Design Tutorial](https://systemdesigntutorial.com/system-design/yelp)## Interview Questions
**Design a CDN network**
* [Globally Distributed Content Delivery](https://kilthub.cmu.edu/articles/journal_contribution/Globally_distributed_content_delivery/6605972)**Design a Google document system**
* [google-mobwrite](https://code.google.com/p/google-mobwrite/)
* [Differential Synchronization](https://neil.fraser.name/writing/sync/)**Design a random ID generation system**
Reference:
* [Announcing Snowflake](https://blog.twitter.com/2010/announcing-snowflake)
* [snowflake](https://github.com/twitter/snowflake/)**Design a key-value database**
Reference:
* [Introduction to Redis](http://www.slideshare.net/dvirsky/introduction-to-redis)**Design the Facebook news feed function**
Reference:
* [What are best practices for building something like a News Feed?](http://www.quora.com/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?](http://www.quora.com/Activity-Streams/What-are-the-scaling-issues-to-keep-in-mind-while-developing-a-social-network-feed)
* [Activity Feeds Architecture](http://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture)**Design the Facebook timeline function**
Reference:
* [Building Timeline](https://www.facebook.com/note.php?note_id=10150468255628920)
* [Facebook Timeline](http://highscalability.com/blog/2012/1/23/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html)**Design a function to return the top k requests during past time interval**
* [Efficient Computation of Frequent and Top-k Elements in Data Streams](http://www.cse.ust.hk/~raywong/comp5331/References/EfficientComputationOfFrequentAndTop-kElementsInDataStreams.pdf)
* [An Optimal Strategy for Monitoring Top-k Queries in Streaming Windows](http://davis.wpi.edu/xmdv/docs/EDBT11-diyang.pdf)**Design an online multiplayer card game**
* [How to Create an Asynchronous Multiplayer Game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)
* [How to Create an Asynchronous Multiplayer Game Part 2: Saving the Game State to Online Database](http://www.indieflashblog.com/how-to-create-async-part2.html)
* [How to Create an Asynchronous Multiplayer Game Part 3: Loading Games from the Database](http://www.indieflashblog.com/how-to-create-async-part3.html)
* [How to Create an Asynchronous Multiplayer Game Part 4: Matchmaking](http://www.indieflashblog.com/how-to-create-async-part4-html.html#comment-4447)
* [Real Time Multiplayer in HTML5](http://buildnewgames.com/real-time-multiplayer/)**Design a graph search function**
* [Building out the infrastructure for Graph Search](https://www.facebook.com/notes/facebook-engineering/under-the-hood-building-out-the-infrastructure-for-graph-search/10151347573598920)
* [Indexing and ranking in Graph Search](https://www.facebook.com/notes/facebook-engineering/under-the-hood-indexing-and-ranking-in-graph-search/10151361720763920)
* [The natural language interface of Graph Search](https://www.facebook.com/notes/facebook-engineering/under-the-hood-the-natural-language-interface-of-graph-search/10151432733048920) and [Erlang at Facebook](http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf)**Design a picture sharing system**
* [Flickr Architecture](http://highscalability.com/flickr-architecture)
* [Instagram Architecture](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)**Design a search engine**
* [How would you implement Google Search?](http://programmers.stackexchange.com/questions/38324/interview-question-how-would-you-implement-google-search)
* [Implementing Search Engines](http://www.ardendertat.com/2012/01/11/implementing-search-engines/)**Design a recommendation system**
* [Hulu’s Recommendation System](http://tech.hulu.com/blog/2011/09/19/recommendation-system.html)
* [Recommender Systems](http://ijcai13.org/files/tutorial_slides/td3.pdf)**Design a tinyurl system**
* [System Design for Big Data-tinyurl](http://n00tc0d3r.blogspot.com/)
* [URL Shortener API](https://developers.google.com/url-shortener/?csw=1)**Design a garbage collection system**
* [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/)
**Design a scalable web crawling system**
* [How can I build a web crawler from scratch?](https://www.quora.com/How-can-I-build-a-web-crawler-from-scratch)
**Design the Facebook chat function**
* [Erlang at Facebook](http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf)
* [Facebook Chat](https://www.facebook.com/note.php?note_id=14218138919&id=9445547199&index=0)**Design a trending topic system**
* [Implementing Real-Time Trending Topics With a Distributed Rolling Count Algorithm in Storm](http://www.michael-noll.com/blog/2013/01/18/implementing-real-time-trending-topics-in-storm/)
* [Early detection of Twitter trends explained](http://snikolov.wordpress.com/2012/11/14/early-detection-of-twitter-trends/)**Design a cache system**
* [Introduction to Memcached](http://www.slideshare.net/oemebamo/introduction-to-memcached)
## YouTube
### Channels
- [Gaurav Sen](https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw)
- [Hussein Nasser](https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg)### Videos
- [System Design Mock Interview: Design Instagram](https://www.youtube.com/watch?v=VJpfO6KdyWE)
- [Google Systems Design Interview With An Ex-Googler](https://www.youtube.com/watch?v=q0KGYwNbf-0)
- [Amazon System Design Interview: Design Parking Garage](https://www.youtube.com/watch?v=NtMvNh0WFVM)# Credits
- Company Engineering Blogs from [checkcheckzz](https://github.com/checkcheckzz/system-design-interview#-company-engineering-blogs)
- Initial post of interview questions from [checkcheckzz](https://github.com/checkcheckzz/system-design-interview#-hot-questions-and-reference)