Nov 2016 - Aug 2019Platform Engineer (contract)|Energy Systems Catapult
NodeJS, Angular, Python, R, MongoDB, PostgreSQL, GraphDB, Docker, Kubernetes, Spark, Kafka, IoT, Hardware, AWS, Automation, MicroServices
Inherited an undocumented codebase from a third-party, including an unsupported
proprietary graph database and worked to achieve a stable platform to provide domestic heating for
trials involving 30 and 100 homes.
- Working within tight constraints I developed key components for the system that would
ensure a standard of reliability to safeguard all users, particularly those vulnerable to
- Developed strong working relationships with key members of different teams to fully
understand real-world issues with the applications and established proposals to address them.
- Worked with the data science team to provide an additional software resource especially
with R, Spark and Cassandra, technologies I was previously unfamiliar with.
- Took responsibilities as interim scrum master when the need arose and managed interactions
with third-party development partners.
- Encouraged use of best practice, especially amongst junior developers mentored.
Jan 2016 - Apr 2016Lead Engineer (contract)|Cromwell Tools
NodeJS, ES6, TypeScript, MongoDB, AWS, Docker, RabbitMQ, Automation, Workshops, Leadership, Solutions Design
Led the NodeJS development team on a replacement API for the main website, which
had to maintain backwards compatibility with the existing website.
- Established weekly workshops to educate the team on best practice in NodeJS and MongoDB.
- Managed the sprints and the whole agile process. The teams were spread across three
different locations and, initially, the communication was poor. Improved this by tightening the
- Encouraged the adoption of microservices for admin processes. Proposed an architectural
design for this solution and implemented it.
Oct 2015 - Jan 2016Senior Software Engineer (contract)|CDG Group
Brought in to provide Angular and D3 expertise. As a pure Java house, they had
easier development experience.
- Rewrote the front-end for their main Lean Client product. Although marketed as a single
application, in reality it was a suite of software. Configured this to build to a Docker image
- Created a Yeoman generator for fast construction of new AngularJS modules. This was partly
- Developed a comprehensive form generator to enable the API to generate a schema that would
display the user input in a consistent way.
associated ecosystems and how to develop and deploy with the module framework I developed.
Sep 2014 - May 2015Senior Software Engineer (contract)|Wealth Wizards
NodeJS, PHP, AngularJS, D3, Automation, MongoDB
Developed both front and back-end components as part of a team that created an
automated pension advice system.
- Collaborated to design and implement a Data Definition Language for the PHP back-end to
publish a comprehensive question schema. This schema would be ingested by the Angular front-end to
dynamically generate the form, which could be defined on a per-broker basis.
- Built a series of reusable Angular components to be used across the platform.
- Developed a PDF report generator for the broker’s advice to be displayed with D3
infographics. Worked closely with the firm’s pension advisers to ensure accurate and FCA compliant
Oct 2012 - Aug 2014Senior Software Engineer|GeoPost (now DPD UK)
NodeJS, MongoDB, MySQL, Rocket UniVerse, Automation, Workshops
Worked on the main DPD/Interlink RESTful API. Written in pure NodeJS, this
business-critical service was responsible for handling requests for web users, depot operations and
receiving batch data from senders.
- Implemented continuous integration principles to the development workflow. Due to the
company being a round-the-clock operation, worked with the SysOps team to reduce the time required
for software upgrades.
- Principal engineer on the industry-leading Follow My Parcel service, which included being
part of the team that designed the architecture. The primary problem was that the current system was
not designed for real-time tracking as the central database was monolithic and unscalable. The
design and implementation needed to encompass methods of achieving live updates without huge expense
or causing service outage. This was the flagship project that year and a major USP for the company,
whilst handling a large increase in daily requests - ~700,000 and ~900,000 on Xbox One and PS4
launch days respectively.
proprietary piece of software with little public documentation available, this required reverse
engineering the Java driver and translating into NodeJS. As a fundamental piece of the live tracking
architecture, this reliably handles millions of requests per day.
- Ran training sessions to upskill non-JS developers to be proficient in the NodeJS
Mar 2012 - Sep 2012Web Developer (contract)|Torpedo Group
PHP, MODX, MySQL, Mobile Development
- Built various websites using the MODX content management system.
- Created a business analytics system for major clients to track engagers of their sites and
social media accounts.
- Made extensive use of responsive web design and Twitter Bootstrap to create mobile-first
Mar 2011 - Feb 2012Lead Developer|BugFinders
PHP, MySQL, Solutions Design
- Built the alpha-release of the BugFinders project, featuring complexities such as a
streaming video server, internationalization and responsive mobile site.
- Also responsible for managing the development team, liaising with external suppliers and
helping develop the business proposition.
- The main development was in PHP/MySQL, however there was a great deal of time spent
learning new technologies (such as OAuth, Java and Python) and learning testing methodologies.
Dec 2010 - Mar 2011PHP Developer (contract)|Big Eye Deers
PHP, MySQL, Apache Solr, Leadership, Solutions Design
- Lead development of the new British Pathé website, featuring over 90,000 videos and a
large database schema.
- As well has being involved with the planning and building of the project, I learnt how to
use Apache Solr which, at the time, was largely undocumented and entirely unused in a PHP
Jul 2010 - Oct 2010
Platform Programmer (contract)|Red Procurement
PHP, MySQL, MS-SQL, Doctrine, Solutions Design
- Designed and built Streamline, a purpose-built tool to aid procurement managers track their
workflow and costs and for directors to see company-wide trends.
- Due to the sensitive nature of the data generated, one requirement was for this project was
for it to be deployable on both Windows and Linux servers, connecting to MySQL or MS-SQL databases.
Using Doctrine ORM to abstract the data stores and heavy use of unit testing to ensure consistency
Sep 2007 - Jun 2008
PHP Developer|Real Ale Shop
Developed an ecommerce system for drop-shipping start-up.
Apr 2006 - Aug 2008
PHP Developer|Northwick Events
Developed an admin system for an events management company, to automate much of the
company's admin processes.