Skip to content

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Latest commit

 

History

20 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Open Source System Design Course

A comprehensive, free system design course to help you ace Big Tech interviews at companies like Google, Meta, Amazon, Apple, Netflix, and Microsoft.

Why This Course?

System design interviews are a critical part of senior engineering interviews. This course provides:

  • Structured learning path from fundamentals to advanced designs
  • Real interview questions with detailed solutions
  • Trade-off discussions that interviewers look for
  • Back-of-envelope calculations with practical examples
  • Two learning modes - detailed learning and quick revision
  • Open source - contribute and learn together

Choose Your Path

Version Best For Description
Detailed Learning First-time learners, deep understanding Comprehensive explanations with real-world context, diagrams, code examples, and thorough coverage
Quick Revision Interview prep, refresher Condensed materials for rapid review, key points, cheat sheets

Course Content

Fundamentals

Internet basics, client-server architecture, networking, OS concepts

Core Concepts

Scalability, availability, consistency, CAP theorem, partitioning, replication, consensus

Building Blocks

Load balancers, CDN, databases, caching, message queues, blob storage, search engines

Design Patterns

Microservices, event-driven, CQRS, saga, circuit breaker, sidecar

System Designs (23 Complete Solutions)

  • Beginner: URL Shortener, Pastebin, Rate Limiter, Key-Value Store
  • Intermediate: Twitter, Instagram, WhatsApp, Notifications, News Feed, Typeahead, Web Crawler
  • Advanced: YouTube, Uber, Google Maps, Dropbox, Distributed Cache/Queue, Payment System, Hotel Booking, Search Engine, Ad Aggregator, Task Scheduler, Stock Exchange

Interview Strategy

Framework, requirements gathering, estimation, high-level design, deep dives, trade-offs

How to Use This Course

  1. Complete beginners: Start with Detailed Learning Module 1
  2. Some experience: Review detailed Core Concepts, then practice system designs
  3. Interview in 1-2 weeks: Use Detailed Learning for weak areas
  4. Interview in 1-2 days: Use Quick Revision for rapid review

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

License

This project is licensed under the MIT License - see LICENSE for details.

About

No description, website, or topics provided.

Resources

Contributing

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors