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!

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.