Tooling grew ten times faster than the book
Just the facts, again.
In March 2014 I wrote a post here called "When is the book coming out?" The answer was "I don't know". That book was about the Erlang runtime system, and the precise answer turned out to be "in eleven years". The BEAM Book came out last year. I mention this so you can calibrate anything I say below about schedules.
This time I have written a thriller. It is called The Chain, it is about a programmer who makes some poor career choices, and it comes out on 9 September. You can read the first chapter at readthechain.com. This post is not about the book. This post is about what I did instead of writing it.
I keep the manuscript in git, because I am a programmer and I do not know how else to keep things. Git remembers everything, which is unfortunate, because last week I asked it how the book had evolved and it told me.
Here are the facts.
The first draft took thirteen days. From 13 August 2025 to 26 August 2025 the repository went from seven chapters to twenty-five, and the commit messages for that fortnight all say "Writing session." because I had set up a cron job to commit whatever I had typed. Sixty-nine thousand words. I remember it as a good couple of weeks.
Today, a year later, the book is eighty-four thousand words. So in twelve months of hard work I have added fifteen thousand words, which is roughly a long blog post per month. In my defence, git also shows forty-six thousand lines removed and fifty-two thousand put back, which is enough churn to replace most of the original manuscript, and the ending several times over. I am not sure this helps my case.
Here is the number I actually wanted to tell you about. In September 2025 the repository had 83 files. It now has 1,507. Forty-two of them are the book.
The other 1,465 are tools.
There is a backlog system with four hundred and seventy tickets. There is a style bible, a story bible, a world bible, a character bible and an editorial bible, and a README explaining which bible wins when they disagree. There is a Python package that computes readability, sentence cadence, figuration density and "voice fingerprint" per chapter, and writes a dated run directory so I can compare this Tuesday's prose to last Tuesday's. There is a reader model that reads the book chapter by chapter and carries eleven affect variables forward to tell me how a first-time reader feels. There is a character simulator whose data file is the single largest commit in the history, 33,000 lines, which is a third again as long as the novel it simulates.
In August 2025, 97 percent of my commits touched the manuscript. This August it is 45 percent. The trend line is clear. If I extrapolate it, I stop writing the book entirely sometime in early 2027 and become a full-time maintainer of software for a novel that is already published. Given the BEAM Book took eleven years, this would still count as progress.
My favourite artefact is a document called toolkit_review.md. I wrote it in July after I had spent a good while worrying that the book was emotionally flat, because the sentiment analysis said so. Whole-book sentiment variance: 0.0013. A flatline. The review concludes, after three separate research passes, that the tool measures valence, the book deliberately withholds named emotion, and so the instrument was blind. Quote: "That is the tool being blind, not the book being flat." I had built a thermometer and then spent a week worried the patient was dead because it read room temperature.
I would like to say I learned from this. What I actually did was build a second thermometer that measures arousal instead. It works better. That is not the point.
I should be fair to the tools. Two human editors and a copy editor found the things that mattered, and every large change in the history traces back to one of them and never to a script. But the hygiene scripts did catch that I had used the word "elegant" twenty-six times and "criminal" one hundred and seventy-nine times, and a book about criminals should probably not need to say so quite that often. So the tools earned their keep. They just also took far more of my attention than the book did, and they do not appear on the cover.
The honest lesson, if there is one, is that a programmer given a writing problem will solve the programming problem first, and there is always a programming problem. Twelve years ago I quit my job to write a book about a virtual machine, and the first thing I published was a blog post about how I hate opinions. The pattern holds. Give me a manuscript and I will give you a build system.
Anyway. The book is done. It is called The Chain, it is out on 9 September, and the tooling is not included.
Sorry, this post was mostly about a Makefile. I'll try to do better next time.