8-week plan to help you prepare for system design interviews.
Week 1οΈβ£
π§πΌπ½πΆπ°π: Scalability, API Gateway, Load Balancing, Caching, CAP/PACELC theorems, Bloom Filters.
Study the basics of scalability and load balancing, including horizontal and vertical scaling, load balancing algorithms, and caching strategies.
Week 2οΈβ£
π§πΌπ½πΆπ°π: Databases, Data Modeling, Partitioning,Β Sharding, Replication
Study different types of databases, including SQL and NoSQL, and their use cases. Learn about data indexing, sharding, and replication strategies.
Week 3οΈβ£
π§πΌπ½πΆπ°π: Networking, REST, gRPC, GraphQL, DNS, Proxies, Websockets, Long Poll.
Study the basics of computer networking and RESTful architecture, including the HTTP protocol, DNS, Proxies, and Websockets.
Week 4οΈβ£
π§πΌπ½πΆπ°π: Distributed Systems, Consistency Models, Quorum, Leader/Follower, Merkle Tree, Consistent Hashing.
Study the basics of distributed systems, consistency models, and how to ensure fault tolerance in distributed systems.
Week 5οΈβ£
π§πΌπ½πΆπ°π: APIs, Architectural Design Patterns, and Microservices.
Study common design patterns like Publisher-Subscriber, Sharding pattern, Circuit Breaker, and Static Content Hosting. Understand the pros and cons of microservices.
Week 6οΈβ£
π§πΌπ½πΆπ°π: System Design Practice and Interview Preparation.
Practice solving system design problems, both individually and in groups. Prepare for system design interview questions and scenarios.
Prepare for designing social media, Facebook Newsfeed, Instagram, Twitter Search, YouTube, Quora, and Stack Overflow.
Week 7οΈβ£
π§πΌπ½πΆπ°π: More System Design Practice and Interview Preparation
Practice solving system design problems: Designing Dropbox, Typeahead Suggestion, API Rate limiting. Messenger.
Week 8οΈβ£
π§πΌπ½πΆπ°π: More System Design Practice and Interview Preparation
Practice solving system design problems: Designing Web crawler, Yelp or proximity server, Uber, Ticketmaster.