- Version Control as a Graph of Commitsages 18 to 19 · on the way
- Branching, Merging and Resolving a Conflictages 18 to 19 · on the way
- Code Review: Reading a Change You Did Not Writeages 18 to 20 · on the way
- Requirements: Turning a Wish into a Testable Statementages 19 to 20 · on the way
- Interfaces, Coupling and What a Module Promisesages 19 to 20 · on the way
- Design Patterns: Naming a Solution That Keeps Recurringages 19 to 21 · on the way
- Refactoring: Changing Structure Without Changing Behaviourages 19 to 21 · on the way
- Test Doubles and Testing at a Boundaryages 20 to 21 · on the way
- Test Strategy: Unit, Integration and End to Endages 20 to 21 · on the way
- Property-Based Testingages 20 to 22 · on the way
- Continuous Integration and the Build Pipelineages 20 to 22 · on the way
- Software Architecture: Layers, Services and Their Trade-offsages 21 to 22 · on the way
- Technical Debt and the Cost of the Next Changeages 21 to 22 · on the way
- Working in a Team: Issues, Estimates and Iterationsages 21 to 22 · on the way
- Reading a Systems or Machine-Learning Paperages 22 to 23 · on the way
- Specifying Correctness: Safety, Liveness and Invariantsages 22 to 24 · on the way
- Model Checking and the State-Space Explosionages 23 to 24 · on the way
- Hoare Logic and Proving a Program Meets Its Specificationages 23 to 24 · on the way
- Reproducibility: Seeds, Environments and the Ablationages 23 to 24 · on the way
- Scoping and Writing a Thesis-Scale Projectages 23 to 24 · on the way
- Dependencies, Licences and the Supply Chainages 21 to 22 · on the way