Projects

Things I have shipped. Club operations software, a booking product used by real customers, games, and systems coursework.

Product

ClubHub

Python, Streamlit, SQLite
ClubHub admin dashboard with prospect, member, event, and check-in totals
ClubHub member portal with a prospect intake form

A club operations app with two Streamlit surfaces: an admin dashboard and a member portal. SQLite stores prospects, members, events, RSVPs, and attendance as separate tables, so interest can be collected before someone becomes a member. Admins convert prospects, manage events, and track check-ins; members RSVP and check in themselves. I ran it for three campus clubs, including Kappa Sigma.

GitHub

Lizard Repairs booking platform

React, PayPal
Archived Lizard Repairs homepage with booking links

Built and maintained the customer-facing site for Lizard Repairs, the electronics repair business I ran for six years. The original React app handled booking, PayPal billing, and status updates so intake was not a pile of texts and spreadsheets. After I stopped taking repairs I migrated the site to Wix so it would stay online without paying for the custom domain.

Archived site (Wix)

Apps

NGames

Flutter, Dart, Firebase

A cross-platform mobile collection of Wordle, Hangman, and Snake with Material Design 3, dark/light themes, saved progress, a high-score leaderboard, and Firebase auth.

GitHub

Systems

Terminal Tetris

C, ncurses, Make
Terminal Tetris after a game, with the board, score, and next-piece panel

A cross-platform Tetris clone that runs in the terminal. It implements seven-bag randomization, a ghost piece, lock delay, HUD animations, and automated tests wired through Make.

GitHub

CLI

Morse-code translator

Python
Morse translator with Hello World in English and the matching Morse in the pane below

A full-screen terminal UI with two live panes: type English or Morse and the other side updates instantly. Supports letters, digits, and common punctuation.

GitHub

Algorithms

“Akari” AI constraint solver

C++, backtracking

Places bulbs for Akari (Light Up) puzzles with backtracking and aggressive pruning. The solver validates inputs and reports conflicting constraints instead of failing silently.