Profile

An enthusiastic, hard working, senior software engineer, passionate about delivering clean, well tested code, that is easy for others to understand.

Adept at working in agile environments, pair programming, and communicating technical implications and processes to non-technical colleagues.

A versatile developer, experienced in both client and server side development, with a natural passion for software engineering.

Expertise

  • Clojure, ClojureScript, Emacs, Leiningen, Reagent, Re-frame
  • Scala, SBT, Play, Akka-Http
  • Java, Maven, Groovy, Spring, Cucumber JVM, Apache Camel, JMS, VisualVM
  • Javascript, ES6, React, Redux, Node.js, Mocha, JSON, MongoDB
  • PHP, Linux, Apache, MySQL, PostgreSQL
  • BDD, TDD, Cucumber, Continuous Delivery
  • REST, CQRS, Event Sourcing
  • Travis, Jenkins
  • Amazon Web Services (EC2, SNS, SQS, S3, Kinesis)
  • MarkLogic, XML, XQuery, XSLT
  • Linked Data, SPARQL, RDF
  • Git, Subversion
  • XP, Agile, Kanban, Scrum

Achievements

Exoscale Led the development of IAM (Identity and Access Management), adding fine grained permissions to the platform.

Exoscale Led the refactor/rebuild of the primary web UI, replacing a JS app with ClojureScript. Approach described in my Dutch Clojure Days Conference Talk, April 2019

Credit Suisse Performance improvements and JVM tuning to dramatically increase the efficiency of a complex Clojure project that sources data from systems across Credit Suisse and makes hundreds of HTTP calls every second during peak times.

HMRC Delievered a new system to prepare tax credit renewals for automation vastly reducing the manual work required to process renewals every year.

HMRC Delivered a new payments system to process business tax payments.

BBC News Successfully delivered the 2014 Elections results service working to a tight deadline.

BBC Core Engineering Delivered new CMS features whilst contintually refactoring and improving code.

BBC Sport Led the design and delivery of a new Java service to aggregate content from multiple APIs and dramatically improved the speed of content delivery to users of the site.

BBC Sport Mentored software engineers at BBC Sport, encouraging development best practices (BDD, TDD, Clean Code).

BBC Sport Assisted in designing a new architecture with a consistent data format across sports, improved the speed of delivery and cost of maintenance.

CTI Digital Bridged the gap between the front end and service layer teams, improved communication and ensured key deadlines were met.

England Agency Designed and built a new CMS used on over 200 sites, dramatically reduced development time of new sites enabling a smaller team to deliver more.

England Agency Led the development of World Cup and Champions League games for large betting client (AS3 frontend, PHP/MySQL REST api service) played by over half a million people worldwide.

Professional Experience

Exoscale: Senior Software Engineer, Team Lead

02/2022 - Present

Orchestration of Cloud Computing services including the Network Load Balancer, and Kubernetes as a service.

Development of the next generation Identity and Access Management service.


JUXT: Senior Clojure Engineer, Team Lead

04/2021 - 01/2022

Development of a trading platform.

Clojure, ClojureScript, Elasticsearch, MongoDB

Bestmile: Senior Backend Software Engineer in Engineering & Research

05/2020 - 03/2021

Building a fleet orchestration platform to optimise mobility services for both autonomous and human-driven vehicles.

Scala, AWS, PostgreSQL, Docker, Kubernetes

Exoscale: Senior Software Engineer, Team Lead

06/2018 - 04/2020

Lead a team to develop the Clojure services that power the Exoscale cloud platform.

Clojure, ClojureScript, Docker, Kubernetes

YouView: Cloud Systems Engineer

02/2018 - 05/2018

Development of cloud microservices powering the YouView TV on demand service for Set Top Boxes and Mobile devices.

Clojure, AWS, Docker, PostgreSQL, Terraform

Credit Suisse (via JUXT): Clojure/ClojureScript Developer

03/2017 - 02/2018

Development of a request heavy Clojure/ClojureScript application that integrates with 20+ systems at Credit Suisse, enabling traders to trigger calculations of books, view results, book provisions, and sign off books at the end of each trading day.

Clojure, ClojureScript, Reagent, Re-Frame, Pedestal

Medidata: Senior Full Stack Software Engineer

06/2016 - 03/2017

Development of a greenfield project. An ES6 React/Redux front end application with microservice Scala and Akka-Http backend applications.

ES6, React, Redux, Scala, Akka-Http, Selenium, MySQL, AWS, Travis CI, Swagger

NOW TV (Sky): Scala Developer

12/2015 - 05/2016

Ongoing development of the NOW TV platform, migration from a Java EE application to microservices written in Scala.

