This is a list of some of the things I've worked on. It includes side projects, games, experiments, and open-source projects. For my professional experience, see my LinkedIn profile instead. For more older or retired projects, see my BitBucket page.

Personal Fortune

Demo Soure
A quotations database server written in Rust.


A command-line passphrase generator written in Rust.

Number Namer

Demo Source
An Elm app that displays the names of large numbers as they might be spoken.

Catan Deck

Demo Source
A phone-portable deck of cards to replace the confoundedly fickle dice in Settlers of Catan.


Demo Source
A Card-counting tool built in with Elm.

Auto Sage

A de-make of Zach Gage's Sage Solitaire that does the card counting for you. Built with Rust and BearLibTerminal.


A deliberately minimal task-runner built with Rust.

By Sea, Land, or Air

source demo
A non-violent rogue-like game about piloting a vessel than can transform into a wagon, boat, or hot-air balloon. Written for the 2019 Seven Day Roguelike Challenge .

Celaut and Celaut-Explorer

source demo
A cellular automaton written in Rust inspired by @lorenschmidt . In addition to the automaton itself, there's a visualizer written in TypeScript and Rust.

Ballistic Smashbing

source demo
A Breakout-like game written in Rust that cross-compiles to native code and WebAssembly.

Divarema, the didactic vanity register machine

An an interpreter that implements an abstract Random Access Machine (described in Cook and Reckhow, 1973 ) implemented in Rust.


source demo
A puzzle game about hacking democracy built with Elm and GitHub pages.


source demo
Because clapping in tweets is for everyone…

ABL Mode

An Emacs major mode for editing Progress OpenEdge/ABL files.


I worked towards an MSc at Dalhousie University under the supervision of Dr. Randall Martin . Before I dropped out, I was working on using the GEOS-Chem Adjoint Model to study the changes in emissions of black carbon aerosols over North America during the 1990s and early 2000s.


source demo
A Clojurescript/Om implementation of Tic-Tac-Toe.


source demo
A Clojurescript/Om clone of 2048.


A recursive-descent parser for a markup language in the style of Haml replacing Ruby with Python. Also a vivid illustration of "beginner expert" syndrome.