top of page

Fake, Don't Mock

Fakes are complete implementations of an API used to replace IO-bound adapters with memory-bound doubles to facilitate Acceptance Testing

Learning Tests: better than benzos

Learning Tests are an easy and useful methodology for integration with new and unknown APIs, reducing stress and improving feedback times.

Chronomatic: my side-project story

How I used React with TypeScript and Firebase to build my own client management system, using TDD and Acceptance Testing.

Beautiful Object Builders in TypeScript

Fixture test data create stale and outdated data, and make tests unreliable. Object Builders are a better way, here's how to use them.

dotenv considered harmful

Relying on .env files couples your codebase to env vars, making your software harder to change. Here's how to decouple them.

The Anatomy Of A Rotten Codebase

Code rots because we build too many features, too fast. Emergent Design is an effective way to fight code rot and make change easier.

Your Software as a Kitchen

When there are too many dirty pots and plates in the sink, it's impossible to clean them. It's the same with software and technical debt.

Permanent Prototypes

Prototypes are a lie; when it's good enough for production, it *becomes* production. Here's how to make them easily maintainable.

It's all about the maintenance, dummy

Writing features we might need in the future is not only a waste of time, it makes your software harder to maintain.

Blog: Blog2
bottom of page