Asheville Monday Night Contra Dance
A modern community website and admin dashboard that replaced an outdated Wix site, so organizers can keep everything current without touching code.
Work
Featured projects have full case studies. Earlier work is kept here as a record of how I got here.
A modern community website and admin dashboard that replaced an outdated Wix site, so organizers can keep everything current without touching code.
A browser-based disease-evolution strategy game: design a pathogen, spread it across a living world map and evolve faster than governments can respond.
Calculators, guides and community publishing for Diablo I, Hellfire and DevilutionX, making the game's hidden math easy to check.
Two related experiments in conversational AI: a Discord bot that speaks in its owner's style, and a separate project on privacy-aware identity and memory infrastructure.

A planned persistent, browser-based fantasy world. The game is still being designed; its development site is real, built in WordPress and Elementor with an MCP-assisted agentic workflow.
AutoHotkey scripts that cut a repetitive QuickBooks inventory review from a 19-keystroke sequence to two.
While working in finance, I was assigned to review thousands of QuickBooks Desktop inventory items and archive any unused for over a year. QuickBooks has weak bulk editing, and after a few dozen manual entries the repetition was obvious. With my manager's approval, I wrote AutoHotkey scripts that reduced inspecting and archiving each item from 19 keystrokes to two: one to inspect, one to archive. Seeing how much time such a simple tool saved was one of the reasons I moved into software development.

A long-running cooperative StarCraft dungeon crawler with 21 playable heroes, randomized encounters and five difficulty levels.
Up to six players fight through five increasingly difficult levels of randomly generated enemies, growing their heroes along the way. Each of the 21 heroes has unique abilities and upgrade paths, and victories award codes that unlock bonus features in later games. The series has grown across four releases (UV1–UV4), each adding mechanics and balance changes shaped by player feedback, and has an active community with its own Discord and wiki.
Paid freelance work reviving a legacy StarCraft map: recovering lost code context, refactoring, adding features and fixing long-standing bugs.
The latest version of the map had been stripped of all comments and notes. I recovered that context from older versions so the code was readable again, then reworked nearly every system, added new features and mechanics, and fixed long-standing bugs. The map's league still plays the updated version in organized games.

A PHP/MySQL recipe-sharing application built as my school capstone, with accounts, ratings, image uploads and an object-oriented codebase.
Built with object-oriented PHP and a structured relational schema: user accounts, recipe creation and rating, image handling, and dynamic recipe pages built from reusable components.
An AutoHotkey toolkit that reads game state and runs optimized progression loops, built within the game's explicit support for scripting.
Conditional flows, state detection and dynamic UI interaction let the toolkit adapt as the game changes, including a lightweight autonomous loop for rebirth cycles. It was refined over many iterations for reliable long-running operation.

Three school projects that trace my path from procedural PHP to object-oriented applications with authentication and role-based access.
The Southern Appalachian Salamanders database introduced procedural PHP/MySQL CRUD. The WNC Birds database rebuilt that foundation in object-oriented PHP with authentication, role-based permissions and an admin dashboard. The Name Sorter parses and analyzes raw name lists with validation and frequency counts.
Nothing in this category yet.