Testing
Principles around testing software well.
Why We Test covers the purpose of testing: enabling fearless refactoring, documenting behaviour, and understanding what tests can and cannot tell you.
Test Fundamentals covers the building blocks: how a test is structured, the different types of tests and when to use each, and what separates a useful test from one that wastes time.
Writing Good Tests gets into practical techniques: testing behaviour rather than implementation, using test doubles effectively, and writing tests that are readable and maintainable.
Writing Testable Code looks at the other side of the coin: how the way you structure your code determines how easily you can test it. It covers dependency injection, dependency rejection, and the functional core/imperative shell pattern.