The Week-by-Week Syllabus
This structured path will take you through essential concepts and hands-on projects to solidify your system design skills.
Week 1: Microservices Architecture
What to learn: Understand microservices principles and design patterns; study tools like Spring Boot and Docker.
Why this comes before the next step: Mastering microservices is foundational as it influences design decisions for scalability and maintainability in complex systems.
Mini-project/Exercise: Build a simple e-commerce service split into several microservices, simulating product, order, and payment services.
Week 2: Event-Driven Architecture
What to learn: Explore event-driven architecture using Kafka and RabbitMQ for asynchronous communication.
Why this comes before the next step: Understanding event-driven systems is crucial for designing responsive applications, especially in microservices.
Mini-project/Exercise: Create a notification system that reacts to events from the e-commerce services developed in Week 1.
Week 3: Database Design Choices
What to learn: Study SQL vs NoSQL databases and when to use each type, focusing on PostgreSQL and MongoDB.
Why this comes before the next step: Database selection is a core component of system design, affecting scalability and performance.
Mini-project/Exercise: Refactor the e-commerce service to use both PostgreSQL for transactions and MongoDB for product catalog.
Week 4: High-Availability Systems
What to learn: Learn about designing fault-tolerant systems with AWS and Terraform.
Why this comes before the next step: High availability ensures your systems are resilient and can handle failures, a must-know for interviews.
Mini-project/Exercise: Deploy the e-commerce service to AWS with load balancers and auto-scaling groups.
Week 5: Performance Optimization
What to learn: Delve into caching strategies using Redis and performance testing tools.
Why this comes before the next step: Optimizing performance is critical for user experience and overall system efficiency, making it a frequent interview topic.
Mini-project/Exercise: Implement caching for frequently accessed data in your e-commerce application.
Week 6: Design Critiques and Presentation
What to learn: Focus on refining your design articulation skills and engaging in design critiques.
Why this comes before the next step: Effective communication of your designs is as important as the designs themselves in an interview scenario.
Mini-project/Exercise: Present your full application architecture to peers and receive feedback.