29 March 2021

Up there with naming, caching, concurrency, and off by one errors, I think versioning and dependency management are two aspects of software development that is difficult.

Picking version numbers; ensuring that versions are correct; ensuring that artefacts are in sync across everyone in the team; designing a branching structure that is flexible enough to produce releases quickly, while sane enough to know which branch has what, and where new work should come from.

Coming from a place that offloaded a lot of this to build servers to one in which this is done manually is a bit of a shock to the system. It’s an excellent reminder on how much work and coordination it takes to get all of this correct.

Previous post
Project Update: Shelling Out To Git I’ve started working on a small Go tool to quickly add bookmarks to this site from the command line. This Blot.im site uses Git as the sync engine,
Next post
On Google and Winer's Rule One Here’s another blog post about Google, because, why not? It all started when I read a post from Dave Winer, in which he talks about a principal of