Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/armankhondker/best-system-design-resources

This repository contains System Design Interview resources to design large-scale distributed systems.
https://github.com/armankhondker/best-system-design-resources

computer-science distributed-systems fault-tolerant-system high-level-design interview-questions system-design system-design-interview

Last synced: about 1 month ago
JSON representation

This repository contains System Design Interview resources to design large-scale distributed systems.

Awesome Lists containing this project

README

        

# Best System Design Resources

This repository contains the best resources for System Design interview prep.

## System Design Fundamentals
- [Latency vs Throughput](https://aws.amazon.com/compare/the-difference-between-throughput-and-latency/)
- [SQL vs NoSQL](https://www.mongodb.com/nosql-explained/nosql-vs-sql)
- [CAP Theorom](https://www.scylladb.com/glossary/cap-theorem/)
- [Load Balancing](https://aws.amazon.com/what-is/load-balancing/)
- [Horizontal vs Vertical Scaling](https://www.nops.io/blog/horizontal-vs-vertical-scaling/#:~:text=The%20primary%20difference%20between%20horizontal,.)
- [Microservices](https://microservices.io/)
- [Database Sharding](https://www.mongodb.com/features/database-sharding-explained#)
- [Database Replication](https://redis.com/blog/what-is-data-replication/)
- [SQL Tuning](https://docs.oracle.com/en/database/oracle/oracle-database/23/tgsql/introduction-to-sql-tuning.html#GUID-B653E5F3-F078-4BBC-9516-B892960046A2)
- [Consistency Patterns](https://systemdesign.one/consistency-patterns/)
- [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. )
- [Message Queues](https://www.educative.io/courses/grokking-modern-system-design-interview-for-engineers-managers/system-design-the-distributed-messaging-queue)
- [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.)
- [Domain Name System (DNS)](https://www.cloudflare.com/learning/dns/what-is-dns/)
- [Cache](https://aws.amazon.com/caching/)
- [ACID Transactions](https://www.databricks.com/glossary/acid-transactions#:~:text=ACID%20is%20an%20acronym%20that,operations%20are%20called%20transactional%20systems.)
- [Database Indexing](https://www.progress.com/tutorials/odbc/using-indexes)
- [API Gateway](https://www.nginx.com/learn/api-gateway/#:~:text=An%20API%20gateway%20is%20a,%2Dcloud%2C%20and%20hybrid%20environments.)
- [Fault Tolerance](https://www.cockroachlabs.com/blog/what-is-fault-tolerance/)
- [Content Delivery Network](https://aws.amazon.com/what-is/cdn/#:~:text=A%20content%20delivery%20network%20(CDN,loading%20for%20data%2Dheavy%20applications. )
- [Idempotence](https://blog.dreamfactory.com/what-is-idempotency/)
- [Consistent Hasing](https://www.toptal.com/big-data/consistent-hashing)
- [Reverse Proxy](https://www.cloudflare.com/learning/cdn/glossary/reverse-proxy/#:~:text=A%20reverse%20proxy%20is%20a,security%2C%20performance%2C%20and%20reliability.)
- [API Design](https://abdulrwahab.medium.com/api-architecture-best-practices-for-designing-rest-apis-bf907025f5f)
- [WebSockets](https://www.pubnub.com/guides/websockets/)

### [System Design Interview Template](https://leetcode.com/discuss/career/229177/my-system-design-template)

## Must-Do Problems

### Easy
- [Design TinyURL](https://leetcode.com/discuss/interview-question/system-design/124658/Design-URL-Shortening-service-like-TinyURL)
- [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)
- [Design Yelp](https://www.youtube.com/watch?v=M4lR_Va97cQ)
- [Design Parking Garage](https://www.youtube.com/watch?v=NtMvNh0WFVM)
- [Design Mint](https://liuzhenglaichn.gitbook.io/system-design/mint/design-mint)
- [Design Distributed Key-Value Store](https://www.youtube.com/watch?v=rnZmdmlR-2M)

### Medium
- [Design YouTube](https://leetcode.com/discuss/interview-question/system-design/733520/Design-YouTube-Very-detailed-design-with-diagrams)
- [Design TikTok](https://www.youtube.com/watch?v=Z-0g_aJL5Fw)
- [Design Spotify](https://www.youtube.com/watch?v=_K-eupuDVEc&t=239s)
- [Design Facebook](https://leetcode.com/discuss/interview-question/system-design/719253/Design-Facebook-%3A-System-Design-Interview)
- [Design Notification Service](https://www.youtube.com/watch?v=bBTPZ9NdSk8)
- [Design Twitter](https://www.youtube.com/watch?v=o5n85GRKuzk&t=13s)
- [Design Dropbox](https://www.youtube.com/watch?v=jLM1nGgsT-I)
- [Design Distributed Cache](https://www.youtube.com/watch?v=iuqZvajTOyA)
- [Design Google Search](https://www.youtube.com/watch?v=0LTXCcVRQi0)

### Hard
- [Design Uber](https://www.youtube.com/watch?v=R_agd5qZ26Y)
- [Design Google Maps](https://www.youtube.com/watch?v=jk3yvVfNvds)
- [Design Doordash](https://www.youtube.com/watch?v=iRhSAR3ldTw)
- [Design Distributed Counter](https://systemdesign.one/consistency-patterns/)
- [Design Rate Limiter](https://www.youtube.com/watch?v=FU4WlwfS3G0)
- [Design Distributed Message Queue](https://www.youtube.com/watch?v=iJLL-KPqBpM)
- [Design Slack](https://systemdesign.one/slack-architecture/)

## Courses
- [Grokking the System Design Inteview](https://www.designgurus.io/course/grokking-the-system-design-interview)
- [ByteByteGo: Ace Your System Design Interview](https://bytebytego.com/)

## Books
- [Designined Data-Intensive Applications](https://github.com/Nitin96Bisht/System-Design/blob/master/Designing%20Data%20Intensive%20Applications.pdf)
- [System Design Interview Volume 1](https://www.amazon.com/System-Design-Interview-insiders-Second/dp/B08CMF2CQF)
- [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)

## Must-Watch Youtube Videos
- [20 System Design Concepts Explained in 10 minutes](https://www.youtube.com/watch?v=i53Gi_K3o7I&t=60s)
- [System Design for Beginners Course](https://www.youtube.com/watch?v=m8Icp_Cid5o)
- [Why is Kafka Fast?](https://www.youtube.com/watch?v=UNUz1-msbOM)
- [System Design Interview: A Step-By-Step Guide](https://www.youtube.com/watch?v=i7twT3x5yv8)

## Best Engineering Newsletters
- [The Developing Dev](https://www.developing.dev/) by Ryan Peterman
- [ByteByteGo](https://blog.bytebytego.com/) by Alex Xu
- [System Design Newsletter](https://systemdesign.one/) by Neo Kim
- [Byte Sized Design](https://bytesizeddesign.substack.com/) by Alex Nguyen

## Top Tech Engineering Blogs
- [How OpenAI Scales Kubernetes](https://openai.com/research/scaling-kubernetes-to-7500-nodes)
- [How Stripe migrated a million lines of code](https://stripe.com/blog/migrating-to-typescript)
- [Sharding & IDs at Instagram](https://instagram-engineering.com/sharding-ids-at-instagram-1cf5a71e5a5c)
- [Debugging with a Netflix Engineer](https://netflixtechblog.com/life-of-a-netflix-partner-engineer-the-case-of-extra-40-ms-b4c2dd278513)
- [Sharding Pinterest: How to scale MySQL](https://medium.com/pinterest-engineering/sharding-pinterest-how-we-scaled-our-mysql-fleet-3f341e96ca6f)
- [How Instagram suggests new content](https://engineering.fb.com/2020/12/10/web/how-instagram-suggests-new-content/)
- [How Figma Scaled to Multiple Databases](https://www.figma.com/blog/how-figma-scaled-to-multiple-databases/)
- [Finding Kafka's limit at Dropbox](https://dropbox.tech/infrastructure/finding-kafkas-throughput-limit-in-dropbox-infrastructure)

Your contributions are appreciated!