Completed Projects


A .NET client library for interacting with the mountebank testing tool. Mountebank is a tool that allows you to create “imposters” which act as over-the-wire test doubles which can intercept network requests and return mocked responses. My library is meant to provide an easy way for .NET developers to create and manage these imposters. I’ve worked on it off and on since February 2016 with a handful of other contributors. It is my first successful open source project having been downloaded over 60 thousand times on and being mentioned in Testing Microservices with Mountebank by Brandon Byars (the creator of mountebank).


A small Git implementation written in Go. I was inspired by similar projects such as gitlet.js and pygit. This was my first significant Go project and helped me learn more about the language as well as Git internals.


A Wikipedia crawler and visualization tool built with Akka.NET in order to learn more about Actors. Using the web interface a user can crawl that page’s links and generate a graph of related topics.


A simple “Simon” game created using an Arduino Mega2560. This was my first electronics project and taught me the basics of how to connect various components and implement the game’s simple state machine.


An IRC client written in C# for a school project my senior year at MSOE.

In Progress


A Lisp interpreter written in F#. This is my first F# project and is especially ambitious since I am attempting to learn Common Lisp at the same time as I implement the interpreter. Although I am using the FParsec library for parsing in the project, I started off by learning all about parser combinators from Scott Wlaschin’s F# for fun and profit articles. Parsing the AST is complete and the interpreter itself is able to execute a few very simple statements. I am guessing it will be completely rewritten a few times as I learn more about Lisp.


A CHIP-8 emulator written in Rust. This is my first Rust project and also my first time attempting to build any sort of emulator. Most of the instructions are implemented, but I am still having issues with the display.


A minimal SQLite-like database written in C# in order to learn more about database internals. This was a topic that I didn’t have a great understanding of and figured the best way to learn it would be to attempt to recreate it. This was also my first experience parsing text using a handwritten recursive descent parser. Parsing of queries is complete, but execution is a complete work in progress.