Personal projects that I consider noteworthy, in some manner or other, are described below:


This site is one of my ongoing projects. I've been maintaining it in some fashion since the mid 20-aughts. It's an example of various things, many not so technically interesting. Some details can be found in the About > The site page. The interesting pieces are likely to show up in Blog > Categories > meta.


Magic: the Gathering Spreadsheet Manager

Magic: the Gathering Spreadsheet Manager (mtg-ssm) is a command line tool, written in Python (3), that generates Excel spreadsheets for use in tracking Magic: the Gathering card collections. The tool can also update existing spreadsheets with new sets and card information (preserving existing collection counts).

Card and set data is sourced from Scryfall.

The sheets are constructed in such a way that they can show you how many copies of a given card exist in other sets to ease search for cards in your collection. There are also limited import/export capabilities.

I eat my own dog food. An mtg-ssm generated spreadsheet, stored in Google Drive, is how I manage my Magic card collection.


GsMtgJson is the ancestor of mtg-ssm. It is a Google Apps Script project that produces Google Sheets for tracking Magic collections. The project is essentially dead at this point, having been supplanted by mtg-ssm.


While building GsMtgJson, I suffered a great deal of frustration while debugging and refactoring my code, due to a lack of a decent way to test what I was doing.

Solution: build a unit testing framework for Google Apps Scripts.

GwTest is a unit testing framework in the spirit of PyUnit, JUnit, and SUnit.

Novel Potentials for the Simulation of Polyethylene and other Polymeric Systems

To complete my undergraduate degree in Materials Science, I had to write a thesis. I chose to write my thesis on discrete element simulations of polymer chains. I was quite proud of the software that I built and work that I did.