Software

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

Projects

Active

  • Chordious
    Fretboard diagram generator for fretted stringed instruments.
  • Mzinga
    An AI player for the board game Hive.
  • RetroLove
    A collection of simple games built on the LÖVE game framework.
  • SegaController
    An Arduino library for reading Sega Genesis controllers.

Previous

See also my profiles on Launchpad and GitHub.

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 knowledge, and in the course of my career I’ve also had to learn C++/CX, Lua, Javascript, and T-SQL to name a few.