Projects
Projects
These projects are listed in order from most recent/relevant/interesting to least/oldest, approximately. But I love all my children equally, I swear!
ConsoleArtisan
ConsoleArtisan is my retro console restoration shop. I fully restore NES, SNES, Genesis, Game Gear and Game Boy hardware, recap and repair boards, install mods, and sell each unit as the exact machine in the photos rather than as an interchangeable “an NES”. It also carries accessories, flash carts, and the hand-made USB-C power adapters and mod boards I build here on the bench.
Alongside the store there is a growing repair reference section and a set of install guides, written from work I have actually done on real boards, with photographs of the specific units. Retro repair information is scattered across forum posts and dead links, so I am trying to leave behind something durable and cited.
The site is a Hugo static site I host myself, deliberately. Shopify handles checkout and nothing else, through a first-party cart API rather than a drop-in widget, so the pages stay static and fast and I keep control of the content.
Bluffalo
Bluffalo is a cross-platform creative category word game where the most obscure answer wins. Everyone answers a category starting from a random letter, all the answers are revealed at once, and any player can dispute a borderline answer to trigger a fast group vote. A bold answer risks getting disputed and earns bonus points if it survives.
It is built in Flutter and Dart, with multiplayer running over a WebSocket server that doubles as a signaling relay. The repo pins an exact Flutter SDK version through wrapper scripts, so builds are reproducible and nobody needs a global Flutter install to hack on it. Old habits.
GS Tracker
GS Tracker is an open-source Girl Scout troop management app. It tracks the things a troop actually has to keep straight: the roster of girls and their caregivers, meeting attendance and what badge work got done, dues owed and paid, and the troop’s income and expenses.
The part I like most is the badge handling. It carries a catalog of 363+ official badges with their requirements, a progress grid showing every girl against every badge at a glance, and printable per-girl PDF booklets. It supports multiple troops with invite-based roles, and it runs either as a server or as a standalone desktop app via Tauri if you would rather not host anything.
healthdata.tools
healthdata.tools is an open-source data analysis platform geared towards empowering anyone to view and analyze the health data from their own devices and recognize patterns and useful insights. Initiated as a capstone project for Rose-Hulman students, the project is currently in progress. The production site (still in progress though) can be previewed here.
Jache
Jache (rhymes with cache) is an open-source TUI for interacting with Jira. A portmanteu of “Jira” and “Cache”, it is designed to be wicked fast and I was inspired to write it because the Jira website was, sadly, not so fast in my experience. Jache will aggressively download and cache all of your issues and metadata and even queries locally, and you can set the TTL and also control when to manually update issues. It allows you to search arbitrary JQL, put in usernames which it will search to try to smartly resolve, edit and transition issues, add comments, and even view complete issue history. The repo also comes with a suite of tools an AI can use to easily make calls to Jira (it’s a pretty thin wrapper but a good system, put your token in a file in your homedir and it can take it from there).
Jache was written entirely by Claude Code and as an experiment, I intentionally avoided reviewing *any* code. It is provided under the UNLICENSE with no warranties at all, I am not responsible if it lights your jira instance on fire, eats your hard drive, or reports you to the IRS for tax evasion.
ProtonFusion
ProtonFusion is a CLI tool that takes all your ProtonMail UI filters and consolidates them into optimized Sieve scripts.
The problem: If you’re like me, you’ve accumulated dozens (or hundreds) of filters over the years – mostly one-off rules like “move emails from alice@company.com to Work”, repeated for every sender. ProtonMail’s UI only lets you create them one at a time, and there’s no bulk editing or merging. Additionally, there is a hard limit of 250 active at one time, which I recently hit.
What it does: Scrapes your existing filters from the ProtonMail settings UI (via Playwright browser automation – there’s no public API for this), backs them up to timestamped JSON snapshots, merges redundant filters into consolidated Sieve rules (e.g., 50 “move to Work” filters become 1 Sieve rule with all 50 addresses), generates a clean Sieve script and uploads it to your account, disables (not deletes) the old UI filters so you can always roll back.
ProtonFusion has a safety-first design, nothing is ever deleted only disabled, most operations are local (only backup and sync touch your account - similar to git’s design). Existing hand-written sieve rules are preserved. Since there’s no ProtonMail filter API, it uses browser automation (Playwright + Chromium). This means it can break when ProtonMail updates their UI, though all the CSS selectors are in one file to make fixing easy. ProtonFusion is open source under the Unlicense (public domain).
NOTE: ProtonFusion was written entirely by Claude Code, with direction from me, a real human.
QBT Build Tool
QBT Build Tool is an open-source distributed build system and repository stitcher. QBT is tightly integrated with Git itself and uses a manifest file to stitch together a virtual monorepo view of a set of repositories similar to Amazon’s versionsets, but with no centralized database beyond a manifest file checked in to source control.
canitellmybosstofuckoff.com
canitellmybosstofuckoff.com is a light-hearted open-source tool to analyze retirement planning (I mean, for entertainment purposes only! Don’t sue me!).
Using Monte Carlo analysis, CITMBTFO takes your best guesses about how much money you currently have, how much you will need each year in retirement, what typical returns the market will yield, what inflation will be, and a few other variables, and calculates for you the probability that you will die poor and destitute (or not!). This is a must-try tool (game! for fun!) for anyone who dreams of early retirement when their startup IPOs and blows up 100x in value.
GlobalCopy.io
GlobalCopy.io is an open-source shared copy-buffer for all of your devices. Initiated as a capstone project for Rose-Hulman students, the project is currently unmaintained but I may still pick it up at some point in the future. The vision is that you could copy text on any device you own, then almost instantly paste from some other device and have the content transfer seemlessly, especially between phones and other devices. Additionally, since it would use end-to-end encryption, you could trust it to transfer passwords, keys, and other sensitive content and since it is open-source you could audit and prove that your data is safe and cannot be viewed by the person running the service.
One might imagine future features to add as well, such as a programmatic
interface you can use by copying special strings. For example, if you copied
the special string __hist(3) then instead of inserting that into the copy
buffer, it would instead consult the copy buffer’s history and place the 3rd
most recent content into your copy buffer, which you could immediately paste.
Some of these might even use homomorphic encryption to enable arbitrary things
like __hist(3) + __hist(4).
Stashbot Plugin
Stashbot is an open-source plugin for Atlassian Bitbucket (nee Stash). Stashbot lets you create CI jobs in an attached instance of Jenkins with a few clicks. This tool powered a significant fraction of the builds at Palantir around the time it was written, at times many hundreds of projects.
Though this project is no longer maintained, it is a valuable example of how CI can be both flexible and simple, as well as a great example of how Atlassian plugins worked circa 2014.
Stash Disapproval Plugin
Stash Disapproval Plugin is an open-source plugin for Atlassian Bitbucket (nee Stash). This plugin adds a button to all merge requests allowing users to “disapprove” of them. The disapproval blocks merging until the same individual (or an administrator) removes said disapproval.
It is telling to see that even a decade after I wrote this plugin many popular merge review workflows lack the ability to create a “hard block” to merge which only the blocker can remove.