All courses
Computer Science

System Design and Scalable Application Architecture

Curated and verified byRoger Chen, Software Engineer, Meta
Study time: 11 hours
LanguagesEnglish · 简体中文 · Español
$10.00Lifetime access
Certificate of completionverifiable · shareable
Preview

You can build features. The blank page is the architecture: someone says "we need a real-time activity feed," or "support fifty times the users by next quarter," or an interviewer says "design a ride-hailing backend" — and the hard part isn't writing code, it's deciding what the pieces are and why. This course is about that decision. It gives you a method you can run on anything: pull out the real requirements, size them with back-of-the-envelope math, split the system into services with boundaries that hold, model the data and trace how it actually flows, then reach into a toolbox of reusable building blocks — load balancers, caches, replicas, shards, queues, consistent hashing, quorums, event streams — and place each one for a reason you can defend. You'll learn the trade-offs that decide real systems: SQL versus NoSQL by access pattern, fan-out on write versus on read, strong versus eventual consistency, why a partition forces you to choose, why "exactly-once" is really at-least-once plus idempotency. Then you'll compose those blocks into the architectures every team eventually builds — a read-heavy lookup service, a social feed, real-time chat, a media platform, a streaming aggregator, a booking-and-payments system that can't double-charge, a geo-proximity matcher. Because shipping isn't the end, you'll also design for failure, make a system observable with real SLOs, weigh security, multi-tenancy, and cost, and plan how an architecture migrates and grows instead of being rewritten. And because a design nobody understands is worthless, you'll finish by communicating it — clean diagrams, architecture decision records, and presenting under the clock, whether the audience is your team or an interview panel. Whether you're leading a team, founding a company, or preparing for system-design interviews, the underlying skill is the same: turning a vague requirement into an architecture you can stand behind.

Lessons

About the course creator

Roger Chen
Roger Chen
Software Engineer, Meta

For Roger, the interesting part of artificial intelligence begins after the experiment succeeds. His work has involved turning research prototypes into dependable software: packaging language and vision models behind production APIs, building distributed data and feature pipelines, automating training and deployment, and monitoring accuracy, latency, drift, and infrastructure cost once systems are live. He has contributed to recommendation engines, document-understanding tools, forecasting services, and generative-AI applications using Python, C++, PyTorch, cloud platforms, and containerized infrastructure. Equally comfortable profiling an inference bottleneck, reviewing model behavior with data scientists, or explaining tradeoffs to a product team, Julian specializes in closing the distance between a promising model and a product people can actually rely on.

Reviews (16)

4.1 out of 5
  • Christopher

    the information in this course is all the gap between a senior and junior.

  • Tu

    as a vibe coder, I found this course hard to follow. could you make a course that's more suitable for non-technical people like me?

  • Mike

    Since writing code is no longer a craft, knowing the system design becomes the most important skill to tell apart from a vibe coder. Please make sure you grasp at least 80% of the concepts in the course

  • Jeffery

    nice organization of system design! thanks

  • rugged_grasshopper

    Too basic, expected more deep design.