All posts · page 8
2026
2026-09-23 · design note
The analyzer already knows your patch is brokenAn agent writes a file, runs a build, reads the errors and tries again. The database that answered its last hover could have told it in 100 ms, without writing anything. What that takes, and the one error class the rust-analyzer build we embed stayed silent about.
6 min
2026-09-22 · design note
Never grep for a line number againLSP is positional: to ask who calls a function you must first know its file, line and column. Agents get that by grepping, and grep does not know what a symbol is. We made every tool take the name instead.
5 min
2026-09-22 · design note
A mirror, not a mountThe analyzer runs on a node across the LAN and needs your code there. Not over a network filesystem, and not by uploading the tree every time: a manifest of hashes, a watermark per node, and a watcher that syncs only when something changed.
6 min
2026-09-21 · design note
Salsa has no branchesTwo agents on two worktrees of one repository, sharing one analyzer database, answer each other's questions. A benchmark that forks four worktrees and asserts what each should see, and why we stopped trying to share anything writable.
7 min
2026-09-21 · design note
Your laptop is the wrong place for rust-analyzerTen coding agents in ten worktrees means ten analyzers and ten cargo builds on one machine. We moved the analyzer, the builds and the tests to Linux nodes on the LAN, mirror the checkout there by content hash, and let the laptop do the one thing it is good at: editing.
7 min
2026-09-19 · notes
Container up, data gone for four hours: silent failures in crypto market data collection22 collectors on 15 exchanges (Binance, OKX, Bybit, Coinbase and more), 240,000 records per second, zero crashes all summer, and a dozen incidents where data vanished silently. Where to put the collector, what breaks without an error in the log, and which metrics give it away.
16 min
2026-09-19 · fleet ops
The answer that used to be trueAn agent taking over acts on a fact someone else wrote. Overwriting memory hands back a stale answer with nothing on it that says so.
6 min
2026-09-16 · design note
rapidfire: the channel between a market feed and a decisionThe hand-off between a market-data reader and a strategy loop is one of the few latencies in a trading process under our control. How we built a lock-free channel for it, what broke on a 128-core ARM box, and where the assembly landed.
7 min
2026-09-14 · fleet ops
Why every delegated task gets its own worktreeA delegated task is a scope, a worktree and an acceptance command. The worktree is the part we will not trade away, and the reason is whatever the resident agent happens to be doing at the same moment.
6 min
