Professional Objective

My primary objectives are to become an expert in the fields of clean code, software architecture and software engineering methodologies specialising in lean / agile development. I would like to be platform and language agnostic and my current specialty is Java development. Ultimately I'd like to be a polyglot programmer of many different genres of languages.

Security Clearance

Professional Summary

I am a Senior Software Engineer with 21 years experience. I have worked in Government, the Legal industry at Butterworths (Reed Elsevier / Lexis Nexis), Aerospace with Boeing Australia, eHealth with Orion Health and Science with CSIRO. I am an Oracle Certified Professional Java Programmer (OCPJP; Formally SCJP—Sun Certified Java Programmer).



  • Oracle Certified Professional, Java SE 6 Programmer (OCPJP - 1Z0-851) – Oracle - August 2012 – Scored 90%
  • Certificate IV in Project Management (BSB41504) - Australian College of Project Management
  • Information Technology Infrastructure Library (ITIL / ITSM v2) – EXIF - August 2004 – Scored 82%

Employment History

Java Software Engineer (Contractor)

July 2014 - January 2015
Commonwealth Scientific and Industrial Research Organisation (CSIRO)
Yarralumla, ACT 2600, Australia

In my contract with CSIRO I was a Java Software Engineer on the CSIRO ASKAP Science Data Archive (CASDA) project. This is the data management component of the Australian Square Kilometre Array Pathfinder (ASKAP) project.

The SKA radio telescope is an international project to build the world's largest radio telescope; consisting of thousands of antennas linked together by high bandwidth optical fibre.

The SKA will be 50 times as sensitive as the best existing radio telescopes and will have a survey speed 10,000 times faster than its nearest current-day rival—enabling it to carry out research more quickly than ever before. It aims to address fundamental questions about the evolution of the Universe including the formation of black holes, the origins of the first stars and the generation of magnetic fields in space.

I was part of a multi-discipline team consisting of 6 developers, a project manager, business analysts, testing teams (functional, performance and security) and infrastructure teams.

The software engineering team is building virtual observatory tools to the International Virtual Observatory Alliance standards. IVOA is a worldwide scientific organisation formed in June 2002. Its mission is to facilitate international coordination and collaboration necessary for enabling global and integrated access to data gathered by astronomical observatories. An information system allowing such an access is called a Virtual Observatory.

The stack we developed with with includes Spring 4, Java, Tomcat, Groovy, Gradle for the builds, Postgresql, the H2 in-memory database and Elastic Search (we started with SOLR). We use Jenkins for Continuous Integration, Jira for Configuration and Issue management, Git and Atlassian Stash and Atlassian Source Tree for version control, and Atlassian Confluence for documentation. The team works using Agile software engineering methodologies and all developers have taken turns as Scrum Master.

Java / Javascript Web Developer (Contractor)

May - June 2014
Geoscience Australia (GA)
Symonston, ACT 2609, Australia

In my contract with Geoscience Australia (GA) I am a Java / Javascript Web Developer on the Boreholes project. The Boreholes project is a greenfield project for the consolidation of multiple disparate data sources (Oracle DB, Access DB, Spreadsheet) into the one Oracle database. As well as maintaining the one data source this project helps the business units in GA standardise their boreholes practices and share data (since boreholes often change from being for one purpose to being for another). Boreholes also includes a UI for operators to create and read new boreholes.

A borehole is a narrow shaft bored in the ground for purposes involving petroleum, minerals, gas, aquifer, geothermal, exploration or investigation. Geoscience Australia maintains a large database of meta information and physical samples.

In this role I was responsible for developing the client-UI (using AngualrJS, JQuery, HTML5, CSS3, Bootstrap, Sass, WCAG, Yeoman scaffolding, Grunt, nodejs, Karma and Jasmine), the API development for RESTful web services to communicate with the middle tier, assisting with the development of RESTful web services using Spring, assisting with the architecture (including working within the enterprise architecture), application design and the initial stages of ETL for consolidating the data. I worked with a team including Enterprise Architects, a Project Manager, a Business Analyst, a DBA and a primary Java EE developer.

