I build and harden production AI systems
I build production AI systems. Right now that means a pipeline that turns 500+ news articles into a digest every morning, unattended - and most of the work isn't the model, it's the schema validation, the retries, and the observability that keep it from quietly breaking at 6am. Same impulse that had me build a Rails app that ran the Ottawa Jazz Festival's volunteer program for 9 years and write a gem to tell me which of my dependencies were actually still maintained.
That instinct has a decade of platform engineering under it. At Hivebrite I scaled a Rails platform serving over a million users, cut €160k a year in infrastructure, and shipped a performance fix to Rails. LLM systems need that production discipline more than most code does, and that's where I point it now.
I want to know why we're building something, not just what's on the ticket, and I'd rather test a theory against real data than blindly apply it. I write about what breaks and what I learn on my blog.
Need an AI system you can actually trust in production? Drop it in my inbox. More in the CV, or point your LLM at /llms.txt and ask it about my work.
Calls Claude every morning, curates 500+ articles from 30+ sources into a digest, emails it to subscribers. Python pipeline, Rust web server, Terraform deploys.
RubyGem that scores dependency health beyond version drift: maintenance activity, OpenSSF scores, CVEs, libyear. Emits SARIF and CycloneDX with CI quality gates.
Mac app that turns a game controller into a keyboard and mouse. Pair a pad, press a button, it presses a key. Menu bar, open source.
Merged a performance fix to Rails ActiveSupport. Designed and proposed production-safe Rack 3 streaming for Sinatra 5.0 - a long-standing help-wanted feature. The work surfaced and filed two upstream issues: a Rack::Deflater crash on streaming bodies (rack#2470) and an HTTP/1 client-disconnect edge case in async-http (#224).