technical blog
Developer systems, coding agents, infrastructure, and the work behind useful tools.
all blog postsRock-solid Obsidian compatibility
Granite became Obsidian-compatible only when Markdown files, vault links, cache state, plugins, and workspace layout kept their authority.
May 2026No dependencies, instant local Redis
With valkey-bun, local stacks get Redis protocol and disposable in-memory state without asking a container to join the room.
May 2026Self-upgrading agents
Atlas treats self-upgrade as ordinary software delivery: checkout, diff, tests, CI, staged deploy, monitoring, and rollback.
May 2026Lead generation agents
A London lead search started with quant funds, then a plausible target lost its shine when the evidence column could not find a buyer.
May 2026BM25 code search for agents
Code-search keeps the fast exact-search habit, then uses BM25 to help agents find the local vocabulary before they know the symbol.
personal essays
Cloth, cities, taste, attention, and the private rooms where judgement gets trained.
all essaysTaste takes time
Cloth, proportion, weather, and the slow education of the eye.
May 2026Boat at night
Old skills, cold water, and the private architecture of continuity.
May 2026Paraboots in the rain
French shoes, useful ugliness, and the difference between admiring an object and living in it.
April 2026Ease takes work
Apparent ease, hidden rules, and the small operating system of getting dressed.