Texas 2025

I build practical web tools for non‑profits, the kind that replace a spreadsheet and a group chat.

I ship real applications for organizations that run on small budgets and tight constraints, and I build them with Claude Code in the loop.

Selected work ↓

Work

Foster-based animal rescues

Journey Home

01

Small rescues have no single source of truth for who’s available to foster right now, or where each animal is. Coordinators run it across group texts and spreadsheets, and things fall through.

I built a placement dashboard: a foster roster, an animal roster, and capacity enforcement, with one live view of who has which animal and who’s free. When a foster hits capacity, new placements are blocked automatically, so the system can’t be over-committed by accident.

Journey Home placement dashboard — foster roster and animal placement tracker
Demo login admin@journeyhome.com / JourneyHome!

PHP · CodeIgniter 4 · MySQL · Tailwind CSS

Mutual-aid community fridges

Fridge Connect

02

Fridge coordinators juggle status updates, volunteer tasks, and donation pickups across Instagram DMs and spreadsheets — no shared view, no single source of truth, a lot of duplicated effort.

I built a live tracking system: one place for fridge status, volunteer task assignments, and donation-pickup logging. It’s designed for volunteers with no technical background. The screen tells you what needs doing and who’s doing it, and nothing else.

Fridge Connect live status board — community fridge tracker
Demo login admin@fridgeconnect.com / FridgeConnect!

PHP · CodeIgniter 4 · MySQL · Tailwind CSS

About

Non-profits and real organizations

The interesting constraints here aren’t technical. A foster coordinator isn’t going to read documentation, and there’s no budget for a second tool if the first one is confusing. Building for these orgs means the software has to disappear. It only earns its place if it’s genuinely faster than the group chat it replaces. That’s a harder and more honest bar than chasing a market.

Building with Claude Code

I build with Claude Code as a core part of the process, not as a novelty. It changes which decisions I make first. Data models and edge cases surface early, instead of after the demo, and it’s relentless about the cases I’d rather wave past: the foster who’s at capacity, the donation that never gets picked up. Working this way taught me to define the problem precisely before writing anything, because that’s where the real leverage is.

Making games

When there’s no brief, no org, and no problem to solve, I’m working on my top-down pixel roguelike RPG — somewhere between the card-building decisions of Slay the Spire and the absurdity of Everything is Crab. It’s the thing I make when the only thing to do is the game itself, and it keeps the part of me that codes for fun honest about the part that codes to ship.

Contact