projects

Things I've made. Some are live, some are internal tools from my day job, and a couple are from school.

12 projects

Pass^1

A customer service agent demo on τ-bench

2026live

A demo airline support agent built on Sierra's open τ-bench domain, with a workbench that shows every tool call. An experiment in making agents dependable.

  • Scored 0.800 pass^1 on a five-task slice. The methodology is in the repo.
  • Refuses off-policy requests and cites the policy when it does.
  • Claude Sonnet 4.5
  • Vercel AI SDK
  • Next.js
  • Upstash
  • Zod

Pass^k Mutual

An auto insurance agent demo

2026live

A demo agent for a made-up New Jersey insurer. It quotes new customers and services existing ones, using the same pricing engine as a voice quote line I made.

  • Passed 36 of 36 trials across 12 tasks (pass^3 of 1.000), graded on the final record.
  • Verification and explicit consent are enforced in code.
  • Claude Sonnet 4.5
  • Vercel AI SDK
  • Next.js
  • Upstash
  • Zod

passk

An eval harness for tool-calling agents

2026open source

An open source harness that runs state-verified tasks against any chat model and reports pass@k and pass^k. Tasks are graded on the final database state.

  • Claude Haiku passed 20 of 20 trials. Llama 3.1 8B passed 12 of 20.
  • Caught a small model reporting a cancellation it never made.
  • TypeScript
  • Bun
  • Ollama
  • Claude

SuitLog

A litigation claims tracker for my day job

2026in production

An internal tool that replaced a spreadsheet for tracking litigated claims, with workflow checks and dashboards.

  • In production since September 2026.
  • Calculates the litigation gap automatically.
  • React
  • FastAPI
  • SQLite
  • Plotly
  • Docker
internal tool, no public link

Demand packet pipeline

Multi-agent review of medical demand packets

2026prototype

A prototype that reads 300 to 500 page medical demand packets, rebuilds the injury timeline, and flags pre-existing conditions for an adjuster.

  • Picks up new packets from an inbox and emails back a discrepancy summary.
  • Fast models triage and extract, and a stronger model looks for discrepancies.
  • TypeScript
  • Bun
  • Claude
  • Gmail API
  • Google Docs API
internal tool, no public link

PAI

My personal AI setup on Claude Code

2026open source

A fork of Daniel Miessler's PAI that adds skills, hooks, memory, and a verification loop to Claude Code. I use it for most of what's on this page.

  • Hooks check every tool call before it runs.
  • Tasks are checked against written criteria before they count as done.
  • TypeScript
  • Bun
  • Claude Code
  • MCP

IronPulse

Training plans from my Garmin data

2026paused

An experiment that reads my Garmin data, tracks training load, and adjusts the plan. A Telegram bot sends a morning briefing.

  • Uses TRIMP and the acute-to-chronic workload ratio.
  • Paused for now.
  • TypeScript
  • Bun
  • Garmin
  • Telegram
  • Claude
private repo

Outlast

A charity backyard ultra with a friend

June 2026completed

My friend Mike and I organized and ran a backyard ultra in Queenstown, Maryland. Every hour you run a 4-mile loop, and the last runner left wins.

  • 52 people gave $4,310. After GoFundMe fees, $4,169.02 went to Tunnel to Towers and PGA HOPE.
  • I ran 42.8 miles over ten loops. Mike outlasted me by one loop.
  • Running
  • Fundraising
  • Event planning

Data Drive

Bucknell senior capstone

2024 to 2025completed

A data pipeline for university researchers, built by a six-person team over a year. I was the product owner.

  • A Raspberry Pi pipeline and C++ dashboard that write sensor data into MariaDB.
  • C++
  • Raspberry Pi
  • MariaDB
private repo

Minesweeper

Software engineering final project

2022completed

Minesweeper in Java and JavaFX with four difficulty levels, made with a four-person team for CSCI 205. I was later a TA for the course.

  • Java
  • JavaFX
  • Gradle
  • JUnit