The projector you must not unplug
Why my projector now goes to sleep instead of losing power, and the guard that catches it waking up alone.
Stories
Things I've built for fun, all public on GitHub. Some run in production at my house; one plays music in your browser. Below the projects are the parts I'd tell you about over an NA beer.
Project
One button picks a mode (movie, game, sports, music), and the house sets the receiver, launches the app, sets the lights and puts matching artwork on a wall dashboard. About 140 tests, run in CI on every commit, because every commit is a deploy.
Project
A FastAPI service that says when to leave for the train. It plans SEPTA Regional Rail trips with transfers, tracks live delays, and sends a weekday push with the train home and the next ones that still connect. It keeps following both legs until the connecting train leaves, pushing again only if things get worse.
Project
Turns today's forecast into a short piece of music. Each hour gets two beats: temperature shapes the melody, cloud and rain pick the scale, air pressure picks the key, wind sets the tempo, and the climate picks the instruments. The sky plays too, from moonrise bells to meteor showers. Music-theory rules keep it in tune, and the same place and day always gives the same song, with liner notes explaining why.
Why my projector now goes to sleep instead of losing power, and the guard that catches it waking up alone.
How WeatherTunes maps an hourly forecast onto scale, key, tempo and instruments, and keeps it all in tune.
WeatherTunes crackled on my phone. Two fixes went after symptoms; the third stopped running the synths live at all.
Celebrating an Eagles touchdown on twelve Zigbee bulbs without flooding the mesh: hold the color, move only the brightness.
SEPTA's API quirks, planning a two-line trip, and the rule that silence is never the answer.
Tuning which-way-are-you-going lighting on the basement stairs against real sensor history.
School and early-career projects, kept for nostalgia.
A native Android app I worked on as an intern and new grad: bug fixes, framework upgrades, data validation and error handling, on a small team using git and Agile.
A Unity/C# remake of Slime Volleyball plus slime dodgeball and soccer, built with two classmates. Probably the most fun game I've made. GitHub
A Java implementation of RSA using BigInteger that encrypts and decrypts messages. GitHub