Resume of Shane Harper

Mobile Phone: +61 (0)439148147


Date of Birth: 24 July 1975
Nationality: Australian
Address: 3/1384 Heatherton Road, Dandenong, Victoria, 3175, Australia


Proficient software engineer experienced with numerous real-time (including safety critical) applications. Focused on establishing clear objectives and then rapid delivery. Exposure to the complete software life-cycle with an emphasis on software quality.







October 2014 -

Employer: Sole trader
Experience: Development of C++ Personal Assistant, a tool which gives C++ developers the information they need to quickly deliver new features or fix bugs. The tool uses libraries from the clang compiler.

23 June 2014 - October 2014

Employer: Wave Semiconductor Pty. Ltd.
Position: Contract Software Developer
Technologies: C++, Android
Experience: I benchmarked algorithms including BCH data error correction, LZ77 compression and string search on an Qualcomm Snapdragon 810 with ARM CPU. (The benchmarks were for comparison with a programmable asynchronous logic device under development at Wave Semiconductor.)

23 October 2012 - December 2013

Employer: ITG (Investment Technology Group) Australia Ltd.
Position: Software Developer
Technologies: C++, Python, FIX protocol, FitNesse, Solaris, SQL
Contract Renewals: Two
Experience: Agile development of customisations to ITG's order routing system. I improved turn-around times on client requests by automating procedures for software build, test and deploy.

15 December 2011 - 18 October 2012

Employer: Bluechiip Ltd.
Position: Software Engineer
Technologies: Embedded C++, Linux, Mongoose web-server, Selenium Webdriver, Python, wxWidgets
Experience: I applied agile techniques to develop a web-based inventory tracking system for biobanks. I developed a software development plan to conform with the IEC 62304 standard for medical device software. I captured requirements in executable test scripts and applied a test driven development approach. I wrote the high-level software design in a machine executable format.

Development was done primarily on Mac OS X. Cross platform libraries were used.


21 July 2009 - December 2011

Employer: Lockheed Martin Information Systems and Global Services
Position: Senior Software Engineer
Technologies: C++, Python, Java, vxWorks RTOS
Experience: I performed requirements capture, software design and implementation, and testing of a safety critical component of the Advanced Train Management System developed for the Australian Rail Track Corporation.

July 2009 - February 2010
  • Software design and implementation in C++, Python and Java of the AMS (Authority Management Server).
    The AMS manages authorities that allow trains to move along specified routes. It is a safety critical interlocking preventing unsafe requests being sent to trains and trackside equipment.

March 2010 - December 2011

  • Responsible for the requirements specification document of the AMS component.
    I used UML2 for requirements capture. I used DOORS for maintaining the requirements trace. I followed CENELEC standards for developing safety critical rail systems.

October 2010 - March 2011

  • I lead a team of two software developers to develop a parallel implementation of the Authority Management Server in C++.
    The software could be deployed to run in parallel with another implementation: The outputs of both systems could be cross checked to increase confidence in system safety.

    My implementation cost one fifth that of an implementation by another team while satisfying the same set of requirements. I used TDD (Test Driven Development) and I believe the use of TDD significantly helped in dramatically minimising the time to develop a high quality implementation.

    I developed the embedded software to run continuously without human intervention to ensure the safety of the rail network. I followed the MISRA (Motor Industry Software Reliability Association) 2008 guidelines for the use of C++ in critical systems. I wrote automated test scripts in Python. The target platform ran the VxWorks real time operating system.

    I implemented communications protocols on top of TCP/IP to enable the AMS to communicate with the other systems components.

October 2011 - December 2011

  • Development of automated test scripts using Robot Framework for testing the AMS.

19 July 2008 - 18 October 2008

Employer: UFIS Airport Innovation, Barcelona, Spain
Position: Software Analyst
Technologies: C++, Perl, Python, Oracle PL/SQL
Experience: A 3 month contract where I was responsible for completing development and testing of external software interfaces to a baggage handling system for Barcelona Airport's Midfield Terminal which was opened in 2009.

I worked on-site in Barcelona, Spain for UFIS Airport Innovation which is a daughter company of UFIS Airport Solutions, a company that I was previously employed by. The project had very tight deadlines: I had to quickly get up to speed and then consistently work long hours.

I worked with C++, Perl, Python and Oracle PL/SQL as the application and automated tests had already used a mixture of these languages.

At the end of my contract I was offered another three month contract to do further work: I had to decline as I was unable to get my visa extended at short notice.

My son was born after I finished this job. I took time off work to be with my wife and son.


4 February 2008 - 3 May 2008

Employer: Bluefish444 (South Melbourne, Australia)
Position: Software Analyst
Technologies: C++
Experience: Bluefish444 develops hardware and software for video capture, video processing and playback. Bluefish444's customers include television broadcasters and the film industry.

I audited their core video capture application and their hardware drivers. I developed a strategy to improve quality by setting up automated tests to ensure quality.


9 October 2006 - 30 November 2007

Employer: UFIS Airport Solutions GmbH (Graz, Austria)
Positions: Master System Integrator, Suvarnabhumi Airport, Thailand
System Architect, Delhi IGI Airport, India
Experience: UFIS Airport Solutions develops software for managing airport operations. UFIS Airport Solutions also provides management consulting to airports.

For a large airport to operate efficiently, the operations of several departments must be coordinated and typically IT systems from several different suppliers must be integrated.

In my work at the airports in Bangkok and Delhi, I first sought to get a clear definition of requirements through direct interaction with the clients and then developed an architecture that met the requirements. Much of this work involved integrating systems from different suppliers.

