Senior Track Roadmap

System design strategy

This course covers how to structure software so it keeps working as users, data and failures grow. It starts with the trade-off mindset and functional versus non-functional requirements. It then moves to back-of-envelope estimation and SLIs, SLOs and SLAs. It walks through each layer of a Rails stack, from DNS and Kamal Proxy to Puma, PostgreSQL, caching and Solid Queue. Later lessons cover data modeling, scaling strategies, reliability patterns such as health checks and circuit breakers, and a five-step framework for system design interviews.

What you'll learn

  • ✓Weighing trade-offs such as consistency versus availability and latency versus throughput
  • ✓Estimating users, requests per second, storage and bandwidth before designing
  • ✓The role of each layer in a Rails architecture, from DNS to background jobs
  • ✓Choosing between relational and document storage, JSONB, normalization and indexes
  • ✓Vertical and horizontal scaling, PgBouncer, read replicas and caching
  • ✓Reliability patterns: redundancy, health checks, graceful degradation, circuit breakers and timeouts
Free preview · Lesson 1 8 min read

What is system design?

Every developer can build an application that works on their laptop. You type bin/rails server, open localhost:3000, and everything runs. The database responds in milliseconds. There's one user: you. Nothing breaks.

Read the full lesson free →

Curriculum

7 lessons
Type to start searching...