Long-form, irregular, and mostly about the parts of a system that only reveal themselves in production.
Moving CI out of five repositories and into one shared workflow was meant to be a consolidation. It found six checks that had been passing without checking anything.
Read →Aug 2026Four times in five days, in four repositories, I found a subsystem that existed and ran and was referenced from live code, and that nothing ever called. What they had in common was the thing that made them invisible.
Read →Jul 2026Eighteen repositories that have been private for years are going out with licences. Two reasons, one of which I would rather not admit to.
Read →Jul 2026Every cross-tenant leak I have looked at came from one query missing one clause. Making the boundary structural means the mistake stops being available.
Read →Jul 2026Four stores, one handler, no transaction. How I ended up with a reconciliation job nobody owned, and what a single transactional write path actually costs.
Read →Jul 2026Returning the twenty things most related to an asset is easy. Explaining why each one is in the list is what determines whether an operator uses the result.
Read →Jul 2026Deriving node identity from a normalised natural key instead of allocating it makes multi-source ingestion converge. Here is exactly where that stops working.
Read →May 2026Routing, caching, guardrails and budgets are worth having. A third party in the path of every prompt is a data governance conversation before it is an architecture one.
Read →May 2026A single accuracy number over a small hand-picked set tells you almost nothing. Baselines, scenario coverage and regression detection are what make a change reviewable.
Read →Apr 2026Rotation that requires a coordinated deploy happens once, at audit time. A grace window where both keys validate is what turns it into a background process.
Read →Apr 2026Generating each database its own dialect instead of a portable subset. What that buys, what it costs, and the benchmark numbers with their caveats.
Read →Apr 2026Ordering detectors by cost and precision, with the right to terminate, produces decisions with a single named cause. That is worth more than the latency it saves.
Read →