Week 19: System Design for SRE
Theme: Master system design interviews for SRE/platform engineering roles.
Learning Objectives
- Design large-scale distributed systems (with focus on reliability)
- Apply SRE principles in system design discussions (SLOs, redundancy, graceful degradation)
- Practice whiteboarding system designs in 45-minute sessions
- Prepare for "design an observability platform" and "design a CI/CD pipeline" questions
Reading Materials
- System Design Interview (Alex Xu)
- Designing Data-Intensive Applications (Martin Kleppmann) — Chapters 1, 6, 8, 9
- System Design Primer (GitHub)
- SRE Interview Questions (GitHub)
- Google SRE Book (re-read relevant chapters)
- ByteByteGo System Design Videos
Finger Exercises (choose 3)
- Design a monitoring and alerting system for 10,000 microservices. Include data ingestion, storage, query, alert routing.
- Design a CI/CD pipeline for a monorepo with 50 microservices. Include build optimization, dependency caching, deployment ordering.
- Design a highly available Kafka platform for real-time event processing. Include partitioning strategy, consumer group design, disaster recovery.
- Design a multi-region PostgreSQL deployment with < 1 second RPO. Include synchronous replication, failover, read replicas.
- Design an incident management platform: alert aggregation, on-call scheduling, escalation, postmortem automation.
Mock Interview Sessions (simulate with a friend or record yourself)
- Session 1: "Design a real-time dashboard system for 100K QPS metrics" (45 min)
- Session 2: "Design a GitOps deployment system for 200 microservices across 5 environments" (45 min)
- Session 3: "Design a secrets management platform for 1000 applications" (45 min)
Time Budget
| Activity | Time |
|---|---|
| Reading & review | 2 hrs |
| Finger exercises | 2 hrs |
| Mock interviews | 2-3 hrs |
| Total | 6-7 hrs |