A narrative-driven game currently in development.
I design, implement, and maintain scripted events, quests, and other narrative content. More details will be available upon the game's release.
Shop and live-ops features for one of the world's most-played digital card games.
I spearheaded the implementation of Battle-Ready Decks in the store, a first for the game, offering players curated decks optimized for the latest expansion. Developed using data from hundreds of thousands of play sessions, these decks enhance players' collections with competitive, viable options.
I created a dynamic system to display in-game messages triggered by server events. The prefab could show a variety of icons and products, with a button allowing players to view them directly in the shop.
Multiplayer VR baseball and softball training used by athletes at every level.
Team Training offers an immersive multiplayer experience for up to 100 players, engaging in exciting batting practice battles across diverse game modes. Guided by a dedicated coach, each session is interactive, providing invaluable instructional feedback and lively, energizing commentary.
Exhibition Mode presents a full-inning challenge where players face a weekly rotation of pitchers. These skilled pitchers are brought to life through AI-generated images that faithfully represent their real-world counterparts, providing an immersive and dynamic experience.
This feature marked the debut of a groundbreaking multiplayer experience. Users utilize the WIN Reality app to send pitches into a VR environment, allowing players to face these pitches and swing away in immersive virtual reality scenarios.
Within the main menu, players can access a global leaderboard showcasing user stats for the current month. This dynamic panel cycles through, highlighting each player along with additional statistics, offering an engaging and comprehensive view of the gaming community's achievements.
I designed and implemented a music player using Feed.fm's API, offering players station choices with skip, play/pause, and volume controls. Players could interact via the menu using the Quest controller or in the game field with their bat.
I developed a system allowing the creation of various bat types, such as wood or metal, each with unique mesh designs and specific sound effects for a more immersive experience.
A selection of my latest side projects and experiments. More on GitHub.
A daily dish-guessing game set in the golden age of diners. Players get six attempts to name the day's special, with feedback drawn from shared ingredients and attributes (country, course, temperature, and protein) rather than letter positions. Each miss reveals another rung of a five-clue ladder, and results share as emoji grids that give nothing away.
The game ships 283 dishes and 1,415 authored clues across three play modes: daily, archive, and random. An admin CMS with content integrity checks backs the content, and a live analytics dashboard tracks difficulty and engagement. A deterministic fallback keeps the daily puzzle consistent across time zones. The whole thing runs as a single Cloudflare Worker with a React 19 frontend, Hono API, and D1 for storage, plus optional Discord Activity support.
A Windows utility for clearing out messy folders. Right-click any folder in Explorer, pick "Clean this folder," and review its contents one file at a time. Every file opens in a live preview as you reach it, whether that's an image, a PDF, or a video or audio track you can scrub through, so you can judge each one without leaving the app and flag it keep, reject, or skip. A folder that would take an hour of manual sorting takes a few minutes of swiping.
The whole triage loop runs off the arrow keys, so a folder can be cleared without touching the mouse, and quick rename with automatic collision numbering handles tidying along the way. Nothing is destructive: rejects route to the Recycle Bin rather than being erased, and renames, deletes, and entire commits all undo in one keystroke. Filter and sort by name, size, date, or type before you start, then review both piles before committing. Built on .NET 8 for Windows 10 and 11, MIT licensed, and installs per user with no admin rights required.
Drag with the mouse or fly with the keyboard: ← reject · → keep · ↓ skip · Ctrl+Z undo.
Marketing site for a Pittsburgh drone photography company, built with Astro and Cloudflare Pages.
View repo →Card database and schema for DraftGame, a fast-paced card game where drafting is the gameplay.
View repo →Backfills location history by generating a GPX track from a group of geotagged photos.
View repo →