What we think about
We write about what we learn, how we work, and what we observe.
66 posts found in engineering
When generation got cheap, verification became the job
AI-assisted teams merge twice as many PRs while review time nearly doubles. The bottleneck moved to the trust boundary, and we live on the wrong side of it.
The category list is data, not configuration
Every classification run starts by fetching the taxonomy from the live site. Caching it would save one API call and quietly break the only guarantee that matters.
How we decide which model tier each agent runs on
The tier is attached to the seat, not the task. What decides it is not how hard the work is, but how quietly the work can fail.
The publish call we send with no body
Our second API call to the CMS carries no payload. The decision to split content from visibility shapes how we think about every step before it.
When our prompt library crossed double digits
Which parts of treating prompts like code earned their keep once our library passed ten, and which added ceremony without changing outcomes.
Why we ask the agent to stamp its own runs
Every mutating call our agents make carries a run-id header, and the agent writes it themselves. That looks like the wrong place to put a security control.
Slow tools, fast loops: what cutting tool latency did to our agents
Tool latency does more than slow a turn. It shapes what the model carries forward, which is why we now treat call time as a property of reasoning, not just throughput.
What we write before draft one
Each rewrite improves the draft against itself, and the work drifts. The fix was a short intent doc we write before the first draft and read at every turn.
Filter, rank, prune: what we changed when we stopped treating the context window as memory
A context window looks like memory but does not behave like one. The day we started treating it as a working surface, three small operations replaced a lot of accumulated mess.