I've been developing software since I was a teenager learning to code in
QBasic,
Turbo Pascal, and
HyperCard.
In 2009, I earned a Master of Science in Computer Science.
Over the following years, I've become a generalist, tackling projects ranging from
embedded Linux systems to reverse engineering Windows applications to the web. This
section highlights my work on open source projects.
Projects I've created and (in some cases) actively maintain.
Fang
Home page | GitHub
This easy to use news reader works on Windows, Mac, and Linux. The UI is custom
QML. All parsing of RSS/Atom/Sitemap/JSON documents is performed in the C++ layer
for maximum performance.
- Tech
- C++, Qt, QML, CEF, WebSocket, JavaScript, SQLite, RSS, XML, HTML,
JSON, CSS, GitHub Actions
- Platforms
- Windows, macOS, Linux, Android (experimental)
beatfinder
Demo | GitHub | npm
A simple JavaScript library that stitches together some other JavaScript
libraries to react to live music via an event system. Geared toward developers making HTML5 visualizations for live music, raves, etc. Works best with electronic beats such as EDM, electronica, house, hip hop, etc. All processing is performed locally on-device.
- Tech
- JavaScript, GitHub Actions, npm
- Platforms
- Web
selenium-webext-bridge
GitHub | npm
This JavaScript library is aimed at engineers developing Firefox extensions who
wish to verify them with Selenium tests. This grew out of a Firefox extension I
was working on, as there was no obvious way for Selenium to deal with Firefox tabs or easily
communicate with extensions once they were installed.
- Tech
- JavaScript, Selenium, Firefox, WebExtension, GitHub Actions, npm
- Platforms
- Windows, macOS, Linux
QMLRearrangeableTreeView
GitHub
QML user interface for a drag and drop rearrangeable list with one-level deep folders.
Supports both desktop and mobile touch screens. Example provided in both pure QML for rapid prototyping as well as a C++ backend.
- Tech
- QML, Qt, C++, JavaScript
- Platforms
- Windows, macOS, Linux, Android, iOS
QSingleInstanceCheck
GitHub
Originally developed for Fang, this simple C++ header-only library can be used
to not only ensure that one and only one instance of your app is running, but also
send a signal to the original instance. In Fang, this signal is primarily used on
Windows to show the app when it's been minimized to the system tray.
- Tech
- C++, Qt, shared memory, local socket/named pipe
- Platforms
- Windows, macOS, Linux
QAutoStart
GitHub
Also developed for Fang, this C++ library allows your Qt application to launch at
user login. Designed to be easy to use, with only a single line of code to enable or
disable the feature.
- Tech
- C++, Qt
- Platforms
- Windows, macOS, Linux
QWebDownload
GitHub
Simple Qt/C++ library for downloading content from the web (HTTP and HTTPS)
asynchronously with sensible defaults and retry options. Includes support for batch
downloads.
- Tech
- C++, Qt, HTTP
- Platforms
- Windows, macOS, Linux
Modipulate
GitHub
Tracker music library for playing music and responding to musical cues. Intended
to be used in video game development. Includes C and Lua bindings.
- Tech
- C++, PortAudio, Lua
- Platforms
- Windows, macOS, Linux
InjectCrash
GitHub
Windows command line utility to crash another process. Useful for testing crash
reporters.
- Tech
- C++, Win32
- Platforms
- Windows
Projects I have contributed to, either as an employee or volunteer.
Cardo
Home page | GitHub
Desktop podcast client. Contributed additional search engines, bug fixes, and
translations. Officially a project collaborator as of March 2026.
- Tech
- TypeScript, React, Tauri, Tailwind
- Platforms
- Windows, macOS, Linux
Jellyfin Desktop
GitHub
Desktop client for the Jellyfin Media System
(deprecated version). Contributed build and setup scripts and bug fixes.
- Tech
- C++, Qt, QML
- Platforms
- Windows, macOS, Linux
Geary
Home page | Wikipedia | GitLab
Easy to use email client for GNOME and compatible Linux desktops.
Contributed initial UI, HTML email support, and parts of IMAP backend as an employee of
the Yorba Foundation.
- Tech
- Vala, GTK+, SQLite, IMAP, SMTP
- Platforms
- Linux
Shotwell
Home page | Wikipedia | GitLab
Easy to use photo manager for GNOME and compatible Linux desktops.
Contributed RAW+JPEG support, custom MOV parser, and search UI as an employee of the
Yorba Foundation.
- Tech
- Vala, GTK+, GStreamer, SQLite
- Platforms
- Linux
Gallery for Ubuntu Touch
Home page | GitLab
Photo gallery app commissioned by Canonical for Ubuntu Phone, intended to ship with the
(unreleased) Ubuntu Edge handset.
Contributed SQLite storage backend and iterated on UI as an employee of the Yorba Foundation.
- Tech
- C++, Qt, QML, JavaScript, SQLite
- Platforms
- Linux