How I Over-Engineered My Book

Ben Balter wrote his book using Git, Markdown, and a CI pipeline, complete with a linter that fails the build if he implies he still works at GitHub. He built 30 custom validators, ran ~5,500 automated checks, and used LLM-based audits to catch duplicated ideas and false claims. The result: a 99,651-word book with 72 chapters, 103 manager callouts, and 102 IC callouts, all passing a strict quality gate.
I’d paraphrased myself too well for anything cheaper than an LLM to catch me.
- sinab
Thank you for the demo! I like the concept. However, I personally find that the writing style you've designed for reads very strongly as AI-generated. For example, opening a section with phrases like "Here's the irony: after automating everything up to this point," or "Turning emoji into images solved the missing-font problem and created a subtler one."
These are both strong tells of AI-generated prose, though I find it surprisingly difficult to articulate exactly why. It makes me wonder whether your style has evolved to sound more like AI-generated prose, or whether AI-generated prose has evolved to sound more like you!
- t-kalinowski
Seeing that list of tools you're using in automations, I'm guessing you'll enjoy this, as another tool to add to the pile: https://t-kalinowski.github.io/yamark/
(disclosure: I wrote it)
- hinkley
I saw a Bruce Eckel talk one time after Thinking in Java became a best seller.
I expected him to talk about Java, and lessons learned about it writing the book (he did not start nor end in Java and documented a number of programming languages.)
What we got instead was a rundown of how he 'overengineered' the book. He had interns solving a problem for him: How to make sure the published code examples actually run when transcribed into an editor.
They wrote a tool to mark up live code with extraction points to excerpt it automatically into his manuscript.
About five years later I worked at a F50 company with a bunch of contractors who were all Getting Shit Done and making some of the more bureaucratic org units around us a bit nervous. Someone thought they found a gotcha by complaining about how our developer documentation didn't meet the defined documentation standards the company had devised. They weren't wrong, but people used to the platform we were building on wouldn't have been stymied at all by what we gave them.
If we had done it the way they suggested, it would have added almost a week of my time to every release, and I was already struggling with delegating enough work to make me not the bottleneck. So that extra week would have taken our velocity down a notch and made us a bit more comparable to everyone else. It was a clever ploy, but Bruce saved me.
Instead of spending a slog every release on updating the docs, I found that Bruce's strategy had already been made in […]
- whiterook6
I love this! I'm writing short stories and I use Astro to build the site, I generate sharable qr codes and epubs for every story as well as the whole, and I use gh-pages to push to GitHub pages.
And I hear you about over-engineering. I feel like a Linux user--spending more time getting my laptop just right instead of using it. I have to remind myself that the point of it is the result, not the process.
- everybodyknows
I set out likewise to write a highly structured book with FOSS, therefore: git, some hierarchical plain text format, and a visually rich editor. Markdown could not seem to meet the third point. For instance, progress-related comments that would be stripped from final output were essential, but Markdown's HTML-style comments are intolerably unergonomic, and editors know how to de-emphasize no other syntax.
Ended up with Org-mode. Emacs with a bit of customization color- and font-codes richly. Org text goes into an Org-to-HTML converter that I hacked up in Go, incrementally added to as new wants arise.
Most recent completed production was a photo album for relatives. In HTML form, it could be put on line, but I used Weasyprint so I could give them self-contained PDF as a keepsake.