intermediate20 hours33 sections
A comprehensive guide to designing scalable, reliable, and maintainable distributed systems. Master the concepts, trade-offs, and architectures required to ace system design interviews and build enterprise-grade applications.
What you'll learn
- Understand key system design concepts: availability, reliability, scalability, and latency.
- Master the components of modern architectures: load balancers, caches, databases, and message queues.
- Learn database design, sharding, replication, and the CAP theorem.
- Design and analyze real-world systems (e.g., URL shortener, chat application, news feed).
- Evaluate trade-offs between different architectural choices.
Prerequisites
- Basic understanding of programming and software development.
- Familiarity with standard web development concepts (HTTP, APIs).
- Basic knowledge of databases.
Course outline
1. Fundamentals of System Design
2. Networking and Communication
3. Scaling and Load Balancing
4. Data Management: Databases & Storage
5. Caching Strategies
6. Messaging, Queues, and Event Streaming
7. Microservices & Distributed Architecture
8. Real-World System Design Case Studies
