I've been programming professionally since 1997 and I've used a wide variety of languages in a wide variety of contexts.

I seem to use new languages all of the time and what's key in becoming productive as fast as possible is mapping the new language onto my considerable expertise. This allows me to decide where to find additional information and how to apply that information. Here are a few examples:

  • Should a given system be refactored, discarded, or grafted onto a new system?
  • Is this software written properly? Is the code of good quality? Does documentation need to be improved? Is it using industry standard practices?
  • Is code performance a problem? Is this a problem inherent in the language?┬áCan this code be profiled to improve performance?

Perl Camel


  • I've been programming in Perl since 1998.
  • I've designed Perl software as part of an international consortium of scientists (BioPerl)
  • My software ranges from software systems involving modules and Extreme Programming test-first frameworks to quick scripts for automation systems


  • I've been using PHP for years and I have about 2000 hours direct experience writing and modifying PHP for use in the Drupal Content Management System.
  • An example of my work drives the website I use for my Ironman training ( If you want to know about a person, see what they code in their spare time.
  • The core of this work (6000 lines of PHP, CSS, and JS) was peer-reviewed and approved as a full Drupal project called Garmin Connector.



  • Any developer requires relatively extensive knowlege of Javascript when developing anything on the Web.
  • I've been using jQuery since 2007 and it's my go-to library but I have experience in a number of other frameworks including YUI and Flot.


It's been several years since I've used Java but when I did I used the following technologies:
  • Enterprise Java Beans using the JBoss Application Server
  • The NetBeans IDE
  • Automation and scripting using Apache Ant