Java Software Engineer (Contractor)

May - December 2013
Commonwealth Scientific and Industrial Research Organisation (CSIRO)
Canberra, ACT 2600, Australia

In my role at the Commonwealth Scientific and Industrial Research Organisation, I was responsible for:

  • Rewriting the ESA “Emergency Situational Awareness” J2EE web application in Java EE 7 adding unit and integration testing (where none existed previously) (Junit, Mockito and Jboss Arquillian)
  • Implementing RESTful web services APIs to expose the CSIRO's Emergency Situation Awareness application services;
  • The development of JSF web applications as a front-end;
  • The development of Java and Javascript (JQuery) libraries for clients to use at site installations;
  • The use of Open Street Maps with OpenLayers Javascript framework for geolocation mapping;
  • Oracle 11 DB and MySQL backends
  • JMS 1.1 ApacheMQ maintenance and JMS 2 upgrade investigations
  • Course development and the training of CSIRO staff in Java EE 6+ and the architecture of the new system;
  • Course development and the training of CSIRO staff in how to follow test driven development practices, and how to write unit and integration tests;
  • Workshop developed and conducted with the CSIRO staff to teach and enable them to add further unit and integration tests;
  • Configuring a modern development environment with issue tracker, wiki and git clients. The provision of on-the-job training with CSIRO staff in the use of this environment;
  • Technologies: Jquery, Java EE 7, EJB 3.2, CDI 1.1, JPA 2.1 & EclipseLink 2.5, JSF 2.2, JSON-P, JAX-RS 1.1, Glassfish 4, git, Eclipse IDE (Juno), Maven 3, Oracle 11g, Arquillian;
  • Initial trials with Oracle Web Logic as a replacement Application Server for Oracle Glassfish, since Glassfish is losing its commercial support as of November 2013;
  • Ported Spring Framework REST Authentication web application that included extensive unit and integration tests to Java EE

The existing J2EE application was an Ant driven collection of HTTPServlets with JDBC SQL connections to an Oracle 11g backend. As part of my redevelopment of this I created a completely new architecture with multiple Maven 3 modules. The previously untested business logic was incorporated into the system along with unit and integration tests to verify the expected behaviour. I employed clean code techniques such as polymorphism instead of switches and breaking long methods into many smaller manageable (and testable) methods.

The Emergency Situational Awareness (ESA) application is used by the Australian Federal and State governments, and agencies to detect, assess, summarise and report Twitter messages of interest for crisis coordination. Please see for more details.

Full time parent

June 2012 – May 2013
Smith Enterprises
Canberra, ACT Australia

My wife and I swapped roles allowing me to spend time with my children and her to restart her career.

Senior Software Engineer

August 2010 – June 2012
Orion Health
Canberra, ACT 2600, Australia
Breast Screening Product including Public Web Module

In this role I worked in a team of five developers with product managers, project managers, testers and documenters where we coordinated development activities using an agile scrum process. We developed the Breast Screening product in use by New Zealand and New South Wales with the ACT and Tasmania to follow shortly.

The Breast Screening product is a Web Application for managing the breast screening workflow from booking screening appointments, linking with the mammograms to booking and holding assessments of the mammograms. It also has a client component called the Public Web Module that allows user's to book and manage appointments from their own homes. It used RESTful web services to communicate with the server.

The Breast Screening system is a very complex product using over 4000 Java classes, Javascript, HTML and Cascading Style Sheets.

