Software engineer building quality software that I would actually want to use.
Each page walks through what I built, why I built it that way, and how it turned out.

A virtual tabletop I built for my D&D group. Live combat engine, player companions synced over websockets, an AI story co-writer, and a map builder. One SQLite file runs the whole campaign.

A real business my fiancée and I run. I built the whole web presence by hand: the site, the SEO, the structured data, the ads. Every decision here had a revenue consequence.

Three bots that trade crypto, stocks, and sports props. They all follow the same rule: the risk manager gets the final say, and nothing touches real money until it proves itself on paper.
My personal AI assistant. A SwiftUI app backed by a TypeScript platform running an agent loop with 25+ real tools. It reads my email, manages my calendar, and makes actual phone calls.
I'm Andrew, a software engineer in Southern California. I enjoy building things that I actually use. That's how I wound up with three trading bots, a virtual tabletop my D&D group actually plays on every week, an AI assistant that reads my email and makes phone calls, and a sticker vending machine rental business that I run with my fiancée.
Professionally, I've spent 7+ years shipping mobile apps to millions of users. I was the founding mobile engineer at StellarFi, where I took the app from an empty repo to launch on both app stores and kept it above 99.7% crash free while growing the mobile team. Before that I was at FanDuel building FoxBet Super 6, a sports prediction game that grew past 6 million users. I work in Flutter, React Native, Swift, and Kotlin, and I've shipped everything from Apple Pay and Google Pay wallet provisioning to native SDKs that partner banks embed in their own apps.
Most of what's on this site isn't a demo. It runs every day with real money, real customers, or real players on the line, so I care a lot about the unglamorous stuff: risk limits, logging, backups, and code quality. Take a look around, sit by the fire and stay a while.