24 years. Full stack.
Still shipping.
I ship products, not status updates. Available.
Projects
Sites
Mileweave
Full-stack app in production: auth, Stripe subscription, Postgres on Neon, Claude API.
reductio.us
Every question graded against the statute it cites. 471 citations verified at the evidence level.
Verbatim
Primary-source data explorer. Thirteen public datasets, one interface, zero editorial.
Helm
Readable open-source code: an Express 5, EJS and HTMX fleet dashboard. MIT, with a live demo.
whoami.fyi
A paid AI product in production: a $3 Claude-run audit behind Stripe checkout.
Picweave
Collaborative photo timeline. Upload photos separately, see them merged by timestamp and location.
Curios
Priors
Give four Claude models a black circle and one word, “improve,” 2,608 times, each in a fresh session. Nobody says what better means, so what each one reaches for is its prior.
Premia
Run an insurance company for a hundred years. Charge too little and the claims eat you. Charge too much and only the risky houses stay.
Orrery
A drum machine laid out like a solar system. Every ring is an instrument with its own number of steps, so a seven-step loop drifts against a sixteen and the pattern never quite comes back around.
Geigensatz
A keyboard instrument that never existed: eighty-eight strings, a rosined bow beside each, and every bow on one rack driven back and forth by a single crank.
Crank
An engine’s voice is timing. Give CRANK the geometry (cylinders, stroke cycle, bank angle, crank throws, firing order) and hear the engine purr or hum or thump.
Incognita
A world that exists only while someone is looking at it. The first visitor wakes a sleeping server, the ground is decided at the moment somebody looks at it, and when the last person leaves the machine shuts itself off and the world is gone for good.
Tools
Invoisaurus
Invoice generator. Web UI in, PDF out. Try the demo, or run it yourself.
clrk
A drop folder that files itself. Reads each document, files it by your rules.
Liberator
Removes paste-blocking, sticky headers, and selection restrictions.
rtfm
Local markdown documentation server. Zero network dependencies.
arcweave
Text config → SVG line chart generator.
whyis
CLI etymology reference.
Client Work
247wallst
2025Custom WordPress for a high-traffic financial news site. Theme, live blog tooling, real-time stock charts. Publishing under deadline pressure.
Muck Rack
2023–2025Marketing engineering with Wagtail and Django. Full stack work on the public-facing site.
Motley Fool
2006–202317 years building the systems behind fool.com. CMS infrastructure, SEO tooling, lead gen platforms that drove $100M in revenue.
Background
Every project in this portfolio started the same way — I needed something, it didn't exist (or existed badly), and I built it. Not business plans. Scratched itches.
I've been building for the web since tables were for layout. Along the way: a FEMA contract building an accessibility-focused GIS application, 17 years at Motley Fool, and marketing engineering at Muck Rack.
I know what works at scale, and I still get excited about building things.
Primary stack
Python, Django, Wagtail
Also fluent in
WordPress (themes, plugins, editorial workflows)
How I work
Remote, async-first, minimal meetings.
The Sidekick
Chief Morale Officer and walking alarm clock.
Have a project?
I typically respond within a day.