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



  • AtariController
    An Arduino library for reading Atari 2600 controllers.
  • Chordious
    Fretboard diagram generator for fretted stringed instruments.
  • Mzinga
    An AI player for the board game Hive.
  • SegaController
    An Arduino library for reading Sega Genesis controllers.


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 the 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 my first actual programming classes. I learned C++, but by graduation I’d taken 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 learned BASIC because Zanzibar’s curriculum required that I teach it.

After my volunteer service I picked up Python, which became my go-to for quick projects and prototypes. When I started working for Microsoft I took up C#, C++ (again), Lua, Javascript, and SQL, all of which I use regularly at work.

These days I generally stick to C# for new projects.