Work

A mix of things I've built and shipped. The projects below are my own, described at the architecture level. For the full professional history, see my résumé.

Selected projects

Adjunct

AI & Agents · Active

A self-hosted platform where AI agents do real work, under human authority.

My self-hosted platform for running LLM coding agents. A deterministic kernel (TypeScript + Postgres) owns the work state, budgets, and an audited event trail, then hands execution to agents, automated research, and home services. Everything ships through branch-protected GitOps on a home k3s cluster, and anything irreversible waits on my approval. The agents do the judgment work; a human keeps final authority. Built as small, permission-bounded repos instead of one monolith.

Deterministic kernel · GitOps on home k3s · ~1,300 agent-assisted PRs · human-gated

  • TypeScript
  • Postgres
  • Kubernetes (k3s)
  • Flux
  • GitHub Actions
  • LangGraph
  • Claude Code

send-broker

Platform

One audited choke point for everything an agent does to the outside world.

A policy-gated side-effect broker. Every agent-initiated external write (email, calendar, tasks, a browser action) passes through one audited gateway with an approval step. It's how agents get to act in the real world while a human still signs off on what matters.

Dual-approval gate on all outbound side effects

  • TypeScript
  • Policy engine
  • OAuth integrations

ha-operator

Platform · Active

The Kubernetes operator pattern, applied to my house.

A declarative home-automation controller that replaces brittle if-this-then-that rules with a reconciliation loop: behaviors are pure functions of a world snapshot, rendered to a desired state and diffed onto Home Assistant. Includes a weighted-evidence occupancy engine that fuses motion, BLE, and camera signals into per-room presence. Heavily typed, well-tested, and running my actual house.

Pure-function behaviors · reconciled desired state · weighted-evidence occupancy

  • Python
  • Home Assistant
  • AppDaemon
  • Kubernetes

book-of-the-fallen

AI & Agents · Active

A spoiler-aware knowledge graph over a ten-book, ~3.3M-word series.

An NLP corpus platform that extracts characters, relationships, and events from a ten-book series and serves them to LLM clients. BookNLP and transformer embeddings feed a Postgres knowledge graph, exposed through an MCP server with a suite of query tools. It runs on a deterministic-bulk-extraction plus LLM-judge-the-hard-residual architecture, with trust-tiered, era-scoped canonization.

~3.3M words · MCP server · trust-tiered canonization

  • Python
  • BookNLP
  • Transformers
  • Postgres
  • MCP

Quantified Self

Product

A health app that became a data source for agents acting on my behalf.

A cross-platform mobile app for journaling, habits, and HealthKit data, backed by a Rails 8 API with broad Maestro end-to-end coverage. It now doubles as a structured data source for AI agents that draft entries and take action on my behalf. It is the personal-telemetry layer that grounds the rest of the system.

Expo + Rails 8 · HealthKit · Maestro E2E

  • React Native
  • Expo
  • TypeScript
  • Ruby on Rails
  • Maestro

BJJ Better

Product

Brazilian jiu-jitsu tracking, with a nudge to actually journal.

A Rails web app for journaling jiu-jitsu training and tracking progress, with scheduled Twilio SMS reminders that prompt me to capture notes right after each session, while the details are still fresh.

Scheduled Twilio nudges to capture notes post-session

  • Ruby on Rails
  • Postgres
  • Twilio

Experience

  1. Eudemonia, LLC

    2022-Present

    Independent Software Consultant / Founder

    • Software engineering and applied-AI consulting through my own Delaware LLC; ongoing client engagements including web and e-commerce development.
    • Designed and operate Adjunct, a self-hosted AI operations platform on a multi-node home Kubernetes cluster. Over the past year it has coordinated LLM coding agents, automated research, and household systems through branch-protected GitOps, with human-approval gates on every irreversible action. Roughly 1,300 agent-assisted PRs merged, up to 10 concurrent work-lanes.
    • Architected the platform around a deterministic, human-governed kernel (TypeScript/Postgres) that owns work state, budgets, and an audited event trail. Rebuilt from an earlier monolithic engine to decouple judgment from execution and bound permissions per repository.
  2. Better.com

    2020-2026

    Staff Software Engineer

    • Led development and launch of Better's first borrower-facing mobile app (iOS & Android) in React Native + Expo with CI/CD for both platforms; mentored and scaled the team.
    • Led document-automation AI: LLM prompt engineering and ML/OCR pipelines powering bulk document collection and auto-processing of financial documents, reducing manual underwriting.
    • Contributed to a multi-channel voice/chat/SMS conversational AI agent and an internal RAG underwriting assistant grounded in agency rules.
    • Three consecutive "Exceeds Expectations" reviews; described by management as "the model we want all engineers to aspire to."
  3. The Knot Worldwide

    2019-2020

    Lead Engineer / Senior Software Engineer

    • Promoted to Lead Engineer; full-stack work across consumer products (The Knot, The Bump, Bash) spanning content, advertising, and booking/marketplace systems.
  4. XO Group Inc.

    2015-2019

    Senior Software Engineer / Software Engineer

    • Full-stack engineer across The Knot, The Bump, and Bash (the event-vendor marketplace from the GigMasters acquisition), covering content, ads, and booking.
  5. CMPLY

    2012-2015

    Software Engineer

    • Built APIs in Ruby on Rails (MongoDB, PostgreSQL) and background services in Node.js and Go; built single-page web applications.