Technologies used:

  • JSP, Orion template language (Orion's solution to JSP's and servlets), SpringMVC
  • Stripes presentation framework
  • Javascript including YUI; HTML, CSS
  • Java Servlets for JSPs, Stripes and the Orion templating language pages
  • Hibernate for persistence
  • RESTful web services
  • Java classes and OSGi framework to bundle the application into modules, Spring for dependency injection
  • MSSQL and Derby databases
  • Tomcat web servlet container
  • Junit (for TDD and Integration testing)
  • Sahi and J-Behave (for Behaviour Driven Development and functional testing).
  • Centos Server running Bash and Groovy scripts, Windows Workstation & Virtual Box virtual environments.

Orion has quarterly events called “Scrath-O-Rama” which is like Google's 20% time. Its to encourage staff to come up with projects outside their usual work. I developed a version of the Public Web Module (written in J2EE and Stripes) in EJB3 (Java EE 6) with JSF pages. The other project I developed was customised Confluence pages based on the user model the user sets up on their home page. This required working with Confluence at the back-end with my own macros.

Application Developer, Technical Publications Developer, Technical Publications Development Team Leader, Technical Publications Specialist and Software Engineering Capability Council representative for the Product Support Group

January 1999 – August 2010
Boeing Defence Australia
Brisbane, QLD 4000, Australia
  • S1000D - For the AEWC (Advanced Early Warning & Control aircraft) project I helped write the S1000D Rough Order of Magnitude (ROM) for converting Boeing's AEWC ATA publications to S1000D. This formed of the business case for moving to S1000D. S1000D is an international specification for the procurement and production of technical publications.
    I wrote S1000D business Rules, performed server installation and configuration, and wrote translations from ATA SGML & XML to S1000D XML.
    I scoped alternate solutions for interactive wiring diagrams in S1000D publications and then implemented and configured the chosen one.
  • LSAR to S1000D conversion - I lead the project to generate S1000D Technical Publications from a Logistics Support Analysis Report (LSAR) database. The purpose of this was to enable single-source publishing from the LSAR database rather than have a separate XML format containing the same information.
  • AEWC ATA publishing system - I was the architect, technical lead, senior developer and team lead (4 developers) for the AEWC ATA publishing system. It published SGML (instances of 8 largely distinct DTDs) and graphics from a Contenta CMS (Content Management System) to PDF using XPP as the publishing engine. The output was to 16 mostly distinct formats (front matter, body matter and various other speciality content). The code is made up of 100,000 lines of Bash shell, Perl, Java SE, XSLT and Omnimark and ran on Unix (Solaris) servers. The system enabled the project to publish over 120,000 pages.
    ATA is the Air Transport Association and is a standard for commercial, private and defence aircraft platforms.
    I started the project in 2002 as the sole developer. I helped recruit a team and lead them to complete the system on schedule in October 2009.
  • Team Lead - As team lead I was responsible for team employment, the team's task assignments, performance management plans and career guidance. The team worked across 6 projects for 5 different business divisions (F111, AP3C, F/A-18, AEWC, Business Development).
    I also setup the RCS, CVS and Subversion Version Control Systems, JIRA issue tracker and wrote process manuals and work instructions for our development environment. I adopted the Boeing specified software development methodologies including Waterfall, RUP and Iterative spiral development. I helped investigate using Agile (Scrum) and Lean 10x as part of my work with the Software Engineering Capability Council and I introduced these into my team's work flow. For this I trained the team in Test Driven Development.
  • F/A-18 Tools - I converted and configured the St Louis XPP Publishing System native documents to work in our Australian environment to enable Australia to author, maintain and publish the Australian F/A-18 (legacy and hornet) manuals.
  • 5629a publishing system – My first major task in 1999 was to write the 5629a publishing system to publish SGML and graphics to generate F111 and AP3C Orion platform manuals in PDF. The 5629a system runs on Solaris and is composed of C-Shell, Perl and Omnimark scripts. I completed this system on time to meet the schedule. I continued to maintain the system until it was decommissioned in 2009 (when the F111's stopped flying and the AP3C customer moved the publications to Framemaker to support new requirements).
  • Loose leaf publishing - I set up a loose leaf publishing environment in the 5629a system to publish amendments allowing only changed pages to be printed.
  • Application Support - I worked as part of Management Information Systems, Boeing Defence Australia's Information Technology (IT) department and as part of that group we were required to perform application support for the applications that were part of our capability (SDL Contenta, SDL Contenta S1000D, SDL Xml Professional Publisher (XPP), PTC Arbortext Editor, Stilo Omnimark, Perl, Java, Solaris) and others that were of a general capability such as Mercury Quality Centre, Oracle E-Business ERP Suite and in-house Java tools.
    We undertook ITIL v2 training and I'm now ITIL v2 certified. We were required to use Service Support discipline's set of functions to manage our support activities - incident, problem, change, release and configuration management.
    As part of the Java tools support I participated in a Web Services using IBM Rational Application Developer course, and with that built SOAP Web Services for the tools.
  • Balancing Agility and Discipline (based on Barry Boehm's book of the same name) - I used the work of Barry Boehm to investigate and analyse the projects in Boeing Defence Australia and demonstrate the weaknesses in the wholly disciplined approach typically used in Defence software engineering project. It was used as support for the case of moving Boeing to Agile processes.

Electronic Publishing Developer

March 1996 – January 1999
Butterworths Legal Publisher (Now part of Reed Elsevier / Lexis Nexis)
Chatswood, NSW 2067, Australia

I was part of a team that created paper and electronic legal documents. I worked on court reports (Casebase), Butterworths reports (Caserep) and the Butterworths Online web site.

Database and Applications Developer

June 1993 – June 1995
New South Wales Government,
Department of Business and Regional Development (BARD)
Sydney, NSW 2000, Australia

I was part of a team that created database applications written in MS Visual Basic and MS Access DB.

Macintosh Applications Developer (Contractor)

May – August 1994
Australian Defence Industries
Albury, NSW 2640, Australia

In this position I developed C++ modules and performed database administration in FoxPro.

Professional Societies

  • Australian Computer Society December 2001 – Present


University Of Sydney

City Road, Camperdown, NSW, 2050 Australia.

  • Bachelor Of Science, Honours in Computer Science 1995
  • Bachelor Of Science in Computer Science and Pure Mathematics 1993

Hawker College

Murranji Street, Hawker, ACT2614, Australia.

  • Year 12 Certificate 1988


Thesis - “Custor - Customised Documents for the Web”

December 1996

This was my honours thesis and it explored customising content for Web users with respect to an individual's user model that describes their weighted likes and interests. The content was in SGML format and was marked up with meta-data to enable the customisation process. The application was written in Python using objects and Tcl Tk GUI widgets.

The thesis received a mark of 86 out of 100.

Volunteer Work

IT Support, member of management team

Friends of the Earth Brisbane (FoEB)

April 2007 – August 2010

As a volunteer with Friends of the Earth Brisbane, I was part of the:

  • FoE Brisbane Management Committee (“HUB”)
  • FoE Australia Information Technology and Communications group helping to manage the IT infrastructure and systems. Other specifics include installing, configuring and Administration of Atlassian Confluence and Atlassian Jira; ERP software investigations.

Systems Engineer, Software Engineer, Photographer, member of management team

stepUP Foundation

January 2006 – December 2007

As a volunteer with stepUp Foundation:

  • I assisted with the organisation of seminars to educate and excite teenagers in South-East Queensland about the possibilities for their futures in business and in life.
  • I developed and managed the registration database for events
  • I was the official photographer at a number of seminars.

Awards and Recognition

Boeing Employee Recognition Award

March 2007

I was one of two people in the Brisbane Office (out of over 800 employees) to win this award as recognition of the environmental work I had undertaken for the company through my involvement with the Environment Committee (President 2006-2007, Committee Member 2002-2006). I received return flights and entry to the Avalon Air Show for myself and one other. I chose to take a member from my team, John, as recognition of the work he had done.


Available on request.