Building software is an inherently creative endeavor. We never build the same thing twice — if we wanted the same thing we’d just copy-paste it! We’re always solving a new problem, which brings with it new unknowns. We also work in near-constant uncertainty and ambiguity. Priorities shift, requirements change, and our understanding of what’s needed to meet those requirements evolves over time.

The best way to achieve success in the face of all this uncertainty and change is to set up rapid feedback loops. In the past I’ve likened this situation to racing in a rally car — you need…


At Earnest we recently open-sourced autopublish. It is a small, simple tool. It publishes a local npm module to your npm registry of choice, but only when the module’s current version doesn’t already exist in the registry.

Autopublish is primarily intended for use within a Continuous Delivery pipeline. With autopublish it becomes very easy to set up your CI/CD system to automatically publish a module to the registry after it has passed automated quality checks, but only if a human has also decided to bump the version.

One of the main motivations for creating autopublish was to provide out-of-the-box support…

Pete Hodgson

Independent consultant helping engineering teams tackle thorny problems.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store