I am a full-stack developer who likes to build software with a focus on quality, security
and customer needs. I have over 15 years' experience working in agile teams developing
Java web applications including leading several projects in my role at Digivault. I am
primarily interested in working on projects in the renewable energy sector. I'm a
citizen of the EU and UK.
Experience
8i Fintech - Full Stack Developer
2023-2024 (contract)
After Digivault was purchased by 8i Fintech, I worked as a contractor on the Digivault platform.
Multi-party computation
Adapted the Digivault platform to use mutli-party computation enabling deployment across distributed cloud hosts
New Web Portal
Completed the implementation of the customer-facing web portal
Digivault Authenticator
Rebranded the Digivault app to function on the 8ifintech.com domain
Digivault - Senior Full Stack Developer
2019-2022
Digivault is a secure digital asset custodian and was the first cryptocurrency custodian to obtain an FCA registration in the UK.
Digivault Custody
I was responsible for implementing and deploying their cold-custody technology which allowed us to sign blockchain transactions offline using private keys held in a hardware-security-module.
Helped to design a data flow process that could execute relevant instructions entirely offline.
Designed and implemented a data serialisation format based on QR codes.
Designed and implemented a dynamic approval rule engine (Digisafe Policy Engine).
Digivault Authenticator
Lead an external team of developers and QA engineers to develop a mobile authentication app.
Helped to design the requirements for the Digivault Authenticator app.
Reviewed the iOS and Android code to ensure it met the project's requirements and quality standards.
Held regular meetings with the out-sourced development team removing blockers to ensure on-time and under-budget delivery.
Off-exchange Custody
Lead a team of three to deliver Exchange Connect which allows users of a 3rd-party exchange to hold their assets securely with Digivault.
Designed and implemented a method for making API calls using shared-secret API keys stored offline.
Designed and implemented a model to allow traders to lock, trade and settle assets daily.
New Web Portal
Lead a team of two on the implementation of a new design for the customer-facing web portal.
Worked closely with the web-design team to create a new design for the web portal taking into consideration client needs and security.
Helped to re-write the old React front-end using Typescript and Svelte.
Delegated tasks to another developer while maintaining a high code quality standard and end-to-end test coverage with Playwright.
Leadership roles
As the second-most senior developer on the team, I had responsibility for managing other development teams and reporting status to management.
Interviewed developer candidates and reviewed their code submissions.
Performed initial research and presented on the Polkadot blockchain.
Became a champion for testing ensuring high quality and reliable tests.
Lead two separate projects in teams of 2-3 developers.
Presented weekly status updates to management.
Rubric - Localisation Automation Tools Developer
2017-2019
Rubric is a localisation company translating English software to 40+ languages.
Process automation
I wrote Java plugins for the WorldServer
localisation platform which parsed JSON, YAML, XML and other file types in order to extract their translatable strings. I also wrote internal python scripts
to automate the pre- and post-processing of clients' English source and translated files.
Created a generic parsing architecture for chaining different file parsers together.
Created a diffing algorithm for key-value data comparing 4 different file versions simultaneously.
Created an automatic delivery system which pushed deliveries directly into clients' git repository.
QMetric Group Limited - Server Side Developer
2012-2017
QMetric is the technology company behind the new insurance website Policy Expert which combines insurance sales with price comparison and brokerage into a single service.
Server Side Development
I was responsible for the development of their new generic insurance platform which allowed us to launch several new insurance products including motor and home insurance. I worked on the java/groovy backend which used a CQRS and event-sourcing architecture backed by MySQL and MongoDB. I also worked on the javscript front end using AngularJS and Backbone.
Worked closely with business analysts to develop new features delivered and deployed in weekly iterations.
Integrated the system to several third-party services including the Insurecom Car insurance platform.
Created an operations web application for defining arbitrary insurance products using AngularJS.
Created a Dropwizard microservice to provide data access to a legacy application.
Created a chat room bot to trigger deployments to development environments.
Playfish (Electronic Arts) - Server Side Developer
2010-2012
Playfish was the UK's leading developer of social games. I was responsible for developing the server side Java web application technology for games handling up to 10M unique players per day.
Game Development
As a server developer, I worked on two major games, Restaurant City and The Sims Social, at their peak reaching 5M and 10M daily players respectively. The Playfish architecture is heavily service-oriented and hosted entirely by AWS. I was responsible for developing high quality features in collaboration with game designers, PMs, QA and other development teams.
Built monitoring page for The Sims Social to visualise the real time performance of the game.
Improved performance by analysing thread dumps, heap dumps and garbage collection statistics.
Automated the Maven build process by writing a command line script in Ruby saving hundreds of hours of developer time.
Modularised the game code for Restaurant City by converting the build process from ant to Maven.
Game Content Management System
The Playfish Content Management System is a tool designed to speed-up iteration cycles and eliminate errors for all their games' content. Built on top of the hierarchical database Jackrabbit, it supports locks, transactions and branching for game content data.
Helped to design a clean and consistent REST API for clients to interact with the server.
Implemented REST services on the server side using Jersey.
Ran training sessions on git for SVN users over 5 weeks.
Markit - Associate Developer
2007-2010
Markit (now S&P Global)'s primary business is the calculation of prices for derivative
financial instruments by the aggregation of prices provided by banks. I was part of the development team
of their CDS product and starting in 2008,
the Clearing service.
Clearing Project
Lead developer from the start of Markit's high profile Clearing service to provide banks with reference prices for CDS and credit index instruments.
Developed a web application to receive and process XML price feeds based on Java, JEE, Spring and Oracle.
Developed a Java algorithm to calculate CDS prices and trades from contributed bid/ask prices using a simulated auction process.
Mentored and guided other team members in their general development practices.
Aided the project lead with planning, estimating and architecture and design decisions.
During the project, I suggested and implemented many improvements to the development process such as: