In my free time I enjoy working on personal software projects.


Active Development

  • Chordious
    Fretboard diagram generator for fretted stringed instruments.
  • Mzinga
    An AI player for the board game Hive.


See my profiles on GitHub and Launchpad for other smaller projects.

Coding History

I have been programming since age eight, when my dad made me sit down and read Programming C for Unix. I wrote C code using Metrowerks Code Warrior for the classic Macintosh; though I didn’t venture much further than some useless example apps.

Eventually I got tired of C and spent many of my formative years scripting simple games and animations in HyperTalk. By junior high I’d switched my focus to HTML and web design, but in high school I finally took actual computer science classes and learned C++. By graduation I decided to switch to coding in Java.

I used Java extensively throughout and after college, mostly to write games and gaming utilities. Meanwhile I also picked up MATLAB, PHP, and VBA. While serving in the Peace Corps I had to learn good ol’ BASIC because I was required to teach it.

After my volunteer service I was a strict Linux user, and after toying with Ruby I picked up Python as my go-to for personal projects. Then I started working for Microsoft and learned C#, and as I started using Windows at home C# became my go-to language for personal projects.

However, working at Microsoft means never being complacent in your technical knowledge. In the course of my career I’ve also had to learn C++/CX, Lua, JavaScript, T-SQL and more.