Personal

The work that doesn’t bill by the hour.

Proof I build for the love of it: native Mac apps, open-source tooling, race reports, and a standing date with the White Mountains.

Simple apps

Nine native macOS viewer apps (JSON, CSV, Markdown, YAML, Text, Image, Audio, 3D, 3MF) sharing one Swift core, plus Viewer Toolbox to install and update them all. Each app is about 2 MB; the Electron equivalent would be 80 to 120 MB.

Side projects

A rotating bench of tools I build because I use them: MCP servers that wire AI assistants into version control, fitness platforms, and office suites; Claude Code plugins and multi-agent pipelines; and always at least one game prototype in flight. The public ones live on GitHub.

Viewer Toolbox screenshot

Simple apps

Nine native macOS viewers (JSON, CSV, Markdown, YAML, Text, Image, Audio, 3D, 3MF) on one shared Swift core, each about 2 MB where an Electron app would be 80 to 120. Viewer Toolbox installs and updates the whole set.

Swift · SwiftUI · Sparkle · Mac App Store · GitHub Actions

FirstChair, a ski adventure hub

FirstChair

A ski adventure hub covering 440+ mountains: track favorite resorts, compare passes, find uphill access, and never miss a powder day.

Vue 3 · Vite · Tailwind · Netlify Functions · Google Maps

Pilot Light title screen, pixel-art biplanes and gunships at sunset

Game prototypes

Always at least one in flight. The current one is Pilot Light: WW1 biplanes, wrong-century enemies, pixel art. The best excuse to keep the game-dev tooling honest.

Godot · Android · Retro Diffusion · agentic pipeline

CoachView form builder

CoachView

Coaching-business SaaS for endurance coaches: athlete onboarding forms, drip sequences, landing pages, and billing in one place, designed to sit beside TrainingPeaks rather than replace it. Built 2018 to 2020, sold.

Ruby on Rails · Heroku · Stripe · PostgreSQL

A.I.D.A.

Aida (Artificial Intelligence Digital Assistant) is my personal AI chief of staff: long-term memory across every project, a wiki distilled from fifteen years of notes, agents that run overnight, and one CLI that answers for work and life.

Go · MCP · Claude · Docker

ButterStack org chart of AI staff

AI org chart

ButterStack’s staff is mostly AI: a product manager queues the backlog, a tech lead gates quality, engineer agents ship PRs from sandboxed worktrees, and humans review. Blog post coming soon.

Claude Code · subagents · Docker sandboxes · GitHub Actions

When I’m not in front of a computer

  • Two full Ironmans, a dozen halves.
  • All 48 of New Hampshire’s 4,000-footers.
  • Eagle Scout.
  • Three company-wide hackathon wins and various innovation awards.
With my kids under the Ironman logo at a race village
On the lift at a New Hampshire bike park, mountain bike hanging behind me
Camp selfie in the autumn woods