Résumé

Summary

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 prefer to be involved in projects from inception through to post-production, so that I am responsible for both architecture and implementation and acceptance. (I'm not a paper architect.) To create software that is useful I get involved with business people to understand their goals. To achieve quality in software I am aggressive about refactoring code constantly to maintain a clean, flexible design.

I advocate quality and agile IT practices. I have implemented version control practices and automated testing at several organizations, and am constantly looking for better ways to develop software.

Currently my main area is agile development in Java, with some occasional work in Groovy and also Ruby.

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

Publications

Books

Work

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

Education

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

Skills/experience

Operating systems
  • GNU/Linux, AIX, UNIX
  • Win32
  • OS/2
Current languages
  • Sun Certified Java Programmer; J2EE experience.
  • Groovy
  • Ruby
  • C/C#/C++
  • Perl (including CGI, ASP)
  • Delphi/Kylix
  • XML (including various SAX & DOM programming models)
  • SQL (Oracle, DB2, MySQL, Firebird/InterBase; via PL/SQL, JDBC, C, REXX)
Current tools
  • Oracle Database
  • Firebird Database
  • Subversion
  • CVS
  • IntelliJ IDEA
  • TeamCity
  • Numerous Open-Source Java Tools and Libraries, including
    • Ant
    • Apache Jakarta Commons Libraries
    • DbUnit
    • Hibernate
    • JDOM
    • JUnit
    • Spring Framework (1.x, 2.x)
    • Tapestry (4.0)
    • Tomcat
2010-03-09 05:21:00