├── LICENSE └── README.md /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 Arman Khondker 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Best System Design Resources 2 | 3 | This repository contains the best resources for System Design Interviews. 4 | 5 | ## System Design Fundamentals 6 | - [Latency vs Throughput](https://aws.amazon.com/compare/the-difference-between-throughput-and-latency/) 7 | - [SQL vs NoSQL](https://www.mongodb.com/nosql-explained/nosql-vs-sql) 8 | - [CAP Theorom](https://www.scylladb.com/glossary/cap-theorem/) 9 | - [Load Balancing](https://aws.amazon.com/what-is/load-balancing/) 10 | - [Horizontal vs Vertical Scaling](https://www.nops.io/blog/horizontal-vs-vertical-scaling/#:~:text=The%20primary%20difference%20between%20horizontal,.) 11 | - [Microservices](https://microservices.io/) 12 | - [Database Sharding](https://www.mongodb.com/features/database-sharding-explained#) 13 | - [Database Replication](https://redis.com/blog/what-is-data-replication/) 14 | - [SQL Tuning](https://docs.oracle.com/en/database/oracle/oracle-database/23/tgsql/introduction-to-sql-tuning.html#GUID-B653E5F3-F078-4BBC-9516-B892960046A2) 15 | - [Consistency Patterns](https://systemdesign.one/consistency-patterns/) 16 | - [REST vs RPC](https://aws.amazon.com/compare/the-difference-between-rpc-and-rest/#:~:text=In%20Remote%20Procedure%20Call%20(RPC,on%20a%20specific%20server%20resource. ) 17 | - [Message Queues](https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers/system-design-the-distributed-messaging-queue) 18 | - [TCP vs UDP](https://www.avast.com/c-tcp-vs-udp-difference#:~:text=TCP%20vs%20UDP%3A%20Differences%20between%20the%20protocols,reliable%20but%20works%20more%20quickly.) 19 | - [Domain Name System (DNS)](https://www.cloudflare.com/learning/dns/what-is-dns/) 20 | - [Cache](https://aws.amazon.com/caching/) 21 | - [ACID Transactions](https://www.databricks.com/glossary/acid-transactions#:~:text=ACID%20is%20an%20acronym%20that,operations%20are%20called%20transactional%20systems.) 22 | - [Database Indexing](https://www.progress.com/tutorials/odbc/using-indexes) 23 | - [API Gateway](https://www.nginx.com/learn/api-gateway/#:~:text=An%20API%20gateway%20is%20a,%2Dcloud%2C%20and%20hybrid%20environments.) 24 | - [Fault Tolerance](https://www.cockroachlabs.com/blog/what-is-fault-tolerance/) 25 | - [Content Delivery Network](https://aws.amazon.com/what-is/cdn/#:~:text=A%20content%20delivery%20network%20(CDN,loading%20for%20data%2Dheavy%20applications. ) 26 | - [Idempotence](https://blog.dreamfactory.com/what-is-idempotency/) 27 | - [Consistent Hasing](https://www.toptal.com/big-data/consistent-hashing) 28 | - [Reverse Proxy](https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/#:~:text=A%20reverse%20proxy%20is%20a,security%2C%20performance%2C%20and%20reliability.) 29 | - [API Design](https://abdulrwahab.medium.com/api-architecture-best-practices-for-designing-rest-apis-bf907025f5f) 30 | - [WebSockets](https://www.pubnub.com/guides/websockets/) 31 | 32 | ### [System Design Interview Template](https://leetcode.com/discuss/career/229177/my-system-design-template) 33 | 34 | ## Must-Do Problems 35 | 36 | ### Easy 37 | - [Design TinyURL](https://leetcode.com/discuss/interview-question/system-design/124658/Design-URL-Shortening-service-like-TinyURL) 38 | - [Design Distributed Job Scheduler](https://leetcode.com/discuss/general-discussion/1082786/System-Design%3A-Designing-a-distributed-Job-Scheduler-or-Many-interesting-concepts-to-learn) 39 | - [Design Yelp](https://www.youtube.com/watch?v=M4lR_Va97cQ) 40 | - [Design Parking Garage](https://www.youtube.com/watch?v=NtMvNh0WFVM) 41 | - [Design Mint](https://liuzhenglaichn.gitbook.io/system-design/mint/design-mint) 42 | - [Design Distributed Key-Value Store](https://www.youtube.com/watch?v=rnZmdmlR-2M) 43 | 44 | ### Medium 45 | - [Design YouTube](https://leetcode.com/discuss/interview-question/system-design/733520/Design-YouTube-Very-detailed-design-with-diagrams) 46 | - [Design TikTok](https://www.youtube.com/watch?v=Z-0g_aJL5Fw) 47 | - [Design Spotify](https://www.youtube.com/watch?v=_K-eupuDVEc&t=239s) 48 | - [Design Facebook](https://leetcode.com/discuss/interview-question/system-design/719253/Design-Facebook-%3A-System-Design-Interview) 49 | - [Design Notification Service](https://www.youtube.com/watch?v=bBTPZ9NdSk8) 50 | - [Design Twitter](https://www.youtube.com/watch?v=o5n85GRKuzk&t=13s) 51 | - [Design Dropbox](https://www.youtube.com/watch?v=jLM1nGgsT-I) 52 | - [Design Distributed Cache](https://www.youtube.com/watch?v=iuqZvajTOyA) 53 | - [Design Google Search](https://www.youtube.com/watch?v=0LTXCcVRQi0) 54 | 55 | ### Hard 56 | - [Design Uber](https://www.youtube.com/watch?v=R_agd5qZ26Y) 57 | - [Design Google Maps](https://www.youtube.com/watch?v=jk3yvVfNvds) 58 | - [Design Doordash](https://www.youtube.com/watch?v=iRhSAR3ldTw) 59 | - [Design Distributed Counter](https://systemdesign.one/consistency-patterns/) 60 | - [Design Rate Limiter](https://www.youtube.com/watch?v=FU4WlwfS3G0) 61 | - [Design Distributed Message Queue](https://www.youtube.com/watch?v=iJLL-KPqBpM) 62 | - [Design Slack](https://systemdesign.one/slack-architecture/) 63 | 64 | ## Courses 65 | - [Grokking the System Design Inteview](https://www.designgurus.io/course/grokking-the-system-design-interview) 66 | - [ByteByteGo: Ace Your System Design Interview](https://bytebytego.com/) 67 | 68 | ## Books 69 | - [Designined Data-Intensive Applications](https://github.com/Nitin96Bisht/System-Design/blob/master/Designing%20Data%20Intensive%20Applications.pdf) 70 | - [System Design Interview Volume 1](https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF) 71 | - [System Design Interview Volume 2](https://github.com/Nitin96Bisht/System-Design/blob/master/System%20Design%20Interview%20An%20Insider%E2%80%99s%20Guide%20by%20Alex%20Yu.pdf) 72 | 73 | ## Must-Watch Youtube Videos 74 | - [20 System Design Concepts Explained in 10 minutes](https://www.youtube.com/watch?v=i53Gi_K3o7I&t=60s) 75 | - [System Design for Beginners Course](https://www.youtube.com/watch?v=m8Icp_Cid5o) 76 | - [Why is Kafka Fast?](https://www.youtube.com/watch?v=UNUz1-msbOM) 77 | - [System Design Interview: A Step-By-Step Guide](https://www.youtube.com/watch?v=i7twT3x5yv8) 78 | 79 | ## Best Engineering Newsletters 80 | - [The Developing Dev](https://www.developing.dev/) by Ryan Peterman 81 | - [ByteByteGo](https://blog.bytebytego.com/) by Alex Xu 82 | - [System Design Newsletter](https://systemdesign.one/) by Neo Kim 83 | - [Byte Sized Design](https://bytesizeddesign.substack.com/) by Alex Nguyen 84 | 85 | ## Top Tech Engineering Blogs 86 | - [How OpenAI Scales Kubernetes](https://openai.com/research/scaling-kubernetes-to-7500-nodes) 87 | - [How Stripe migrated a million lines of code](https://stripe.com/blog/migrating-to-typescript) 88 | - [Sharding & IDs at Instagram](https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c) 89 | - [Debugging with a Netflix Engineer](https://netflixtechblog.com/life-of-a-netflix-partner-engineer-the-case-of-extra-40-ms-b4c2dd278513) 90 | - [Sharding Pinterest: How to scale MySQL](https://medium.com/pinterest-engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f) 91 | - [How Instagram suggests new content](https://engineering.fb.com/2020/12/10/web/how-instagram-suggests-new-content/) 92 | - [How Figma Scaled to Multiple Databases](https://www.figma.com/blog/how-figma-scaled-to-multiple-databases/) 93 | - [Finding Kafka's limit at Dropbox](https://dropbox.tech/infrastructure/finding-kafkas-throughput-limit-in-dropbox-infrastructure) 94 | 95 | Your contributions are appreciated! 96 | --------------------------------------------------------------------------------