Software developer and consultant with solid commercial experience in a wide range of programming languages including Ruby, JavaScript, Python, Java and C++. Working with business owners, product specialists, and many teams of developers has given me strong commercial awareness and an appreciation for good communication, efficiency and respect.
Experience
Senior / lead developer
Part of Realla's agile and highly productive development team building the company's commercial property search portal.
- Built new features for the site using Rails, ElasticSearch, JavaScript and Vue.js
- Orchestrated data collection, and built a suite of reports for the sales team to show how their clients' advertised listings were performing and which companies were looking at them, using Google Analytics, Google Tag Manager, BigQuery and Data Studio.
- Fully localised the site, so it could be launched in France, USA and Canada
- Automated reporting of Core Web Vitals statistics to ensure the site was performant and valid, and ranked highly in Google searches
- Created a suite of browser tests with Jest and Puppeteer to ensure that Google Analytics events were still being triggered correctly
- Ported the core map search function (Google maps) from jQuery to Vue.js to improve performance and maintainability
Technologies used: Rails, JavaScript (ES6), Vue.js, ElasticSearch, Google Analytics, Data Studio, BigQuery, jQuery
Consultant
Integrated two companies' insurance tax and compliance data, and built a comprehensive tax calculation and compliance tool to give their customers the advantage of their combined expertise.
- Analysed the two data sets, and designed a schema to accommodate information from both
- Built a workflow allowing tax experts to identify and resolve discrepancies between the two sets of data
- Designed and built an API and tax calculator to prompt users for the required information, then present a breakdown of tax and compliance information
- Built a synchronisation system to ensure updates from both data sets were fed into the workflow, so the system was kept up to date with the latest data
Technologies used: JavaScript, Haplo repository, Redux, Tableau, jquery, underscore.js, Fossil SCM
Developer
Student Loans Company
Developed the Postgraduate Loan platform; a collection of Clojure and Java microservices with a JavaScript front-end, used to manage post-graduate loans
- Built microservices in Clojure and Java
- Ported a knockout-based frontend to React+Redux
- Upgraded the database to Mongo Enterprise
Technologies used: Clojure, Java, Javascript (ES6), React, Redux, Ruby, Mongo, Go CI, DropWizard, Chef, Capistrano
GOV.UK Verify
- Re-wrote the Verify front-end, which was a Java web application, in Ruby on Rails
- Developed the Verify platform (Java) which allows users to prove their identity and authenticate against many government systems.
- Improved performance of the system to ensure its ability to handle anticipated load
- Formulated a strategy for detecting attacks on the system, such as attempts to hijack a user's session and steal their identity
Technologies used: Ruby on Rails, rspec, Java, DropWizard, SAML, Guice, Gradle, Python, Sphinx, JavaScript, Jenkins, Puppet, Fabric
Ofgem
Extended a suite of MVC.net applications used to collect, process and manage data for customers of the Renewable Heat Initiative scheme.
Technologies used: C#, JavaScript, knockout.js
Zopa
- Extended and refactored a financial transaction platform used to create, match and administer loans, written in C#
- Added functionality to the customer-facing portal website, built with Ruby on Rails
- Refactored and automated the deployment of a Python machine learning system to identify loans that should be declined, reducing workload on the team
Technologies used: C#, Ruby, Rails, Sinatra, Capistrano, Python, Jenkins
Software Development Manager
Built software to generate revenue from the company's intellectual property, and automate as much of the core business function as possible:
- Insurance Premium Tax calculator and tax return generator that guided users through the process of importing clients' data, correcting errors, calculating tax, requesting funds, making payments and submitting tax returns. This reduced the burden on tax specialists, allowing them to handle more clients, and reduced financial losses due to miscalculation of taxes or late filing of returns.
- Web-based tax calculator product for underwriters and brokers to determine the correct taxes for a policy prior to providing a quote to their customer, eliminating financial losses and reputational damage. This was sold as a SaaS offering to customers, allowing the company to further monetise its tax and compliance database
- Client portal providing secure access to tax returns and financial statements, a customised tax calendar, and a knowledge bank of tax legislation and articles, removing the burden from staff.
Technologies used: Ruby on Rails, PostgreSQL, HTML, JavaScript with Prototype and jQuery libraries, Git and Subversion source control systems, Linux and Solaris operating systems
Freelance Developer
Worked directly with clients to see products through from conception to sign-off, and as part of a larger team of subcontractors.
Mobix Ltd | May 2005 - April 2009
Audio conferencing platform front-end built using PHP/HTML/JavaScript, companion mobile phone applications for Blackberry and Symbian, Novell Groupwise plugin.
Minetoo | July 2007 - February 2008
Social networking website using Ruby on Rails; based around the idea connecting with people sharing the same birthday.
Routo Telecom Ltd | November 2006 - March 2007
J2ME application for sending and receiving SMS and internal messages between Routo Telecom's customers, mimicking a typical handset's inbox, outbox and 'sent messages' setup.
Yview | October 2004 - April 2005
Scheduling and resource booking system for an oven cleaning company, written with a custom framework that used a combination of C++ for the business logic, and Perl scripts generating C++ to build HTML for the user interface, to produce a fully compiled stand-alone web application.
Onboard Consulting | October 2004 - December 2004
Java applet providing in-browser scanning functionality from any device attached to the local machine using the TWAIN interface.
Travel
Travelled to Asia, Australasia and South America. Completed a few small freelance projects to keep my programming skills up to date.
Developer
Developed two WAP-based mobile phone games running on the J2EE platform, and the user interface and memory card subsystems for a PlayStation 2 title written in C++
Developer
C++ client-server application for synchronising data between multiple sites over low bandwidth connections.
Design Engineer
Built a USB module using Celoxica's Handel-C language, allowing customers to add off-the-shelf USB functionality to their products.
Further career history available on request
Education and qualifications
University of Southampton | Sept 1997 - June 2000
BSc Computer Science (2:1). Optional modules included AI, computer vision, machine learning and neural networks.
Wellington School, Somerset | Sept 1989 - June 1996
A-levels: Maths (A), Physics (A), French (B). 9 GSCEs including Maths and English
Activities and interests
When not driving my sons to sports fixtures, I enjoy a range of sports including triathlon, surfing, and snowboarding.