A sticker of Lilia Roo typing furiously on the keyboard of an iMac G3. The keys are flying off the keyboard!

Sticker by Recurrent


Non-workplace software projects I've been notably involved with are listed below. There are unlisted projects I've contributed to too, but omitted due to being minor contributions like a single bug fix.

Active projects

I am either actively maintaining these projects or planning on revisiting them at some point.


Beaver browsing SDF's Gopher server

Beaver is a GTK4-based Gopher client written in C. It supports graphical navigation of Gopher menus and maintains a per-session history. Archives, images, documents, audio, and other files are opened in the user's default application for that file type, leaving the main window available for further browsing.

License: GPLv3+

Calmira Reborn

Desktop of Calmira Reborn

Calmira Reborn is a Windows 9x-inspired shell for Windows 3.1, including support for long filenames. It is a continuation of the old Calmira line of projects, picking up where the previous authors left off, mainly in the form of bug fixes. I use it on some old computers in my collection that best run 16-bit Windows for their operating systems.

License: GPLv2+ for the shell, public domain for the component library


helparchive displaying a list of documents relating to Windows 3.1 and Windows for Workgroups

helparchive is an archive of Microsoft's old and now-inaccessible KnowledgeBase articles. These articles are presented in a lightweight manner that degrades gracefully on legacy browsers with little to no CSS support. Multiple versions of each article are saved, but the most recent version is shown by default. Administrator tools are provided to help import documents and manage the quality of the archive.

License: AGPLv3+ for the interface, others for the documents within


Placing a location pin for a location-based poll on PollWhere

PollWhere is a web service for creating location-based polls without requiring any account registration. Creating a poll is as simple as drawing a bounding box on a map of the world; anyone with the poll link can then cast a vote by dropping a pin within that box. Users may recast their vote at any time, without voting twice.

License: AGPLv3+ for the service, ODbL for the map


The start of the chat directory of sewifurs.org

sewifurs.org is a chat directory, photo gallery, event calendar, and organization tool for the furries of southeastern Wisconsin and nearby areas. The website and an accompanying Telegram bot work together to better unite the local furry community.

License: AGPLv3+ except for chat icons

Assisted projects

I do not own any of these projects, but I have made significant contributions to them.


Introduction text for Bonfire

Bonfire is a federated social media application with a highly-pluggable architecture, featuring collaboration-focused tooling. During my junior year at the Milwaukee School of Engineering, my classmates and I built a distributed inventory system on top of Bonfire named Upcycle to assist Learn Deep Milwaukee, a local community-building organization, fulfill its mission at the schools it partners with.

License: AGPLv3+


Main page of Xfburn

Xfburn is a graphical optical media burning utility that is part of the greater Xfce project, which is a complete desktop environment for Linux and other Unix-like operating systems. After making several contributions, I volunteered to take over maintainership in 2022, fixing bugs and adding features such as burner hotplug support. The other members of the Xfce project have been fantastic to work with, and I hope to be able to keep contributing in the future.

License: GPLv2+

Inactive projects

Some of these projects are still running, but all are currently dormant or effectively archived. Though they may be asleep, their source code is still available for people to benefit from, and the lessons I learned from creating them have helped me become a more competent software engineer.

Azerite Power Leaderboard

Start of the leaderboard for Service With A Smile on Dalaran

The Azerite Power Leaderboard was a web service active during the Battle for Azeroth expansion of World of Warcraft. It generated a leaderboard of which characters in the guild had the highest Azerite Power level attained. It was the first web service I made that had been used by people I didn't know, and it taught me how to overcome the challenges of not violating the rate limit of a third-party API.

License: MIT


Help text for using msdn98extract

msdn98extract is a command-line utility for extracting Microsoft KnowledgeBase articles from the MSDN 98 and 1999 CDs. Its source code was adapted for part of the mass loader functionality of helparchive.

License: GPLv2+


Example of an article being rendered with the RTF page content model

mw-rtf is a MediaWiki extension to support Rich Text File as an alternative page content model. It is used on my Computers Wiki to allow me to directly turn old readmes in this format into articles with more-or-less okay presentation.

License: GPLv2+

Place Kangaroo

An example of a generated kangaroo-focused placeholder image

Place Kangaroo is a web service serving placeholder images with user-defined heights and widths. To add some soul into UI design, these placeholder images are created from pictures of kangaroos. This was a quick project for me to understand Rocket.

License: AGPLv3 for the service, Pexels License for the photos

Random Bat Service

The API usage instructions for the Random Bat Service

The Random Bat Service serves random public domain photos of bats. Users can upload their own bat images, which can then be added to the pool after screening. An API is available for other applications to use. This was a quick project for me to understand ASP.NET Core.

License: MIT for the service, public domain for the photos


The output of the stats command for turkbot

turkbot (and its accompanying, incomplete web interface) is a multipurpose Discord bot with several dozen functions. It was the project that taught me how to create software that spanned more than a single file, and it was the project that kickstarted my career, being a showcase item for my admission to college and interview for an internship. Many of its functions are now obsolete in the face of modern Discord bot facilities like slash commands and interactive messages, but it still stands as a living museum of how bots emulated these features in a time where they did not exist. Unfortunately, several of its functions no longer work as they depended on external web services that have since been taken offline.

License: MIT