During his Codecamp Romania 2025 Masterclass, J. B. Rainsberger answered some questions about software design.
Here are four lightning talks in which he addresses these topics:
- When not to do TDD and one surprising disadvantage for experienced TDD practitioners.
- How Client-First Design addresses one of the common shortcomings of naively allowing designs to evolve from the ground up.
- Adding safety to refactoring without assuming that adding tests is enough or indeed the best choice.
- Two kinds of refactoring activities and how to communicate the need for each of these to non-programmer members of your project community.
A passing test suite can be 100% green while production silently ships the wrong total on every checkout. This is why unit tests lie — and what senior engineers test instead: real integration, property-based testing, observability, and contracts.
247 tests passing in 800 milliseconds tells you almost nothing about whether the system actually works. A green unit test only confirms that one bolt, in isolation, is fine — while the engine is on fire. The moment you mock the database and stub the API, you stop testing your application and start testing your imagination of how those things behave. This video breaks down the three things seniors trust instead of the green bar, with real Python and TypeScript examples