Currently

Designer at Faire, connecting small-business retailers with the best products from independent makers worldwide. Advising DealOps, transforming how businesses optimize deals with AI-powered pricing.

Previously

Weekend Projects

Podcast Summarizer

A command-line tool that transcribes and summarizes podcast episodes, filtered by team. Paste an Apple Podcasts URL, get a summary.

BashGroq WhisperLlama 3.3 70BPythonffmpeg
Feb 2026

A tool born out of being a huge sports fan and podcast-obsessed — but not having enough time to listen to everything. A lot of national podcasts mention a given team, but it's buried somewhere in a 90-minute episode. They talk about the team for a minute.

Takes any podcast URL, transcribes the full episode with Groq Whisper, and summarizes just the content relevant to a specific team using Llama 3.3 70B. The pipeline handles episodes up to 75 minutes by splitting audio into chunks under Groq's upload limit, then running a two-pass summarization for longer transcripts.

Transcripts are cached locally so re-running with a different prompt is nearly free. The whole thing is a single bash script with no package manager — just curl, python3, and ffmpeg. Costs next to nothing for many episodes over a month.

VLCP Case Management

A full-stack case management system for a vocational life care planning firm. Automates email intake, tracks cases, and generates PDF documents.

Next.jsSupabaseTypeScriptTailwind CSSClaude AIshadcn/ui
Feb 2026

Built for a small vocational life care planning business that was tracking 500+ cases in Word documents and email threads. The app automates their entire workflow — attorney referral emails are parsed by Claude AI and converted into structured case drafts, which the admin reviews and assigns to team members.

Features include role-based access with magic-link auth, a team meeting mode with inline notes, PDF document generation, activity logging, and a global search across all cases. Migrated 510 historical cases from Word docs into the system.

The most interesting technical challenge was the email intake pipeline — inbound emails hit a webhook, get parsed by Claude to extract plaintiff name, attorney info, and case details, then create a draft for human review. Built the whole thing in a weekend with Claude Code.

Podium

A new way for sports fans to follow their favorite teams. Currently in early development.

Next.jsTypeScriptTailwind CSS
Jan 2026

An iOS app exploring what it looks like to follow favorite sports teams across every medium — news, podcasts, social media, and game results — all in one place. What's the new way of tracking and keeping up to date with your teams?

Family Travel

An interactive 3D globe experience built to get our kids excited about an upcoming family trip to the US Virgin Islands.

Next.jsThree.jsReact Globe.glTypeScriptTailwind CSS
Dec 2025

Before a family trip, an interactive 3D globe visualization to get the kids hyped about where they were going. They could spin the globe, zoom into where they were headed, and explore what they'd be doing there — complete with an integrated itinerary.

Uses react-globe.gl (built on Three.js) for the 3D rendering. The fun part was making it feel magical for little kids — smooth animations, bright colors, and simple interactions that even a toddler could figure out on an iPad.

Made by Miller Games

A Space Invaders-style arcade game with custom dog faces as health power-ups. Built for fun with my kids.

Next.jsTypeScriptTailwind CSSVercel KVCanvas API
Nov 2025

A project with a video-game-obsessed son — a Space Invaders clone where the family dogs Posey and Bean appear as health power-ups. Includes a leaderboard so family and friends could play and add their name.

iPad-optimized with on-screen touch controls so the kids could play on the tablet. Uses HTML Canvas for rendering and Vercel KV for persistent high score storage.

Warriors Watchability

A spoiler-free rating system for Golden State Warriors games. Tells East Coast fans whether last night's game is worth watching.

Next.jsTypeScriptTailwind CSSESPN APIGitHub Actions
Oct 2025

Living on the East Coast means Warriors games end after midnight. Instead of checking scores (spoilers), this app gives a simple emoji rating — fire, thumbs up, neutral, or thumbs down — answering whether last night's game is worth watching.

The scoring algorithm weights three factors: score margin (40%), Steph Curry's performance (35%), and game flow via lead changes (25%). A GitHub Action runs daily at 5 AM ET to pull data from the ESPN API and update the rating.

Fully automated and zero-maintenance. The static JSON file gets committed by the Action, which triggers a Vercel redeploy. No database, no API keys, no server costs.