On top of unit tests, functional tests, integration tests, and static analysis, you need a linter. Tom Scott illustrates with the story of a date string format error.