XRAPH/Writing

Notes from
the machine room

Long-form, irregular, and mostly about the parts of a system that only reveal themselves in production.

Posts
56
Cadence
Irregular
Topics
Systems / Agents / Go
01

All Writing

Newest first
Aug 2026

Green because it never ran

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 2026

Referenced, and still dead

Four 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 2026

Publishing the private half

Eighteen 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 2026

Multi-tenancy you cannot forget to write

Every 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 2026

The outbox pattern is boring, and I should have used it two years earlier

Four 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 2026

A ranked list without a reason is a list nobody trusts

Returning 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 2026

The same pump, in four systems, with four different names

Deriving 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 2026

Putting the model gateway inside your own process

Routing, 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 2026

Evaluating generated output without fooling yourself

A 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 2026

API keys you can actually rotate

Rotation 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 2026

The lowest common denominator is where ORMs go to die

Generating 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 2026

Safety checks that are allowed to quit early

Ordering 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 →
Load 12 more12 of 56 posts