~/projects · git log
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.