James Hughes

Abstract

A software engineer with a strong passion for crafting high quality solutions, using the right tools, technologies, techniques and, most importantly, people.

I am a firm believer in knowledge sharing and this is evident in my frequent speaking engagements, education authoring and online writing. I also strongly believe the generalist approach to software development is essential to truly understanding both the "how" and the "why" of technologies, patterns and approaches so that projects are delivered with a focus on user needs rather than developer or team bias.

Experience

Home Office (Contract)

Developer/Architect

January 2017 - Current

Java, Amazon Web Services, Play, Akka, RabbitMQ, Ansible, Jenkins

Designing and developing a core integration point between my previous project and a serivce created to consolidate multiple existing integration points. Core non-functional requirements focus on resilience and fault tolerance to ensure reliable delivery of messages across multiple third-party systems in multiple formats.

Home Office (Contract)

Developer/Team Lead

August 2015 - Current

Scala, MongoDB, Play, Akka, Spray, Ansible, Jenkins, ELK

Helping to build public facing digital services for the Home Office. The role spans many disciplines including building new customer interactions, live service improvement, live service support, operations and infrastructure. Solutions built in a multi-service manner with multiple integration points.

DVLA (Contract)

Live Service Support and Service Management

March 2015 - August 2015

Technologies as below

Transitioned in to live service support for the previously delivered solution. Role included dealing with live service incidents, service improvements and running monthly service management sessions with the project board.

Developer

August 2014 - February 2015

Java, Play, OpenCV, ImageMagick, Akka, Ansible, Jenkins

Helping to develop batch processing and high volume imaging services for government projects using a service oriented approach. Work includes various image transformations (facial detection, adaptive contrast etc.), fault tolerant system design with throttling and back pressure capabilities and API design and documentation.

CyberSource (Contract)

Developer

February 2014 - August 2014

Java, Tomcat, Jersey

Contracted to help International Payments team integrate new payment gateways into existing solution. Improving overall code quality, addressing long standing technical debt and helping address process flow issues.

Pluralsight

Author

November 2013 - February 2014

Scala, Play! 2

Commissioned by Pluralsight to produce the Play! 2 for Scala course. The 2 hour course is intended to act as a high level introduction to the Scala version of Play! 2 (v2.2.1) a JVM based web framework.

Author

August 2013 - November 2013

Java, Play! 2

Commissioned by Pluralsight to produce the Play! 2 for Java course. The 2 hour course is intended to act as a high level introduction to the Java version of Play! 2 a JVM based web framework.

Kainos

Technical Architect, Government Digital Service

July 2013 - February 2014

Java, Scala, Play! 2, Dropwizard, Jenkins, Puppet

As part of the GDS Transformation team I was responsible for leading the delivery of of the Home Office Visas Exemplar as Lead Developer/Technical Architect. This role involved various activities such as working to deliver the Beta phase of the Java/Scala service based solution in an agile manner as well as helping the Home Office with their "Agile Transformation". Notable activities included - integration into WorldPay payment gateway, building a robust automated delivery pipeline, identifying areas of cross-exemplar reuse and providing technical oversight across various government exemplars.

Technical Architect, Department for International Development

November 2012 - July 2013

Play! 2, Middleman, Scala, Java, ElasticSearch, BaseX, Akka, Jenkins, EC2

Technical Architect helping develop an open source platform for visualising government aid spending in foreign countries. The beta architecture evolved substantially from the alpha project (mentioned below) to cope with changing requirements. Ultimately this solution included many JVM based technologies such as ElasticSearch, BaseX, Akka, Neo4J and Play! as well as custom rich visualisation on the web based front end via D3, Leaflet and TileStream.

Technical Architect, Cabinet Office

September 2012 - November 2012

Scala, Play! 2, MongoDB, Heroku, Jenkins

Seconded to the Cabinet Office to provide technical insight into agile delivery of a spend control solution using various technologies including Play! (Scala), Akka and MongoDB. This was a transitional role intended to ramp up and coach a inexperienced team in various topics including agile delivery, continuous delivery and a modern technology stack.

Technical Architect, Department for International Development

August 2012 - September 2012

Play! 2, Scala, Ruby, Middleman, Neo4J, MongoDB, EC2, NodeJS, D3, Leaflet, EC2, Jenkins

This role was to develop, alongside a UX consultant, the “vision” of the DFID Aid Tracker (subsequently renamed to Dev Tracker) which required aggregation and analysis of dispersed XML based datasets. This was undertaken using various JVM technologies such as Neo4J and Play!

Lead Developer, New Ireland

June 2012 - August 2012

Sencha Touch, Phonegap, Objective-C, Spring-WS, iOS, Android

Lead developer (of a two person team) on the New Ireland Mobile Pipeline - a cross platform mobile pipeline for brokers. The project involved creation of Java Spring MVC based ReSTful web services and creation of a PhoneGap/Cordova based iOS/Android application using JavaScript (Sencha Touch).

Technical Architect, Government Digital Service

April 2012 - June 2012

D3, Ruby, Scala, Play! 2, Finagle, MongoDB, EC2, Jenkins

Developed and architected (as part of a two person team) various prototypes for the GDS Innovation Pipeline. Predominantly these where JVM based projects (Play!/Scala/Java) with a MongoDB backend.

Technical Architect, Government Digital Service (ERTP)

February 2012 - April 2012

Scala, Play! 2, Scalatra, MongoDB, EC2, Jenkins

Scrum Master, Technical Architect and team member for the alpha of the Electoral Registration Transform Programme (ERTP). This was a Java/Scala service based system with a MongoDB datastore. Various iterations included building web applications in Scalatra and Play! and various service endpoints in Play! and Dropwizard (Java)

Previous Projects, Various

Before Feb 2012

C#, Java, Spring, ASP.NET MVC, Monotouch, Sencha/ExtJS and more.

Lead Mobile Developer for Kainos/VTT, Lead Developer for Evolve Mobile, Solution Architect for New Ireland Mobile Pipeline, Technical Consultant for AON Web SQP Integration, Technical Architect for AON GripT Mobile, Technical Architect for AON Carrier Dashboard Mobile, Technical Architect for AON GripT, Technical Architect for AON Carrier Dashboard, Developer/Designer for Chelsea & Westminster Hospital, Developer (Various) for Kainos