~/projects · git log

Things I'm building.

Six projects, three of them with public repos on GitHub. Each section calls out the current state of the work, repo included where I can share one.

P01
DrinkUp
drinkupapp (private) · Pre-launch, final hardening before first prod deploy · Updated Jun 3, 2026

A mobile ordering and payment platform for bars. A customer orders and pays for a drink right in the app, gets a pickup code, and hands the code to the bartender, who fulfills the order on the spot. No flagging down a bartender, no card swipe at pickup.

  • FastAPI backend with Stripe Connect handling in-app payments and payouts to bar accounts.
  • React and Vite web portal for bartenders and bar admins, running on AWS Fargate, RDS, and ElastiCache, all provisioned through Terraform across dev, staging, and prod.
  • Full pytest and Playwright suite, including live end-to-end tests, gating every deploy.
Why I built this

I have stood in enough bar lines wondering why paying for a drink still means flagging someone down and waving a card around. DrinkUp lets a customer order and pay from their phone, then just show a code at the bar. Getting the payment and fulfillment flow right, and making a small production system safe enough to run real money through, has been the most demanding project I have shipped outside of work.

private repo
P02
Stock Analysis Engine
stock-analysis (private) · Built, full test suite passing, live sign-off pending · Updated May 28, 2026

A local, rules-based Python engine for personal market research. It pulls free market data, scores a universe of tickers against a set of technical and fundamental rules, and turns that into a ranked, auditable list of proposed trades.

  • Every candidate comes with a written scorecard, so I can see exactly why it ranked where it did instead of trusting a black-box number.
  • Hard safety boundary baked into the design: the engine only ever proposes trades. It never places, modifies, or cancels an order itself.
  • 129 tests passing, 2 skipped, with a CLI that runs the full scoring pipeline end to end.
Why I built this

I wanted a repeatable way to screen a lot of tickers without spending a Saturday morning eyeballing charts, and without ever giving a script the ability to touch my brokerage account directly. Keeping the tool strictly advisory, propose only, never execute, was the non-negotiable design constraint from day one.

private repo
P03
Football Odds Analysis Engine
odds-analysis (private) · Just kicked off, Sprint 01 building the data pipeline · Updated Sep 7, 2026

A batch pipeline for NFL and NCAAF sportsbook odds. It ingests lines from multiple books, devigs and blends them into a sharp-book consensus fair line, runs that through a deterministic rules engine to produce an adjusted probability estimate, and publishes a small number of value picks each week, each with a fully auditable explanation of how the estimate was reached.

  • No machine learning and no LLM anywhere in the reasoning path. Every pick traces back through a versioned, explicit rules engine, so the rationale is fully explainable rather than a black-box score.
  • The goal for the 2026 season is a public, timestamped, tamper-evident paper-trading track record, built to answer one question by February 2027: does this approach produce positive closing line value.
  • Day one as of this writing. Sprint 01 is building the data ingestion spine and a zero-rules baseline, consensus line passed through unchanged, no live API calls, no real money, no AWS spend yet.
Why I built this

Sports betting analytics has no shortage of people selling picks on vibes and a good week. I wanted the opposite: a disciplined, deterministic process I could actually audit, with a track record that is public and timestamped from day one so there is nowhere to hide a bad stretch. Win or lose, the record stays honest, and that is the part of this project I actually care about proving.

private repo
P04
Prompted: Tech Talks
prompted-tech-talks · Active, new episodes shipping regularly · Updated Jun 6, 2026

An end-to-end AI podcast pipeline. Listeners submit a topic prompt, Claude generates a structured multi-segment script using a custom skill, OpenAI tts-1-hd synthesizes dual-voice audio (sage + echo voices with intro/outro), FFmpeg assembles the final MP3, and GitHub Actions publishes to S3, rebuilds the RSS feed, and syncs to Spotify and Apple Podcasts. Zero manual production steps after the script is approved.

  • Fully AI-native production pipeline. Topic prompt goes in, a published episode comes out, with no manual audio editing or publishing steps.
  • Dual-voice synthesis using OpenAI tts-1-hd with sage and echo voices; FFmpeg handles intro/outro assembly into the final MP3.
  • GitHub Actions orchestrates S3 upload, RSS feed regeneration, and distribution sync to Spotify and Apple Podcasts on every approved script.
  • Latest episode, EP004, "The Money Lifecycle: Two Seconds at the Register," shipped through the same pipeline as episode one, no hand-holding required.
Why I built this

I wanted to explore what a fully AI-native content pipeline could look like, not just using AI as a writing aid, but as the core production engine. Prompted: Tech Talks is a podcast where listeners submit tech topics as prompts, and Claude generates the full script. The result gets synthesized into dual-voice audio and published automatically via CI/CD. It is part personal experiment, part proof of concept for AI-generated educational content.

P05
Pokemon Tuxedo
pokemon-tuxedo · Paused, v0.1 on hold · Updated Apr 19, 2026

A Pokemon FireRed ROM hack that focuses on dynamic level scaling, multi-region progression, and a long list of quality-of-life improvements for replayability.

  • Covers Kanto, Johto, Hoenn, and Sinnoh progression with level caps, open exploration in later regions, and more forgiving HM and evolution mechanics.
  • Backed by 5,426+ property-based tests.
  • The remaining work is the integration layer: decomp integration, custom sprite assets, and regional map content.
Why I built this

I have always loved Pokemon, especially the nostalgia around the games I played growing up. Following the Pokemon ROM hack community inspired me to try building one myself, and this project has been a fun, heavily vibe-coded way to make something outside my usual language comfort zone.

P06
Personal Website
website · Production live · Updated May 12, 2026

The site you are looking at now. It is a simple home base for who I am, what I work on, and how people can reach me, with infrastructure and deployment wired so updates are easy to ship.

  • Static HTML with a shared design system: dark theme, Instrument Serif headlines, JetBrains Mono accents.
  • Production AWS resources modeled in Terraform with local modules for CloudFront, S3, Route 53, ACM, and the GitHub OIDC deploy role.
  • Tag pushes deploy to production through GitHub Actions with OIDC instead of long-lived AWS secrets.
Why I built this

This is just a simple website to showcase what I do, highlight some of my projects, and give people a way to work with me. Personal brand matters a lot now, and I wanted a place on the internet that felt like mine.