I'm a New Yorker who builds tools for small problems in my life, and sometimes just for things I think are cool.

Everything here is real and running. Read how I built each one, then go poke at it.

The workshop

Guest of Honor's board mid-game: six categories of 200 to 1000 point clues, a few already played, and three team scores
In progress

Guest of Honor

A party trivia game themed around one person's life, played from everyone's phones.

My girlfriend made me a trivia board about my life for my birthday, with real trivia in categories from my life. This lets anyone make one: an agent interviews you about the guest of honor and writes fact-checked clues. The game is live; the agent is next.

Stack
TypeScript · React · WebSockets · Lambda · DynamoDB · Claude
Flag Football Simulator's play viewer: a Cover 2 defense with its zone landmarks against a gunslinger offense, mid-play
Live

Flag Football Simulator

Finds the best defense, rusher, and lineup for my rec flag football team against the kind of team we're playing.

Our defense argues every week about man or zone and who should rush. So I built a simulator of our 7v7 league that plays thousands of snaps and settles it.

Stack
TypeScript · React · Web Worker · CloudFront
Trade Ideator showing two trade ideas for one of my leagues, each with both sides, lineup gains, and the reasons behind it
Live

Trade Ideator

Trades that help my fantasy lineup and still make sense for the other manager.

A trade calculator tells me two packages are worth about the same, not whether my lineup gets better or who has the hole my bench can fill. So this looks at my whole Sleeper league and brings me the trades worth sending.

Stack
TypeScript · React · Sleeper · FantasyCalc · CloudFront
Epic Weekend Planner map of the Northeast with Hunter Mountain's snowfall and trip links from NYC
Live

Epic Weekend Planner

Where it's snowing on the Epic Pass, and the trip from NYC in one click.

I paid for an Epic Pass and still talk myself out of most ski weekends, because planning one means six tabs. So it's one map: pick a snowy mountain and the flights, hotel, drive, and rental car are already filled in.

Stack
JavaScript · Leaflet · Open-Meteo · CloudFront
The Live page of this site: latest run, latest flag football game, Citi Bike numbers, and GitHub activity
You're on it

This site

One home for everything I build, plus a Live page of my week.

It stitches my separately deployed projects onto one domain at the edge, and the Live page refreshes itself every 15 minutes from five sources.

Stack
CloudFront · S3 · Lambda · CDK
Citi Bike Tides map of New York with stations gaining bikes in blue and losing bikes in red
Live

Citi Bike Tides

Where New York's bikes drain out and pile up, hour by hour.

Sleep in, and every bike near you is gone. Ride home at six, and there's nowhere to dock. I love data, so I wanted to actually see the pattern.

Stack
Python Lambda · S3 · CloudFront · CDK
Park It map of the Upper West Side with open dock counts at each station
In progress

Park It

Open Citi Bike docks at a glance, without fiddling mid-ride.

Pulling out my phone mid-ride to dig through the Citi Bike app isn't safe. Now when I'm rolling up home, one glance shows open docks at my favorite and nearby stations.

Stack
SwiftUI · WidgetKit · App Intents
Friends only
Password

Volo Drop-in Alerts

A ping the moment a flag football drop-in spot opens.

I want to play as much flag football as possible, and there was no way to hear when a spot opens up, so I built the alert. Yes, it's password protected. The whole advantage is that everyone else doesn't get it. 😈

Stack
Python Lambda · DynamoDB · SNS · CDK
Tomo map of Central Park showing friends' upcoming runs with distance and time
App Store

Tomo

Plan runs with friends, and find runners wherever you land.

My college teammates at ASU and I always wanted an app for landing in a new town and having someone to run with. So we built it: see friends' planned runs on a map, join one, or meet runners nearby.

Stack
React Native · Expo · Firebase