Experience

2011- New Relic

Senior Engineer

  • Currently working with Java, C/C++, PHP, .NET, smatterings of Ruby and all sorts of fun stuff.

1999-2011 Freelance Software Developer

Self-employed

  • Backend development of the web site for the 2005 Australian Children’s Film Festival using Ruby on Rails 1.0 and MySQL
  • Booking management system in C#/ASP.NET and MS SQL Server 2000 for MapInfo Australia’s training courses.
  • Web site and backend maintenance for a number of clients, primarily using PHP.

2007-2011 Shine Technologies

Senior Consultant

  • On-site consulting for large Australian corporate and government clients, including Sensis, NAB, Suncorp and the Victorian Department of Primary Industries.
  • Assisted with the development of a billing validation product for the energy industry.
  • Lead a small team of 3 developers on an intranet replatforming project for Sensis, porting a proprietary Java CMS to Joomla! 1.6.
  • Wrote a node.js template engine that compiled a custom HTML template language to JavaScript.
  • Java/J2EE, Ruby/Rails, Oracle, MySQL, Python, Bash and more.

2005-2007 Web Developer

SpeakOut Creative (aka Human)

  • Deliver custom content managed web sites using PHP (Drupal) and Ruby on Rails.
  • Integrate web sites and services with SpeakOut’s SMS gateway using PHP, Ruby and Python.
  • C /COM programming of a custom Microsoft Outlook add-in.
  • Assisted with the administration of a dedicated Linux server.

2004-2005 Programmer

MU Systems/NetOptions

  • Part time position working within a small team to deliver PHP web applications using a custom internal framework.

Open Source Contributions

Python

  • Implemented the try/except/finally syntax introduced in Python 2.5.
  • Credited with the implementation of PyObject-to-AST conversion and support for passing AST objects to the compile() function in Python 2.6/3.0.
  • Currently working towards an AST-level optimizer for Python 2.7/3.1
  • Various other minor patches

Debian

I maintain the hiredis and Cap’n Proto packages for the Debian project. I’m working on packaging the spin model checker.

Other Projects

Lesser bug fixes and code contributions to the various open source projects, including:

  • Rust - various minor bug fixes to the compiler + build system.
  • PostgreSQL — the track_active_query_size GUC.
  • PyGtkSourceView — an initial patch to allow mutable SourceTagStyles
  • Ruby on Rails — various fixes and a plugin to fix the screwy semantics of URLEncodedPairParser.
  • nodebug fix for the http module, feature tweak for the querystring module
  • Mitter — several usability enhancements for the GTK front end

Public Speaking

RubyConf 2012

OSCON 2012

OSCON Java 2011

  • Open Source Compiler Construction for the JVM [details]

Linux.conf.au 2011

Open Source Developer’s Conference 2010

  • Hugging Abstract Syntax Trees: A Pythonic Love Story [slides] [video]
  • Open Source in Big Business: A Consulting Perspective [slides]

Open Source Developer’s Conference 2009

  • On Scala (Or: Why Static Typing Doesn’t Have To Suck)

Open Source Developer’s Conference 2008

Skills

  • Java
  • Python
  • C/C++
  • Ruby
  • PHP
  • Bash

Education