The Most Dangerous Code Is the Code That Assumes
Every system has invariants—conditions that must always be true. The most dangerous ones are the implicit invariants that nobody writes down.
Long-form writing on software engineering, systems design, and building things.
Every system has invariants—conditions that must always be true. The most dangerous ones are the implicit invariants that nobody writes down.
LLM outputs vary, but system rules shouldn't. AISpec brings invariant contracts, confidence intervals, and Rails-native testing to your LLM pipeline.
AI can generate a thousand lines of code in a minute. It still can't tell you whether those lines belong in your system. As code becomes abundant, software architecture becomes the scarce resource.
LLM evaluation is probabilistic. If you treat your LLM judges like unit tests, you'll chase ghosts. Here is how to separate the two sources of noise and build an evaluation pipeline you can trust.
The Outbox Pattern solves the dual-write problem, but it isn't free. From database write amplification to retention strategies and duplicate execution, here are the real costs of transactional reliability.
Mature systems rarely waste time inside algorithms. They waste time moving data between them—and that is why performance fixes compound.
JSON is one of the most expensive ways to move embedding vectors. Here's how switching to binary Base64 float buffers cut payload size by 75% and reduced serialization latency by 98%.
When you need more throughput, adding threads seems obvious. But under the wrong conditions, concurrency can grind your system to a halt. Here is why your AI server is fighting the scheduler—and how to fix it.
Every senior engineer has lived through a migration that got 80% finished, stalled for a year, and left the team maintaining two versions of the same system forever. Migrations rarely fail because the new architecture is bad; they fail because of incorrect system boundaries, lack of dual-writing strategy, and ignoring human momentum.
When the database CPU spikes to 99% or your background job queue has a backlog of 200,000 tasks, your engineering skills are only half the battle. Leadership during an incident is about command, communication, and systematic triage. Here is what I've learned from managing production fires.