Backends, mobile apps, and the bits between teams. Fifteen-ish years in, currently leading engineering at AJ Hackett Bungy.
Started with Java and Eclipse and swiftly moved to .NET, drifted into mobile (Swift, Flutter), spent the last few years writing a lot of Go and TypeScript and trying to keep teams pointed in roughly the same direction.
These days a lot of my work is AI-shaped: building agents, wiring up MCP servers, figuring out where this stuff actually earns its keep versus where it's just noise. The rest is the usual — architecture, code review, repeat.
An external audit gave us a relatively clean bill of health. Out of curiosity I pointed an uncensored model at our staging environment anyway, effectively saying "hack my own software." It found things we'd missed.
Read essay →A tiny macOS menu bar app that watches GitHub Actions across every repo you can see. One glyph for the worst current state, ETag-aware polling, notifications the moment something turns red. Built because I was tired of keeping a tab open on Actions all day.
A local-first multi-agent orchestration platform. React + Vite up front, Express and SQLite at the back, one control surface for missions, agents, issues, and run history. The kind of thing I kept rebuilding badly until I sat down and built it properly.
A self-hosted AI operations agent in Go. Embedded SQLite, pluggable LLM router, connectors for Microsoft 365, Azure, and Slack, with an audit trail because nobody trusts an agent that can't show its working.
Local-first remote control for OpenAI's Codex — Codex stays on the Mac, your phone pairs in over an end-to-end encrypted session to steer runs, queue prompts, and trigger git actions. I wrote the Android client; the iOS side comes from the upstream Remodex project.
If you'd like to talk systems, architecture, or agentic AI, DMs are open on X (@codermatt), or connect via LinkedIn.