Course
Software Engineering Practice: Code That Lasts
The habits that separate shipping code from engineering software: tests as a design tool, debugging as a process not a panic, refactoring in safe steps, and code review that actually makes code better.
Testing as a Design Tool
Tests that earn their keep — the pyramid done pragmatically, and what to actually test.
Debugging & Refactoring
A process for 'it doesn't work', and small-step refactoring that never breaks the build.
- 01Debug Like a System, Not a HuntReproduce, isolate, hypothesize, verify — the four steps that turn 'it doesn't work' into a file and line number.20mOpen
- 02Refactor in Steps So Small You Can't FailRename before you rewrite, extract before you restructure, and why tests are the safety net that makes it possible.20mMembers
Review & Delivery
Code review that improves code, and shipping changes safely.
- 01Code Review That Actually Improves CodeWhat to comment on, what to skip, and the one question that separates useful review from noise.18mMembers
- 02Ship Small, Ship Often, Ship SafelyFeature flags, staged rollouts, and the deploy practices that make a bad release a non-event.18mMembers
- 03Readable Code Is a FeatureNaming, function length, and the 'explain it in one breath' test — the readability habits that compound.16mMembers
- 04Designing Interfaces: Contracts, Versioning, and Backwards CompatibilityEvery interface is a promise — function signatures, HTTP APIs, and events all follow the same rules of honest contracts.20mMembers
- 05Estimating and Slicing: How Seniors Make Work PredictableEstimates fail because of hidden work, not bad math — slice until the unknowns are visible, then estimate the visible.18mMembers