I am an independent software developer, working at a variety of clients around New Zealand, mostly in the Wellington area. I have more than 20 years of experience in the IT industry, spanning work on IBM mainframes and midrange systems, through to PCs, UNIX and internet platforms. I combine a strong understanding of computer science and software technology with a broad range of practical experience.

As a consultant, I'm able to understand client requirements in terms of business goals. I implement effective and timely solutions, but with an emphasis on quality. If I have a technology bias, it is towards open standards.

As a developer, I'm an excellent team leader and mentor for other programmers. I provide technical leadership in projects from inception through to post-production, so that I am responsible for architecture, implementation and acceptance. To create software that is useful I get involved with business people to understand their goals, working with them rather than merely for them.

To achieve quality in software, I advocate quality and agile IT practices. At several organizations I have implemented version control practices and automation across the build, test and deployment phases of the development lifecycle. I actively follow news, blogs, podcasts and conferences looking for better ways to develop software.

Currently my main area is enterprise development in Java, Groovy and Oracle, utilising a wide range of open source libraries and technologies.

I am also active in several software development communities. Since 2007 I have been an organizer of the Wellington Java User Group.




My most recent engagement has been a 7 year contracting job at Red Energy, a Melbourne-based Australian Energy Retailer. I worked as the team lead for the Applications Development team, and later as Manager - Applications Development. The team included five other developers and a business analyst.

We have developed a number of database, reporting, integration and web applications, using a combination of Java and Oracle technologies.

The largest of these applications is a market database and energy reconciliation system that supports many aspects of analysis and reporting for the business. Today it contains nearly 300 tables, with billions of rows of data.

Some of the challenges we've been dealing with are:

The technologies I've been using lately include:

2000-present Freelance programming and consulting — Skeptical Humorist
  • Red Energy (Melbourne, Australia) (2005-present) - Consulting, Java/JEE/Oracle development.
  • Contact Energy (Wellington) (2002-2005) - Various projects involving web/intranet, Windows NT services, database, JEE/XML web services, etc.
  • Cloud Productions (Wellington) (2001-2005) - Digital multimedia software; Back-end tracking database system.
  • The Toolbox (Wellington) (2001-2004) - XSL template-based generation of PDF content.
  • Direct Payment Solutions (Auckland) (2000-2003) - GNU/Linux port of Payment Express Server; various client interfaces and samples.
  • Transpower (Wellington) (2003) - Data analysis application in .NET.
  • Computing Edge Limited (Auckland) (2000) - various programming assignments.
1997-1999 IBM USA/Ameritech (Chicago) — DirectTalk/Genesys
  • Programming using C/C++, Perl and state tables for IBM DirectTalk IVR.
  • Configuration, integration with Genesys CTI, specifications and documentation for IBM DirectTalk IVR.
  • Development team leader for IBM DirectTalk IVR on Genesys CTI call center project.
  • Staff training for Ameritech development and support staff.
  • Trouble shooting IVR and Genesys problems.
1995-1997 IBM New Zealand -- IBM CallPath/DirectTalk
  • Programming using VisualAge C++ and IBM CallPath Enterprise Server for GUI/CTI Desktop.
  • Also programming using C for IBM DirectTalk IVR.
  • Lead Developer for IBM team, did training for IBM and Customer developers.
1993-1995 IBM New Zealand -- Systems Consultant for Customer Service
  • Consulting to Management on System Strategy and Data Warehousing.
  • Requirements, Specifications, Data Migration and Testing for Customer Service Administration System (CSAS) on AS/400.
1992-1993 Twin Technology (New Zealand)
  • Programming using C/SQL on Oracle - Telecom New Zealand's International Telephone Billing and Accounting System
  • Rewriting/upgrading System Specification.
1991 IBM New Zealand
  • Programming using REXX and SQL/DS on VM/CMS system.
  • Database design and DBA on SQL/DS.
1990-1991 Victoria University of Wellington
  • Teaching Assistant for Statistics
  • Programmer writing Pascal for student take home assignments.
1987-1990 IBM New Zealand
  • Data Mart business analysis for Inventory Systems
  • Architect, Developer of Data Mart


1985-1992 Victoria University of Wellington
  • David Payne memorial prize in Applied Math (shared)
  • B.Sc., honors, Math
  • First prize, ORSNZ student paper competition
  • M.Sc. thesis, Operations Research
1980-1984 Aotea College, New Zealand


Operating systems
  • GNU/Linux, AIX, UNIX
  • Win32
  • OS/2
Current languages
  • Sun Certified Java Programmer; JEE experience.
  • Groovy
  • Ruby
  • XML (including various SAX & DOM programming models)
  • SQL (Oracle, DB2, MySQL, Firebird/InterBase; via PL/SQL, JDBC, C, REXX)
Current tools
  • Oracle Database
  • Other Databases including PostgreSQL, MySQL, Firebird
  • Subversion, Git, Mercurial version control systems
  • IntelliJ IDEA
  • TeamCity
  • Numerous Open-Source Java Tools and Libraries, including
    • Ant
    • ANTLR
    • Apache Jakarta Commons Libraries
    • Apache Lucene
    • Apache Tomcat
    • DbUnit (committer)
    • Gradle
    • Groovy
    • GWT
    • Hibernate (since 2004)
    • JUnit
    • Spring Framework (1.x-3.x, since 2004)
    • Tapestry (4.0)
2012-08-12 01:42:20