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.
Technical design and development of public facing services as well as internal services for development teams and back office business teams focused around EU Exit as well as general architectural and platform evolution.
Migration of an entire live system between two cloud providers. Architecting and building automated, dockerized build and deployment pipelines. Dealing with data migration between different data stores (Mongo - Postgres) and networking between external third party services with varying connectivity requirements.
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.
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.
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.
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.
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.
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.
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.
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 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.
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.
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!
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.
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)
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