CV
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