Gareth Curtis

Gareth Curtis

Software Developer, Architect, Agile Expert

Printable CV:
CV as PDF
Mail:
gareth.o.curtis@gmail.com
Web:
http://haan-coding-club.de/responsiveCV
Languages:
English: native | German: fluent

Summary

I have worked continuously in professional software development since graduating with a first class degree in Mathematics with Computation in 1998. Roles I have held include technical lead and senior software architect, agile leader and scrum master.

I am an expert at introducing and coaching modern development practices in agile teams. I am a very visual person and love working out designs with other team members on a whiteboard before anyone takes to the keyboard.

Most recently I have specialized in developing Web Applications with backends running on .NET and Java, and rich clients built with HTML5 and Vaadin. But previously I have built desktop applications for Windows and Mac, server applications running on Unix - even video games for the Sony Playstation.

I am eager for a position working in an agile environment, within a team empowered to develop great products with latest technologies - resilient backends running on cloud infrastructure; front ends delivering the best user experience. I need the chance to learn new technologies and practices - to push myself out of the comfort zone once more and continue my personal development.

I grew up in England but moved to Germany in 1999. My British passport allows me to work in the EU, and to cover any potential Brexit problems I have applied for German citizenship. I am married with two children and have been living in Haan since 2004.

Skill Highlights

  • Java (Spring, Vaadin, RxJava)
  • C# (ASP.NET)
  • Javascript, HTML5, CSS
  • C++
  • C
  • Git
  • TFS
  • IntelliJ
  • Eclipse
  • Visual Studio
  • Gerrit
  • Jenkins
  • JUnit
  • Mockito
  • FitNesse
  • Confluence
  • JIRA
  • Polarion
  • Scrum
  • Web development
  • REST
  • TDD
  • BDD

Professional Experience

Senior Software Developer, Agile Leader

QIAGEN GmbH, Hilden (Biotechnology)

December 2016 till present

I worked on a java web application which managed the workflow of molecular diagnostic tests in a laboratory and interfaced with many external systems and instruments. I had the roles of technical lead and agile lead.

The software was initially developed by an external software house, who chose to use the Vaadin framework. When I started at QIAGEN the decision was made to internalise further development of the product, so we inherited the code base. The internal team grew to over 20 members, split into multiple scrum teams.

As technical lead I was involved in the hiring and training process of many developers, as well as leading one of the scrum teams. I used my deep understanding of the architecture to guide development decisions.

As agile lead I drove the changes required to achieve effective team structures over multiple sites as the project evolved. I regularly led retrospectives on multiple levels.

I was the leader of QIAGEN's agile community of practice. Together we planed, organised and moderated events to improve agile understanding and drive improvements across departments, projects and sites. I coached many scrum masters and introduced new practices such as Mob Programming, Lean Coffee and DIY usability testing. At department level I also served as a change agent and was a member of the software strategy team.

Senior Software Architect, Scrum Master

Longview Europe GmbH, Langenfeld (Business Intelligence)

September 2007 till December 2016

Initially employed as software developer, I was promoted to a senior software architect role after two years.

One of my main responsibilities was as architect in the scrum team building the collaborative Business Intelligence product, arcplan Engage - a web application built using ASP.NET and a responsive HTML5 client. I oversaw the design of front and back end, coordinating with other scrum teams that built the software systems we integrated with.

Our team also took over the migration of legacy .NET and Java clients to HTML5. I was the architect of this client redesign project. After analysing the current status of the HTML5 client, we chose to focus the redesign around making a clearer separation of the HTML5 components from the rest of the client code. The resulting HTML5 components were reusable and independently testable. Performance increased tenfold - we measured every night - and maintainability immeasurably.

I was regarded as the expert in automated testing, and drove the development of the Continuous Integration processes, consisting of pre-commit stages using TFS Gated Checkin Builds, and post-checkin stages using Jenkins to automate unit tests (JavaScript/Jasmine, c#), Functional tests (with FitNesse), front-end tests (using casper, phantomJS, phantomCSS), code metrics (with powershell and c#) and performance tests (using powershell and javascript/phantomJS).

I was awarded the Most Valuable Player award at Longview in 2014 for my work in this area.

Software Engineer

Ragtime GmbH, Hilden (Business Publishing)

October 1999 till August 2007

Development of the RagTime Business Publishing software, running on Mac and Windows. RagTime is a cross between DTP and Office software, using frame based layout to present text, spreadsheets, charts and images. Written in C++.

Projects I worked on included:

  • Text processing module. At the heart of this module was a layout algorithm based upon TeX, but extended for features such as packing textual and non-textual content into irregular containers, and using multiple columns. We relied heavily on background threads and caching to keep the algorithm fast enough to achieve a live-rebreak of text as the container size changed.
  • 2D Graphics module. We abstracted the graphical systems (GDI+, Quartz, PostScript) with a common interface that could be used by other modules throughout the code base. We implemented functionality that was not offered natively on any particular platform - for example hit testing was missing in early versions of Quartz on MacOSX, so I wrote routines to flatten paths into polylines and check distance from a mouse position.
  • Text-on-a-path feature. Dynamic algorithm to position Text on any 2D path, using other RagTime modules (Text and Graphics)
  • Bitmap processing module. Stream based engine to convert bitmaps into different formats.
  • Spell checking module. A service offering spell checking in a background thread. A plugin architecture was used to inject spell checking implementations either from the OS or by a third party library.
  • PostScript export. Export a RagTime document to PostScript format for printing or conversion into PDF.
  • HTML export. Export a RagTime document into an HTML, using many nasty tricks to preserve layout.

Analyst/Programmer

Fraser Williams Financial Systems Ltd, Leicester, England (ERP)

Summer 1998 till September 1999

Developed bespoke software solutions for our clients, often working at the customer site. Typical work included writing extensions to the ERP systems Agresso and Axapta (now Microsoft Dynamics).

Solutions were implemented using C, SQL, UNIX scripts, X++, Crystal Reports.

Lead Programmer (Playstation)

arc Developments, Walsall, England (video game developers)

Autumn 1995 till Summer 1998

Responsible for Sony PlayStation version of the game 4-4-2 soccer, released by Virgin Interactive Entertainment in 1998. As well as implementing the playstation specific parts of the game, I wrote the library which handled the football management simulation, also used by the PC and Sega Saturn versions.

Developed primarily in C, with performance critical routines optimized directly in assembler.

Education

Loughborough University of Technology, England

Mathematics and Computation, Bsc. Honours (first class)

September 1992 till July 1995

Final year project "Graphical Visualization and Manipulation of 3D objects".

I was the only student in our year to achieve the top grade.

Robert Smyth Uper School, Market Harborough, England

September 1992 till July 1995

A-Level Qualifications:

  • Mathematics (grade A)
  • Computer Studies (grade B)
  • Physics (grade C)
  • General Studies (grade B)

Interests

Teaching kids to code

I teach my children and their friends how to code by writing browser based games with them. Visit Haan Coding Club.

Rugby coach

I have been active for the rugby division of the WMTV sport club since 2000 as player, captian and coach of all age groups. In previous years I have coached NRW junior teams and organised the NRW junior fixture list.

The skills and experiences I continually learn as a sports coach help me to become a better leader in my professional career.

Running

I have competed at distances from 1500m up to marathon in recent years, claiming multiple championship titles for my age group.

Document scans