
Project · Startup
A social app for finding volleyball players to connect, chat and play with, plus tools for hosts to run paid events.

VolleyNet helps volleyball players find people to play with and gives hosts the tools to run events. Players build a profile, connect with nearby players, chat, schedule games and keep live scores. Hosts create events with sign-ups, waivers and reminders through a paid host plan.
As co-founder and CTO, I was the main developer across the full stack: the Flutter app, the Supabase backend, payments and app store releases.

Profiles show position, gear and availability, plus how far away each player is.

Your own past, current and upcoming sessions in one place, filterable by type.

The host keeps score, and everyone in the game sees it update live.

Hosts run events with sign-ups, waivers and reminders on a monthly plan.
Problem
An analytics server connected to production was missing a security patch and was exploited.
What I did
Led the same-day response: rebuilt the timeline from logs, revoked access, rotated credentials and added alerts for new database connections.
Problem
The app needed two kinds of payments: a host subscription, and players paying hosts for real-world events, with refunds and payouts.
What I did
Used app store billing for the host plan and Stripe Connect for event payments, with fee splits, refunds, delayed payouts and protection against double charges.
Problem
Users must be able to fully delete their account, but their chats, connections and events are shared with other people.
What I did
Built one server-side delete that cleans up data across about 30 linked tables, anonymizes shared records, cancels the user's upcoming events and removes their photos.


Mobile app preserving the history of Idlewild, Michigan, a historic Black resort community. Visitors explore an illustrated map, read community-written stories and find events, while admins review every post.

Image classifier that predicts whether a road is dry, snowy, icy or mixed from a dashcam photo. Built in PyTorch for a machine learning course, using 9,000 images from the WinterSim Initiative.