Skip to content
Back to courses
ArchitectureIntermediate

System Design Fundamentals

Learn how to design scalable, reliable, and maintainable systems — from single servers to distributed architectures used by millions of users.

This free, self-paced course is designed for intermediate learners in architecture. Work through the lessons in order, use the objectives below as a checklist, and practice against real systems rather than memorizing slide labels. Estimated time: ~5 hours across 12 lessons.

~5 hours12 lessons

Prerequisites

  • Comfortable with HTTP APIs and at least one backend datastore
  • Familiarity with basic concurrency and failure modes (timeouts, retries)

Course Curriculum

Each lesson is a focused read. Open one, complete any self-checks or exercises, then mark progress in this browser before moving on.

Related articles

Pair this course with deeper guides on the same topic. Articles include diagrams, failure modes, and decision rules.

See the full Microservices & Distributed Systems topic hub.

Start Learning
Begin with the first lesson and progress at your own pace.
Your progress0%
x

Progress is saved in this browser.

Start Course