I architect software for a living. Right now that means leading the modernisation of a large-scale enterprise platform — hundreds of .NET projects across interdependent applications, in an industry where the software cannot fail.
The work is mostly invisible when it's done well. Migration paths that don't break production. Performance fixes that target one bottleneck instead of rewriting everything. Monorepo structures that let engineers ship without stepping on each other. The kind of work that only becomes visible when it's missing.
I think of architecture as constraint management, not technology selection. Every system I build exists inside a web of pressures — business goals, team capacity, legacy debt, compliance requirements, time. The job isn't to pick the best technology. It's to navigate the constraints toward an outcome that actually ships.
Outside of work, I build tools that extend my own thinking. A voice-first PWA. A GPU-accelerated terminal. An Obsidian vault structured as a living knowledge base. And Lyra — a personal AI agent that draws on that vault as its memory, runs on NanoClaw, and is accessible through three different interfaces. The dots connect themselves when you build the system that holds them.
I write about the decisions behind the systems, not just the systems themselves. The signal feed is where that work lives — architecture decisions, engineering notes, thoughts that earned their way out of my head. No thought leadership. Just the thinking.
The work speaks.
Everything else is context.