Character Sheet (3.5e) |
Mobile Application |
June 2014 – May 2016
|
A character sheet app for D&D 3.5 edition, built from scratch when no satisfactory option existed on the Play Store. This was my first Android project — a formative learning experience that led to over 50,000 installs. The original codebase was lost to a hard drive failure in 2015; the concept was later expanded into the 5e version listed below.
View on Google Play →
|
Salty Seagull |
Video Game |
September 2017 – December 2017
|
A multiplayer video game developed with one other programmer and two 3D artists. Players chose from four uniquely-textured seagulls, each competing to collect the most valuable beach treasure — ranging from diamonds to hot dogs — and deposit it in their nest before time ran out.
The game was showcased at the Undergraduate Research and Creative Achievement Day (URCAD) at UMBC, where it received enthusiastic feedback from attendees who enjoyed its competitive gameplay.
|
Pokémon AI Bot |
Web Scraper / AI |
September 2018 – October 2018
|
An automated bot for Pokémon Showdown, a competitive Pokémon battle simulator. The bot could log in, upload a team, find an opponent, and parse the full game state — including active Pokémon, opponent details, and available moves. Move selection was randomized with a bias toward attacking over switching.
During battles, the bot looked up each opponent Pokémon on Serebii to retrieve base stats and typing. The original goal was to feed this into a Q-learning algorithm, but the state space proved too large for that approach. A candidate for future revisiting.
|
| Raspberry Pi Game Console |
Hardware |
March 2019 – May 2019
|
|
A handheld game console built around a Raspberry Pi running RetroPie. The hardware work involved soldering buttons to a circuit board and wiring them to GPIO pins, which the Pi maps to directional inputs, action buttons, shoulder buttons, and a configurable hotkey. The hotkey is overloaded — for example, hotkey+up raises the volume and hotkey+down lowers it. The console is fully functional with a backlit 3.5" screen.
|
| Discord Bot |
Web Service |
March 2020 – Present
|
|
A custom bot for a private Discord server used by friends for gaming and general communication. Features include dice rolling, topic voting, randomized civilization drafts for Sid Meier's Civilization 5 & 6, reaction-based role assignment, subreddit post fetching, and automated daily programming challenge delivery via email parsing. Built in Node.js, utilizing web crawling, email parsing, and file I/O. Actively maintained as new feature requests come in.
|
Focus App |
Mobile Application |
May 2020
|
A productivity app that encourages staying on task by sending a notification every N seconds while you are away from it. The UI is a simple upward-counting stopwatch, creating a subtle incentive to avoid social media distractions.
View on Google Play →
|
Character Sheet (5e) |
Mobile Application |
May 2021 – August 2021
|
A modernized character sheet for Dungeons & Dragons 5th Edition. Built with OOP principles — each character is a serializable object persisted cleanly to the device. Addresses common pain points surfaced in Play Store reviews of the original 3.5e app, and adds a sharing flow via email or any SEND_TO intent-enabled app. Future plans include 3.5e compatibility to phase out the original app, and a streamlined onboarding flow.
View on Google Play →
|
Pokémon WatchFace & Tile |
WearOS Application |
May 2022 – November 2022
|
A WearOS watch face and tile that gamifies daily step tracking with Pokémon. A random egg is displayed each day and gains experience as the user walks — every 100 steps counts as a level, with most Pokémon needing level 50 to fully evolve. After noticing battery concerns with the watch face approach, the feature was migrated to a Tile, providing experience with a meaningfully different set of builder APIs compared to traditional layouts or Compose functions.
Art assets are credited in the repository (not original work).
View on GitHub →
|
RuneScape Stat Widget |
Mobile Application |
July 2024 – August 2024
|
|
Built as an exploration of foldable Android cover-screen development after purchasing a foldable phone. The app displays Old School RuneScape character stats by fetching from the game's public API, caching the response for performance, and refreshing every 4 hours. A home-screen widget uses Broadcast Listeners and Receivers to push UI updates every 30 minutes.
|
Digimon TCG App |
Mobile Application |
April 2023 – Current
|
A collection management and deck-building app for the Digimon trading card game, built after finding no adequate option on the Play Store. The app syncs with a card database that updates periodically with new sets. Users can scan physical cards using the phone's camera to build a digital collection catalog, then use it to plan and track decks.
Built with MVI architecture, Jetpack Compose, and Kotlin. Integrated with a Raspberry Pi server that uses OpenCV and machine learning to identify cards from camera input. A planned next step is an automated card-feeding mechanism to eliminate manual per-card scanning.
I heavily utilized AI through the development of this app. I had all of the original UI I built in 2023/2024 rewritten with all of Material3 guidelines in mind for the latest UI/UX standards. I also used it to help set up a database for the cards, add better tracking of price fluctuations, and identify several potential bugs the old code presented.
|