Orlando, Florida

I build software for working people.

In 2024 I sat on the negotiating committee for my union's contract. I watched members try to find answers inside a 200-page agreement written for lawyers, and lose. So I built the thing that answers them. That became Union Contract AI — and it's how I've worked ever since: find a problem I actually live inside, prove it with real data, then ship it.


01 — What I'm building

Ventures

Two products, both aimed at the same gap: the people doing the work have the least access to the information that governs it.

Union Contract AI

Live in production Founder · sole builder

Union members ask a question about their contract in plain English. The system finds the governing clause, quotes it with an exact article and section citation, and flags where the CBA, a local agreement, and a side memo contradict each other — including which document wins.

It's built for locals, not as a generic chatbot pointed at a PDF. Each local's documents stay isolated to that local. Admins run their own membership, control access, and see which questions come up most — which turns member confusion into a bargaining gap list for the next round of negotiations.

Status
ShippedRunning in production, multi-tenant
Built by
One personProduct, code, security, deploy
In market
2026Demoed to IBT Local 769 leadership
TypeScript Node Supabase Postgres RLS Google Cloud Run LLM retrieval

Shift Exchange

In development Founder · sole builder

A shift-trade app for airline and theme-park workers — the people currently trading shifts in Facebook groups and Discord servers with no way to actually close the deal.

I ran the field study before writing product code: 3,734 posts from 1,477 distinct people across seven trade groups, plus 2,818 messages over a 60-day window in a 230-person Discord. The result reframed the product. Discovery isn't the broken part — 92% of offers get a taker, median 49 minutes. The handshake is. Across all 3,734 posts, roughly 20 trades were recorded as actually completed. Everything else vanished into DMs.

Posts analyzed
3,734Across 7 groups, 1,477 posters
Offers claimed
92%Median 49 min to first taker
Trades closed
~20The gap the product exists to fill
Next.js TypeScript Supabase Tailwind Field research
02 — How I work

Three rules I don't break

Build from the inside

I don't pick markets from a spreadsheet. I build for rooms I've sat in and problems I've had personally. Union Contract AI exists because I was on the committee, not because contract software looked like a category.

Evidence before code

Shift Exchange got thousands of real posts of field data before it got a product decision — and the data killed my original thesis. That's the point. Cheap to be wrong on a spreadsheet, expensive to be wrong in a codebase.

Ship to production

A demo that works on my laptop isn't a product. Deployed, monitored, security-reviewed, with real users who can break it — that's the bar. Anything short of it is a prototype, and I call it one.

03 — Background

How I got here

The short version: I learned the problem first, and the tooling second.

  1. 2024

    Teamsters negotiating committee

    Served on the committee negotiating my union's contract — building and evaluating proposals across the table from management, and translating dense contract language for the members it applied to. This is the domain expertise everything since has been built on.

  2. 2024 — 2025

    First contract tools

    Designed and built the early apps that let coworkers ask questions about their labor contract and get real answers. Rough, useful, and the direct prototype for Union Contract AI.

  3. 2018 — 2019

    First product partnership

    Partnered with a software developer to design and ship a mobile app for iOS and Android — writing the requirements, testing the builds, and owning the deadlines and quality bar end to end.

  4. Education

    B.S. Information Technology Management  ·  A.S. Cybersecurity

    Western Governors University and Gwinnett Technical College. Security is a design constraint in everything I build, not a review I schedule at the end.

Also shipped A steady run of smaller tools I built to solve my own problems and keep the blade sharp — an OSINT lookup utility, a Unicode sanitizer for text pipelines, a local events radar for my kids, and a handful of trading and research scripts.

Let's talk

Building something for workers, running a local that needs better answers, or just want to compare notes? Email is the fastest way to reach me.

email me