Approval Workflows and an Outbox Event Stream in Go: Eventing Without KafkaHow do you hold a large payment for a second pair of eyes without ever letting the unapproved money touch a balance, and how do you stream that decision to the outside world without standing up a broker?Jul 13, 2026·11 min read
Multi-Currency and FX in a Go Ledger: Keeping Double-Entry Honest Across CurrenciesJul 10, 2026·13 min read
I Push to Main and Ninety Seconds Later It Is Live. Here Is Every Step in Between.No SSH, no checklist, no remembering the one command I always forget. Just git push, and production updates itself. This is exactly how that pipeline is wired, and how you can build the same one for a plain server.Jul 9, 2026·8 min read·4
The Server Lived in My Head. This Week I Wrote It Down.My ledger has run in production for weeks on a box I set up by hand one evening and never wrote down properly. If it died, I would rebuild it from memory. That is not a plan, so I turned the memory into code.Jul 9, 2026·8 min read
I Audited My Own Payment Ledger Like It Held Real Money. The Front Door Was Wide Open.The accounting math was bulletproof. Then I asked a harder question: what could someone do if they could just reach the API? The answer was, unfortunately, everything.Jul 8, 2026·10 min read
The Claude Code Setup I Actually Use: 28 Plugins, Skills, and MCPs Worth Your TimeI spent months trying every Claude Code add-on I could find, and these are the seven I now refuse to code without, plus twenty-one more worth knowingJul 8, 2026·20 min read·23
Testing a Payment Ledger End to End: Unit, Property, Chaos, and LoadI asked my code to add two numbers and it quietly answered zero. This week I stopped trusting the ledger and started trying to break it, and it broke.Jul 7, 2026·11 min read·1
Distributed Tracing for a Go Service: One Request, One Thread You Can PullA payment felt slow and my logs couldn't tell me why. This week I gave the ledger a way to follow a single request from the HTTP handler all the way down to the SQL query.Jul 7, 2026·8 min read·4