DEV Community

mseada
mseada

Posted on

System design learning path: from fundamentals to WhatsApp, YouTube and Stripe

An eight-week path that teaches software engineers to design large systems: core building blocks, three architecture styles, then full designs of WhatsApp, YouTube and Stripe, with a quiz after every module.

Goal: every engineer can take a vague product idea, ask the right questions, estimate the load, sketch an architecture and defend its trade-offs, using one repeatable method.

Audience: backend, full-stack and mobile engineers, tech leads and architects. Basic knowledge of web APIs and databases is assumed.

Format: 8 modules, about 3 hours per week. Each module has a short talk, self-study reading, one design exercise and a 5-question quiz (pass mark 4 of 5). The three case studies each include an architecture diagram and worked numbers.

The design method used in every module

  1. Clarify requirements, both functional and non-functional (scale, latency, availability, consistency).
  2. Estimate load and storage with back-of-envelope math.
  3. Define the API and the core data model.
  4. Draw the high-level architecture.
  5. Deep dive on the hardest two or three parts.
  6. Name the trade-offs, failure modes and what you would monitor.

Levels

Level Requirements
Foundation Quizzes 1 to 4 passed
Practitioner Foundation, Quizzes 5 to 7 passed, and the final assessment at 9 of 12 or more
Architect Practitioner, final assessment at 11 of 12 or more, and the capstone at 70 points or more

Outcomes by the end

  • Size a system from users and usage, and spot the bottleneck before building.
  • Choose between monolith, microservices and event-driven styles, and say why.
  • Reason about replication, partitioning, transactions and consistency.
  • Design a chat system, a video platform and a payment system, including failure handling.

The series

Part Topic
1 System design fundamentals: estimate, scale and trade off
2 Microservices: boundaries, sagas and failure
3 Event-driven architecture: events, outbox and idempotency
4 Designing data-intensive applications: replication, partitioning, quorums
5 System design case study: WhatsApp
6 System design case study: YouTube
7 System design case study: Stripe and payment systems
8 Capstone and final assessment

Each post ends with a quiz. Answers are hidden in a collapsible block, so try the questions first.

Top comments (0)