Resume of Shane Harper
Mobile Phone: +** (0-439******
E-mail:
http://shaneharper.net
Date of Birth: 24 July 1975
Nationality: Australian
Address: */**** ********** ****, *********, Victoria, 3175, Australia
Profile
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.
SkillsTest Driven Development to quickly build software to requirements and to demonstrate via automated tests that the software performs as expected.Excellent time management, team work and
communication skills.Talented in object oriented design.
Appreciate formal methods of software
engineering, with exposure to the Capability Maturity Model (CMM).
Talented C++ developer. I have extensively used the STL.I have also written computer programs in Ada,
Assembly (80x86, HC11, Z80), C, Haskel, Java, Perl, PL/SQL, Prolog, Python,
and UNIX shell scripts.Skilled in electronic circuit
construction.Able to design and implement embedded
micro-controller systems.
Achievements
Seeing several large mission-critical software projects through to a timely completion!
Achieved the second highest result in the
Melbourne University final year Computer Science subject "Operating
Systems" in 1997. That subject covered low-level implementation issues and
focused on Unix.Winner of a Shell Science Fellowship Award
in 1992 for my work with a computer controlled brush-less DC motor. I
received a prize including the opportunity to represent Australia at the
Singapore International Youth Science Conference.Awarded a Speech Night Award for Scientific
Inquiry while attending Melbourne High School.Awarded `Half Colours' for my involvement
in High School Debating over several years.Organised a race for electric powered
vehicles for the Australian Electric Vehicle Association. This was a
large-scale event with many competitors from Victoria and interstate. I
recruited and managed a large group of volunteers for pre-event
preparations and on-the-day duties. I arranged sponsorship, advertising,
trophies and prize money, programme production and printing, venue hire,
catering, commercial exhibitors, liaison with schools and the State
Transport Department, etc.Participated in club-level cycle racing for
a period of time, and was a place-getter on several occasions.
Employment15 December 2011 -
Employer:
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
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: (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: 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
Experience:
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: http://shaneharper.net
EducationSecondary
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.Tertiary
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 InterestsSporting activities, including: going to the gym, cycling, skating,
badminton.Computers, including contributing to open-source projects.
Languages
Last update: 28 August 2012