Now
BaseDash — Full Stack Engineer, May 2023 → present
Three and a half years at BaseDash. I designed and architected much of the infrastructure behind it, including the self-hosted component.
- Product and ops: shipping user-facing work in React and Node, and running what I ship: observability, incident response, and the unglamorous work of knowing what’s going on in production.
- I teach toward simple backends: fewer moving parts, Postgres earning its keep, systems a small team can reason about on call.
- Helping maintain and optimize a production AI agent — ~4 years working with agents, 2 in agentic-coding practice across models and harnesses.
Focus
Simple systems, hypermedia, practical AI
I work across product and ops: shipping user-facing product in React, React Native, Rails, and Node — and running what I ship, from self-hosted infra to observability and incident response.
This chapter I’m focused on hypermedia stacks like Datastar — server-rendered HTML over SSE instead of client-side state mirroring — and on practical AI: ~4 years working with agents, 2 in agentic-coding practice across models and harnesses, helping maintain and optimize a production agent. Same goal either way: less ceremony, fewer moving parts, systems a small team can reason about.
Active projects
Things you can open
- yagni.club — essays and notes. A plain Go binary that syncs my ATProto repo into SQLite and renders HTML. Datastar for a clock, reading progress, and subscribe — everything else works with JS off.
-
SSE Lab — a harness that reproduces a WebKit streaming-
fetchdelivery bug, with every knob in the URL so a shared link reproduces the run. Includes a DatastarEventSourceplugin. - dbugs — Gigabugs reimagined as Go + SQLite + Datastar: 1M issues, full-text search in ~10–20ms, realtime multiplayer, one binary on a small box.
- Hypersheets — realtime multiplayer spreadsheet with no client-side app state. Server renders HTML and patches it over SSE; invalidation follows the formula graph, not a static list.
- Largediff — GitHub-style Files-changed view that stays smooth on 100k-line diffs. Server-driven viewport windowing over one SSE stream, per-token spans rendered server-side.
Background
- Gowalla — Lead Web Engineer 2021–2023
- Remix storefront on gowalla.com, Node GraphQL API perf via new observability (Sentry, Checkly, GCP Logging), Docker/K8s on GCP, Shape Up.
- Babylist — Lead Software Engineer 2019–2021
- Registry product, storefront experiments with data/analytics, frontend modernization (testing, data access, state). Managed a few engineers.
- Hipcamp — Senior / Lead Software Engineer 2018–2019
- Greenfield React Native app, Apple App of the Day. TypeScript + design tokens, automated releases with Azure DevOps + Detox.
- Patreon — Engineering Manager 2015–2018
- Managed ~7 engineers across Risk, Security, Growth, Frontend. Earlier: SEO/open-graph audits, Messages overhaul, React patterns and tooling.
Earlier: NerdWallet (Node/React storefronts, Life Insurance calculator) · DIY.org · Trulia.
Full CV with dates on LinkedIn.
Elsewhere