I'm a programmer with artistic tendencies, who loves building things that make the world slightly more awesome. I particularly enjoy finding ways to add little bits of randomization to projects.
I studied Software Engineering at Auburn University, made a lot of personal projects, and am currently working on more projects + making a portfolio.
Infinite Pads
Musical instrument Android app that plays continuous lush pad sounds in any key.
Why
I needed to lead worship at church when the keyboard player couldn’t attend.
How
Java + Android SDK
Idea -> lots of tutorials + documentation -> implementation
Impact
500k+ downloads
Challenges
- Design - The finished app may look simple, but it took a lot of research, experimentation, and trial and error to arrive here.
- Audio processing - This app required processing audio data byte by byte to achieve perfect continuous playback + customizable high/lowpass filtering and fade in/out duration + smaller bundled audio files.
- Targeting different devices and newer android versions
- Google Play Store publishing requirements
- "Verify your identity" - I never met this requirement (because I didn't like my home address being on the Play Store) so Infinite Pads is now removed from the Play Store 🙁
Playtime Tracker
Play-time tracking tool for Anbernic RG35XX Plus handheld console.
Why
Since the days of the Nintendo Wii I’ve enjoyed seeing how much time I’ve put into each game I play. The RG35XX Plus doesn’t offer this natively, so after learning it was possible, I decided it would be a fun project to implement.
How
Python + Bash, Linux
Idea -> code examples -> implementation
Challenges
- Resource constraints - This is the first project I've made targeting something that isn't a PC or smartphone. I was surprised that rendering four resized PNGs wasn't instant.
- Primitive GUI development - Having to work with the lightweight Linux firmware installed on the device, the entire GUI is built from drawing shapes, text, and images with Python's PIL library.
Windows Dynamic Wallpaper
A personalization app for Windows that automatically changes the desktop background throughout the day based on your location.
Why
I wanted MacOS-style dynamic wallpapers on my laptop.
How
C#/.NET + WPF
Idea -> research, StackOverflow -> implementation
Challenges
- Designing a simple way to let users create their own dynamic wallpapers with a set of images
- Simplifying how the sun's position is associated with an image