{"id":13877620,"url":"https://github.com/OpesanyaAdebayo/systems-design","last_synced_at":"2025-07-16T13:32:14.738Z","repository":{"id":37256825,"uuid":"293220226","full_name":"OpesanyaAdebayo/systems-design","owner":"OpesanyaAdebayo","description":"All things systems design. Resources, Interview questions, e.t.c","archived":false,"fork":false,"pushed_at":"2021-08-27T22:07:04.000Z","size":61,"stargazers_count":979,"open_issues_count":0,"forks_count":212,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-11-24T06:32:48.522Z","etag":null,"topics":["backend-development","open-source","system-design","system-design-interview","system-design-project","system-design-questions"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/OpesanyaAdebayo.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-09-06T06:48:50.000Z","updated_at":"2024-11-19T16:48:31.000Z","dependencies_parsed_at":"2022-07-12T04:31:12.278Z","dependency_job_id":null,"html_url":"https://github.com/OpesanyaAdebayo/systems-design","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/OpesanyaAdebayo/systems-design","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpesanyaAdebayo%2Fsystems-design","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpesanyaAdebayo%2Fsystems-design/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpesanyaAdebayo%2Fsystems-design/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpesanyaAdebayo%2Fsystems-design/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/OpesanyaAdebayo","download_url":"https://codeload.github.com/OpesanyaAdebayo/systems-design/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/OpesanyaAdebayo%2Fsystems-design/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265514161,"owners_count":23780230,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["backend-development","open-source","system-design","system-design-interview","system-design-project","system-design-questions"],"created_at":"2024-08-06T08:01:14.212Z","updated_at":"2025-07-16T13:32:14.460Z","avatar_url":"https://github.com/OpesanyaAdebayo.png","language":null,"funding_links":[],"categories":["Others"],"sub_categories":[],"readme":"# System Design Repository\nAll things System Design. Books, Blog Posts, Interview questions, e.t.c\n\n## Table Of Contents\n\n- [Books](#books)\n- [Blog Posts](#blog-posts)\n- [Company Engineering Blogs](#company-engineering-blogs)\n- [Courses And Tutorials](#courses-and-tutorials)\n- [Interview Questions](#interview-questions)\n- [YouTube](#youtube)\n\n## Books\n\n- [Designing Data Intensive Applications by Martin Kleppmann](https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/1449373321)\n- [Designing Distributed Systems by Brendan Burns](https://azure.microsoft.com/en-us/resources/designing-distributed-systems/)\n- [System Design Interview by Alex Xu](https://www.amazon.com/dp/B08CMF2CQF/)\n\n## Blog Posts\n\n- [Scalability for Dummies](https://www.lecloud.net/tagged/scalability)\n- [Scalable Web Architecture and Distributed Systems](https://www.aosabook.org/en/distsys.html)\n- [Introduction to architecting systems for scale](https://lethain.com/introduction-to-architecting-systems-for-scale/)\n- [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/)\n\n## Company Engineering Blogs\n\n- [High Scalability](http://highscalability.com/)\n- [The GitHub Blog](https://github.com/blog/category/engineering)\n- [Engineering at Quora](http://engineering.quora.com/)\n- [Yelp Engineering Blog](http://engineeringblog.yelp.com/)\n- [Twitter Engineering](https://engineering.twitter.com/)\n- [Facebook Engineering](https://www.facebook.com/Engineering)\n- [Yammer Engineering](http://eng.yammer.com/blog/)\n- [Etsy Code as Craft](http://codeascraft.com/)\n- [Foursquare Engineering Blog](http://engineering.foursquare.com/)\n- [Airbnb Engineering](http://nerds.airbnb.com/)\n- [WebEngage Engineering Blog](http://engineering.webengage.com/)\n- [LinkedIn Engineering](http://engineering.linkedin.com/blog)\n- [The Netflix Tech Blog](http://techblog.netflix.com/)\n- [BankSimple Simple Blog](https://www.simple.com/engineering/)\n- [Square The Corner](http://corner.squareup.com/)\n- [SoundCloud Backstage Blog](https://developers.soundcloud.com/blog/)\n- [Flickr Code](http://code.flickr.net/)\n- [Instagram Engineering](http://instagram-engineering.tumblr.com/)\n- [Dropbox Tech Blog](https://tech.dropbox.com/)\n- [Cloudera Developer Blog](http://blog.cloudera.com/)\n- [Bandcamp Tech](http://bandcamptech.wordpress.com/)\n- [Oyster Tech Blog](http://tech.oyster.com/)\n- [THE REDDIT BLOG](http://www.redditblog.com/)\n- [Groupon Engineering Blog](https://engineering.groupon.com/)\n- [Songkick Technology Blog](http://devblog.songkick.com/)\n- [Google Research Blog](http://googleresearch.blogspot.com/)\n- [Pinterest Engineering Blog](http://engineering.pinterest.com/)\n- [Twilio Engineering Blog](http://www.twilio.com/engineering)\n- [Bitly Engineering Blog](http://word.bitly.com/)\n- [Uber Engineering Blog ](https://eng.uber.com/)\n- [Godaddy Engineering](http://engineering.godaddy.com/)\n- [Splunk Blog](http://blogs.splunk.com/)\n- [Coursera Engineering Blog](https://building.coursera.org/)\n- [PayPal Engineering Blog](https://www.paypal-engineering.com/)\n- [Nextdoor Engineering Blog](https://engblog.nextdoor.com/)\n- [Booking.com Development Blog](https://blog.booking.com/)\n- [Scalyr Engineering Blog](https://blog.scalyr.com/)\n- [Grammarly Engineering Blog](https://www.grammarly.com/blog/engineering/)\n- [Intercom Engineering Blog](https://www.intercom.com/blog/engineering)\n- [Slack Engineering Blog](https://slack.engineering/)\n- [Stripe Engineering Blog](https://stripe.com/blog/engineering)\n\n\n## Courses And Tutorials\n- [Grokking the System Design Interview](https://www.educative.io/courses/grokking-the-system-design-interview)\n- [Algoexpert.io](https://www.algoexpert.io)\n- [Hired In Tech](https://www.palantir.com/2011/10/how-to-rock-a-systems-design-interview/)\n- [System Design Tutorial](https://systemdesigntutorial.com/system-design/yelp)\n\n\n## Interview Questions\n\n**Design a CDN network**\n* [Globally Distributed Content Delivery](https://kilthub.cmu.edu/articles/journal_contribution/Globally_distributed_content_delivery/6605972)\n\n**Design a Google document system**\n* [google-mobwrite](https://code.google.com/p/google-mobwrite/)\n* [Differential Synchronization](https://neil.fraser.name/writing/sync/)\n\n**Design a random ID generation system**\nReference:\n* [Announcing Snowflake](https://blog.twitter.com/2010/announcing-snowflake)\n* [snowflake](https://github.com/twitter/snowflake/)\n\n**Design a key-value database**\nReference:\n* [Introduction to Redis](http://www.slideshare.net/dvirsky/introduction-to-redis)\n\n**Design the Facebook news feed function**\nReference:\n* [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)\n* [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)\n* [Activity Feeds Architecture](http://www.slideshare.net/danmckinley/etsy-activity-feeds-architecture)\n\n**Design the Facebook timeline function**\nReference:\n* [Building Timeline](https://www.facebook.com/note.php?note_id=10150468255628920)\n* [Facebook Timeline](http://highscalability.com/blog/2012/1/23/facebook-timeline-brought-to-you-by-the-power-of-denormaliza.html)\n\n**Design a function to return the top k requests during past time interval**\n* [Efficient Computation of Frequent and Top-k Elements in Data Streams](http://www.cse.ust.hk/~raywong/comp5331/References/EfficientComputationOfFrequentAndTop-kElementsInDataStreams.pdf)\n* [An Optimal Strategy for Monitoring Top-k Queries in Streaming Windows](http://davis.wpi.edu/xmdv/docs/EDBT11-diyang.pdf)\n\n**Design an online multiplayer card game**\n* [How to Create an Asynchronous Multiplayer Game](http://www.indieflashblog.com/how-to-create-an-asynchronous-multiplayer-game.html)\n* [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)\n* [How to Create an Asynchronous Multiplayer Game Part 3: Loading Games from the Database](http://www.indieflashblog.com/how-to-create-async-part3.html)\n* [How to Create an Asynchronous Multiplayer Game Part 4: Matchmaking](http://www.indieflashblog.com/how-to-create-async-part4-html.html#comment-4447)\n* [Real Time Multiplayer in HTML5](http://buildnewgames.com/real-time-multiplayer/)\n\n**Design a graph search function**\n\n* [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)\n* [Indexing and ranking in Graph Search](https://www.facebook.com/notes/facebook-engineering/under-the-hood-indexing-and-ranking-in-graph-search/10151361720763920)\n* [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)\n\n**Design a picture sharing system**\n\n* [Flickr Architecture](http://highscalability.com/flickr-architecture)\n* [Instagram Architecture](http://highscalability.com/blog/2011/12/6/instagram-architecture-14-million-users-terabytes-of-photos.html)\n\n**Design a search engine**\n\n* [How would you implement Google Search?](http://programmers.stackexchange.com/questions/38324/interview-question-how-would-you-implement-google-search)\n* [Implementing Search Engines](http://www.ardendertat.com/2012/01/11/implementing-search-engines/)\n\n**Design a recommendation system**\n\n* [Hulu’s Recommendation System](http://tech.hulu.com/blog/2011/09/19/recommendation-system.html)\n* [Recommender Systems](http://ijcai13.org/files/tutorial_slides/td3.pdf)\n\n**Design a tinyurl system**\n\n* [System Design for Big Data-tinyurl](http://n00tc0d3r.blogspot.com/)\n* [URL Shortener API](https://developers.google.com/url-shortener/?csw=1)\n\n**Design a garbage collection system**\n\n* [Baby's First Garbage Collector](http://journal.stuffwithstuff.com/2013/12/08/babys-first-garbage-collector/)\n\n**Design a scalable web crawling system**\n\n* [How can I build a web crawler from scratch?](https://www.quora.com/How-can-I-build-a-web-crawler-from-scratch)\n\n**Design the Facebook chat function**\n\n* [Erlang at Facebook](http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf)\n* [Facebook Chat](https://www.facebook.com/note.php?note_id=14218138919\u0026id=9445547199\u0026index=0)\n\n**Design a trending topic system**\n\n* [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/)\n* [Early detection of Twitter trends explained](http://snikolov.wordpress.com/2012/11/14/early-detection-of-twitter-trends/)\n\n**Design a cache system**\n\n* [Introduction to Memcached](http://www.slideshare.net/oemebamo/introduction-to-memcached)\n\n## YouTube\n\n### Channels\n\n- [Gaurav Sen](https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw)\n- [Hussein Nasser](https://www.youtube.com/channel/UC_ML5xP23TOWKUcc-oAE_Eg)\n\n### Videos\n\n- [System Design Mock Interview: Design Instagram](https://www.youtube.com/watch?v=VJpfO6KdyWE)\n- [Google Systems Design Interview With An Ex-Googler](https://www.youtube.com/watch?v=q0KGYwNbf-0)\n- [Amazon System Design Interview: Design Parking Garage](https://www.youtube.com/watch?v=NtMvNh0WFVM)\n\n# Credits\n- Company Engineering Blogs from [checkcheckzz](https://github.com/checkcheckzz/system-design-interview#-company-engineering-blogs)\n- Initial post of interview questions from [checkcheckzz](https://github.com/checkcheckzz/system-design-interview#-hot-questions-and-reference)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpesanyaAdebayo%2Fsystems-design","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FOpesanyaAdebayo%2Fsystems-design","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FOpesanyaAdebayo%2Fsystems-design/lists"}