I left UFIS as I wanted to return to Australia after having lived away from Australia for six years.


February 2006 - 16 June 2006

Employer: ABES ("Advanced Bridge Engineering Systems") GmbH (Graz, Austria)
Position: Contract Software Analyst/Developer
Technologies: C++, Qt, OpenGL
Experience: I was employed on a short term contract to design and implement the GUI of a CAD (computer aided design) application for specifying the geometry of bridge girders and piers. I used C++, Qt and OpenGL to implement the user interface.

The customer had had preconceived ideas about how the application should function based on their experience with a competitor's product. After carefully analysing the customer's requirements I was able to propose a solution that better met their needs: In particular the final design was easy to extend.


17 November 2003 - 29 July 2005

Employer: Systems In Progress GmbH (Graz, Austria)
Position: Software Analyst/Developer
Technologies: C++, Java, PostgreSQL, wxWidgets, SDL
Experience: Systems In Progress's products collect and process usage data from casino gaming machines and maintain casino jackpots.

I developed a multimedia casino jackpot display using C++ and the SDL (Simple Direct-media Library) that would display jackpot values and play video files and animations.

I developed tools for generating reports from usage data from gaming machines as well as for tracking coin collections. I used C++, Java, the PostgreSQL database, wxWidgets GUI library, SDL (Simple Direct-media Library), and the Subversion revision control system.


7 January 2003 - 6 November 2003

Employer: TDV GmbH (Graz, Austria)
Position: Software Engineer
Technologies: C++, wxWidgets, TCL
Experience: TDV write structural analysis software. The main application of TDV's software is bridge design.

I extended the GUI for specifying the geometry of bridges. The GUI was written using wxWidgets. I also interfaced the main application with the TCL scripting language enabling bridge geometries to be defined in TCL.

The development environment was Microsoft Visual Studio.


22 April 2002 - 7 November 2002

Employer: Atronic International GmbH (Austria)
Position: Embedded Software Engineer
Technologies: C
Experience: Atronic International make casino slot machines.

I worked in a team of eleven people re-implementing existing software: Our goal was to make a new system which was easier to maintain than the old system. The software was mostly written in C, but was object oriented.

ArgoUML was used to create some designs in UML. Rational ClearCase was used for revision control.

The target platform ran the Micro-C RTOS on a Z180 CPU.


February 2000 - 13th July 2001

Employer: Thales ATM
Position: Software developer
Technologies: C++, Ada
Experience: Thales ATM make air-traffic control systems. I had several different roles while working at Thales ATM.

My first role involved writing Unix shell scripts to set-up and install software for an air-traffic control system used by the RAAF (Royal Australian Air-Force). I had to be on-site for part of the time and interact with the customer.

My second role was adding new functionality to the flight plan database management code. This was done in Ada.

My final role was working on the user interface for an air-traffic control system to be used in China. Some of my work was fixing bugs in existing C code. Most of my work was in a re-write of the "Air Situation Display" function in C++. Our new design was developed using Rhapsody by Ilogix. Rhapsody is a UML model editor which can generate code from state diagrams.

Development was done on Linux PCs. The target platform was Ultrix.

Thales ATM used the CMM (Capability Maturity Model) to assess their software development procedures and was focused on improving the quality of its products by improving the procedures used.

I left Thales ATM to do some international travel and to have time to work on some Open Source projects.


August 1997 - February 1999

Employer: AES Prodata, now called "ERG Transit Systems".
Position: Analyst Programmer
Technologies: C++
Contract Renewals: Three. (I had two three month and two six month contracts to work at AES Prodata.)
Experience: C++/UNIX programmer writing and maintaining code for the Metcard automated ticketing system used by the Melbourne public transport system. The software I worked on communicated with ticket selling machines, ticket validating devices and a central computer system. An important function of this software was to generate reports about ticket sales.

The project was behind schedule when I started. I believe I made a significant contribution to getting the customer to sign-off the project as being completed as early as possible.

Development and some testing were done on Linux PCs. The target platform ran SCO-Unix.

I gained experience in using GNU tools (including the gcc compiler), writing makefiles and shell scripts, and revision control with CVS.

I left AES Prodata to return to full-time University studies for a year.


Christmas Holidays 1996

Employer: K&B Pty. Ltd.

(family company)

Position: Technician and Director
as Technician: assembled computer systems, performed trouble-shooting and repairs.
as Director: attended Board meetings, participated in formulation of company policies/strategies, ensured that statutory requirements were met.

Christmas Holidays 1991 & 1992

Employer: Ranger Electronics
Position: Technical Assistant
Experience: worked with CAD (Protel AutoTrax), made and assembled circuit boards, calibrated gas concentration meters, programmed PLCs.

Samples of My Work

See my web-site:




1990-1993 Melbourne High School

Final year subjects: Maths: Change and Approximation - Extensions, Maths: Reasoning and Data, Physics, Chemistry, Information Systems, English.

Victorian Certificate of Education (VCE) score: 158 out of 168.


1994 - University of Melbourne

Course: BSc / BE (Elec).

I was enrolled in the BSc/BE course for four and a half years. The computer science component (only) of this course was completed by mid 1997.

300-level computer science subjects and results:

Software Engineering Project 76%
Software Engineering 3A 75%
Operating Systems 93%
Professional Issues in Computing 79%
Database Systems 76%
Theory of Computation 70%
Artificial Intelligence 75%
Functional Programming 82%

Leisure Interests




Last update: 17 May 2016