Melbourne, Australia
A degree-qualified senior software engineer, who has been working in commercial software development in the UK and Australia since 1998.
Currently leading a team of talented software engineers providing connectivity solutions to the financial services industry.
Enjoys enabling his team to create solutions to new and interesting problems that our clients, our traders and our support staff face with each trading day. Also enjoys being able to create code. It's a balancing act.
A strong proponent of Agile methodologies, particularly Extreme Programming (XP).
Spends spare time finding new logic puzzles to tackle and helping others in communities such as StackOverflow as he solves them.
Non Technical: Team Leadership, ScrumMaster, Process Improvement, Facilitation, Impediment Resolution, Agile Story Writing, Acceptance Test Gathering.
Technical: C++, C, Cross Platform Development, Python, Regular Expressions, Relational Database Design, SQL, Shell Scripting, Test Driven Development, Automated Acceptance Testing, FitNesse.
ITG (NYSE:ITG)
April 2007 - Current
Relevant Skills: Team Leadership, ScrumMaster, Broker and Exchange connectivity, FIX messaging, C++, Python, Solaris, Linux.
ITG is an independent research and execution broker, headquartered in New York with offices in North America, Europe and across Asia Pacific.
In December 2010, I was appointed development manager for ITG's Melbourne office, making me the main contact point between Australia's development organisation and the firm's global C-level executive team. I also represent the Asia Pacific region on a number of committees in a US-centric organisation.
I've retained my responsibilities as Senior Software Engineer and ScrumMaster for a small team that provides client, broker and exchange connectivity solutions to equities traders in the Asia-Pacific region.
As ScrumMaster, I enjoy the responsibility of driving the software delivery process and ensuring that the developers and quality assurance analyst have everything they need to be able to work unimpeded to deliver everything they promised in the current Sprint (we actually use the word "Iteration").
I have worked closely with Product Owners in California, Tokyo and Sydney making use of all the technologies available to us to try to give the impression of co-location. These days, happily, the Connectivity Product Owner is situated in the Melbourne office and I work with him to write user stories and to keep our Product backlog prioritised. The Product Owner attends our daily Scrums (or "Stand-ups", as we call them) keeping him informed as to our team's progress as well as giving him the opportunity to provide feedback on recent releases. Since ITG outsourced our quality assurance function to a partner in Bangalore, India, I have been running two stand-up meetings per day, one at the start of the day in Melbourne and another at the start of our QA analyst's working day. This allows me to identify any impediments and resolve them before we leave the Melbourne office for the day, and ensures that the whole team meet at least once per day.
Our Sprints (or "Iterations") are two weeks in duration and I facilitate a retrospective at the end of each of these and endeavour to find at least one thing that we can improve for our next iteration. I also run the planning meeting for the next iterations shortly afterwards, using the average velocity from the previous four iterations to predict our capacity. We groom our backlog in a separate session mid-iteration.
I believe in a collaborative approach and am always keen to involve the whole team in the development process. An example of this is the FitNesse workshops that I instigated, where the Product Owner, QA analyst and developers sit together and explore the domain of the problem we are trying to solve while writing the automated acceptance tests for a story or two in the process. I also actively encourage the use of pair-programming to promote healthy code and knowledge sharing.
Test-driven development is an important part of the XP methodology and this approach helps to ensure that the code that my team and I write is of the highest quality before it reaches QA. For C++ code, I use TUT and for Python, PyUnit.
In the time that I have been at ITG I have developed solutions for connecting directly to exchanges including ASX and HKEx using their proprietary protocols as well as clients and brokers using FIX.
March 2006 - March 2007
Relevant skills: Team Leadership, OOD, UML, C++, Client Liaison, Cross-Platform Development, GCC, GNU Tools, Project Management, Recruitment, Requirements Capture / Analysis.
Space-Time Research is a leader in data transparency solutions for providers of official statistics.
I led and grew the SuperSERVER development team in the year I was with Space-Time Research and took responsibility for all areas of the SDLC. SuperSERVER is the central analytics server which performs rapid cross-tabulations and calculations. It allows the results of unit record queries to be provided to desktop or web client applications.
Communicating with local and international clients in person as well via telephone and email, I assisted in capturing requirements for major enhancements to the system. These requirements were fully documented in accordance with the company's internal Quality Management System and we shared with the clients for approval as well as developers from my own and other teams.
I was involved in making and reviewing design decisions ensuring that the customers' needs were met in the most efficient manner. I supervised the majority of the development work, while undertaking tasks myself. I conducted frequent code-review sessions with my team to ensure the quality of the code produced was sufficiently high.
One of the major projects that I undertook personally was to port SuperSERVER from Win32 to zLinux, producing 64-bit Windows and Linux Standard Base ports along the way.
March 2004 - December 2005
Relevant skills: Team Leadership, C++, MFC, SQL, UML, Relational Database Design, Payroll.
Rutherford Webb was a specialist provider of payroll solutions. The main product, Payrite , (now owned by Bond International Software) has been delivering solutions for over 20 years.
I was responsible for the day-to-day running of the team who develop Payrite. My learning curve was particularly steep as I had to learn about the intricacies of the legislation affecting payroll in the UK as well as the complex architecture of the software and its disk-based storage.
A number of Rutherford Webb's larger clients would continually request bespoke development work. Part of my role was to liaise with the client to assess the requirements and provide estimations. I would then see the work through design, coding and testing before it is passed over to the Quality Assurance team prior to release.
Payrite had two releases per annum. One mostly comprised changes due to HMRC regulatory requirements. Any maintenance issues were dealt with by service packs, which clients downloaded from the web using the software. I had the responsibility of building and releasing packs.
Relevant skills: Team Leadership, C++, OOD, STL, OWL, MFC, Oracle, SQL, PL/SQL, UML, XML.
February 2000 - March 2004
Aircom International is a leading supplier of planning tools to the mobile telecommunications industry.
In March 2002 I took over the leadership of the team that produces the company's main transmission and microwave link planning tool. Within the space of a year the team had coded two new versions of the application; both were more reliable than their predecessors and gained major sales for the company.
I was responsible for software development life cycle of the product from the design stage through development, module testing, integration testing and maintenance. This includes object-oriented design using Rational Rose and UML, GUI design and relational database design using Microsoft Visio.
I ensured defects, and all change requests were tracked using Rational ClearQuest, in accordance with the company's ISO 9001-compliant procedures.
During my time on the team I introduced an informal code-reviewing system, which drastically reduced the number of bugs in the software and encouraged the members of the team to improve their own coding and GUI design styles.
I was actively involved in my company's drive towards reaching the government's Investors in People standard and organised numerous social outings to the local go-kart track and bowling alley for my colleagues.
September 1998 - January 2000
Relevant skills: OOD, ANSI C, MSVC++, MFC, Win32 API, Microsoft Platform SDK / DDK, WinDebug.
Sophos is regarded as a leader in security and data protection and is headquartered in Oxford, UK and Boston, US.
I joined Sophos Anti-Virus as a graduate programmer and worked for eighteen months on the Windows Development team where many of my tasks were maintenance related.
I learned quickly how to work with Windows Services, File System Drivers and the Windows API. Development was conducted under a strict release cycle of one commercial release per month. I was involved in all stages of the software lifecycle.
I also took responsibility for the company fire safety policy and the maintenance of the backup power supply.
1995 - 1998
Degree classification: Upper Second Class with Honours.
During my time at The University of Birmingham, I excelled in modules such as Software Workshops, Communication Skills, Databases, Human-Computer Interaction, Logic Programming, Computer Graphics and Mathematics.