{# Course schema: this is what turns a blue link into a result that shows the provider and the level. Only facts that are actually true go in here. #}
ExpoCoder Sign in Start free

System Design

Design software that scales to millions of users: requirements and capacity, load balancing, caching, databases and replication, sharding, queues, the CAP theorem, reliability, and real designs like a URL shortener. The senior-engineer and interview skill.

16 lessons about 5 hours Hard
Learn it by writing it.

Every lesson runs real code in your browser, checked the moment you submit. No installing anything, no setup, no waiting.

Start System Design free

What this course covers

  1. What Is System Design?
  2. Requirements and Scale
  3. Clients, Servers and the Request Path
  4. APIs and REST
  5. Scaling Up vs Scaling Out
  6. Load Balancing: Sharing the Work
  7. Caching: Speed by Remembering
  8. Rate Limiting
  9. Databases: SQL, NoSQL and Replication
  10. Sharding: Splitting the Data
  11. Queues and Async: Do It Later
  12. The CAP Theorem: Pick Your Tradeoff
  13. Reliability: No Single Point of Failure
  14. Authentication and Sessions
  15. Observability
  16. Capstone: Design a URL Shortener

Other courses

Computational Thinking

Learn to think like a problem-solver before you write a single line of code. Break big …

Basic Python

Your first Python course, no experience needed. Learn variables, loops, functions, and …

Intermediate Python

Level up your Python with comprehensions, lambdas, error handling, files, modules, and …

Object-Oriented Programming

Master OOP in Python: classes, objects, inheritance, polymorphism, encapsulation, abstr…

Advanced Python

Go deeper in Python: decorators, generators, type hints, regex, JSON, SQLite, testing, …

Data Structures & Algorithms

Core CS: arrays, lists, stacks, queues, hash tables, trees, graphs, sorting, searching,…

Games with Pygame

Build your own 2D games from scratch: the game loop, sprites, movement, collisions, and…

Java

Learn Java from zero, with no programming background needed. Write your first program, …

C++

Learn C++ from zero, with no programming background needed. Start with your first progr…

C

Learn C from zero, with no programming background needed. The language that Unix, Linux…

JavaScript

Learn JavaScript from scratch: variables, types, loops, functions, arrays and objects, …

Web Frontend

Build for the browser: structure pages with HTML, style them with CSS, then use live AP…

See all courses