~3 sessions a week: read the lesson (~15 min) + run and change its section of perf/demo.py (~25 min). Tick lessons off — progress is saved in this browser.
Latency and percentiles, benchmarking, profiling. Lab: change the share of slow runners; drop fewer warm-up runs; profile with more laps.
Complexity, memory, caching. Lab: double n again; compare list and generator peaks; change the cache size and the miss cost.
I/O and N+1, concurrency and the GIL, queueing. Lab: grow the runner count; mix CPU and waiting; push utilisation towards 100%.
Query plans, web performance, load tests and budgets. Lab: add and drop indexes; slow the network; tighten a budget until it fails.
Next: the Scaling school adds machines when one is not enough, the Observability school measures it in production, and the School portal has the rest.