Scala, Play, Spray, Java, Groovy, Spock, REST, MongoDB, Swagger

HMRC: Scala Developer

09/2014 - 11/2015

Development of a new payments system integrating with Worldpay.

Continued development and improvement of business tax homepage.

Development of a new system to automate tax credit renewals.

Scala, Play, REST, Cucumber JVM, Selenium, Microservices, Docker, MongoDB

BBC News: Senior Software Engineer

03/2014 - 08/2014

News Apps

Development of an aggregation API to improve the delivery of content to the News IOS and Android apps.

Java, Akka, REST, AWS
Connected Politics

Delivered a new system to consume, transform and persist election results.

Java, Apache Camel, MySQL, REST, AWS

BBC Core Engineering: Senior Software Engineer

07/2013 - 03/2014

iSite2

Temporary secondment to help out with the development of a new in-house CMS. Focused on delivering new features to enable clients to migrate to the new system, dramatically improved the feedback loop and quality of the tests to faciliate BDD.

Java, MarkLogic, XQuery, REST, AWS, Node.js
Content Store

Joined the content store team to provide expertise around the use of MarkLogic, and to form a strategy to reduce duplication across the various content management systems within the BBC.

Java, Scala, MarkLogic, XQuery, REST, JMS

BBC Sport: Senior Software Engineer

2011 - 2013

BBC Live

Led the design and development of a greenfield project that changes the way data is delivered to users of digital content, initially on the Sport website.

Java, Apache Camel, REST, Node.js
Connected Studio - Death of the Robot

Led the team from concept to delivery of a pilot project, combining the best content from Twitter with editorial content, to enrich and bring more colour to the live event experience on the BBC Sport website.

Java, Twitter Streaming API, OpenNLP, Apache Camel, REST, Node.js, MongoDB, Websockets, AWS
Sports Data

A major refresh of the architecture behind the BBC Sport website. Replaced custom XML format with open standard to enable hot switching of vendors. Improved delivery chain, reduced latency from minutes to seconds.

Java, MarkLogic, XQuery, XSLT, REST, JMS, SportsML
Linked Data Sport API

Led development of a new project to power dynamic indexes on the BBC Sport website.

Java, Linked Data, SPARQL, RDF, REST
Sports Stats

Maintenance and ongoing development of a legacy system that transformed and persisted data from third parties, then generated static server side includes to display sports tables, fixtures and results on the BBC Sport Website pre 2013.

Java, MarkLogic, XQuery, MySQL, Hibernate, JMS, REST
Sports Refresh

Initial refresh of the architecture and design of the BBC Sport website, first launched in February 2012. The first steps in replacing a statically published site with a dynamically driven site.

Java, PHP, Apache Velocity, MarkLogic, SSI

CTI Digital: Senior Developer

2010 - 2011

  • Java service development using the Spring Framework, REST, Maven, Hudson, Hibernate, MySQL
  • Front end development using PHP, Zend Framework, SOAP, jQuery and ActionScript 3
  • Test Driven Development
  • Version control using Subversion and Git

England Agency: Lead Developer

2008 - 2010

  • Project estimation and planning
  • Providing creative and technical input on all web projects
  • Developing and maintaining dynamic websites using PHP5, REST, MySQL, JavaScript, ActionScript 3, AJAX, XML and XSLT
  • Development of a new in-house CMS using the Zend Framework
  • Upgrades and ongoing development of the in-house mass mailer system
  • Server installation and maintenance, linux shell scripting
  • Version control using Subversion

Ripe Design: Lead Developer

2007 - 2008

  • Developing and maintaining dynamic websites using PHP5, MySQL, JavaScript, ActionScript 3, AJAX, XML and XSLT
  • Development of a CRM system built using Adobe Flex and PHP5 for a major property developer
  • Server installation and maintenance, linux shell scripting
  • Integration with web services - Salesforce, COINS, SOAP, Google Maps, PayPal, Google Checkout
  • Scoping and taking responsibility and ownership of large projects to ensure they are delivered on time and to brief
  • Providing creative and technical input on all web projects
  • Ongoing development of the in-house CMS
  • Version control using Subversion

Webanywhere: Web Developer

2005 - 2007

  • Web development using PHP, MySQL, JavaScript, HTML, CSS
  • Designing and developing websites for schools and businesses
  • Designing and developing new products
  • Development of in-house CRMS
  • Providing training and technical support to customers

Education


Lancaster University

2002 - 2005

BSc (Hons) Computer Science

Moorlands VIth Form Centre, Cheadle, Staffordshire

2000 - 2002

Painsley RC High School, Cheadle, Staffordshire

1995 - 2000

References


Available on request