Personal Profile
Hi! I’m James, a Software Engineer at Starling Bank (Cardiff, Wales). I have previously worked for Capgemini, DVLA, IBM, Admiral Group, Sorenson Media and the Alcumus group. I have a wide experience of full stack development in both large and small scale systems. I have worked for small startups, large global organisations, UK government critical national infrastructure (CNI) and financial service technologies. I mainly work in Java and Javascript but have experience in a wide range of languages and technologies, including Ruby, Go, Python, Kubernetes, AWS, Serverless applications, Docker & K8s many more.
Work Experience
Software Engineer - Starling Bank
April 2024 - Present
At Starling I am a member of the Account Management engineering group which looks after all things customer accounts,
core customer records, transactions and more. Pretty much everything that happens in the bank will at some point
touch a service within Account Management (AM). I work as a senior-level IC in a team which acts as a drop-in team for any
and all bits of work within the bank which may not fall into distinct product categories, resulting in a workday which
is varied, ever-evolving and extremely rewarding. The tech stack is as follows:
- Java 21, with the only “framework” being Guice for DI and IoC
- Docker & K8s for services in environments
- Postgres DB in RDS & Cloud SQL
- AWS & GCP for cloud
- TeamCity & GH Actions for CI pipelines
- GitHub for all code
Starling truly do follow an “engineering focussed” mentality with Engineering having significant freedom and trust to “do the right thing” (one of Starling’s core values). The team has no scrum masters, no sprints, no Jira tickets and definitely no time tracking! It’s been a breath of fresh air and an employer I wholeheartedly recommend.
Lead Software Engineer - Capgemini
October 2022 - April 2024
Within Capgemini, I worked within the Custom Software Development (CSD) practice, in
which I was embedded within HMRC. I led a “pod” of 4 teams working on the Enterprise Integration
Services (EIS) platform. Additionally, I was a “DevOps Champion” and led many
of the improvement initiatives in play. The tech stack consisted of:
- Java microservices running Spring Boot & Apache Camel.
- Kubernetes based infrastructure using Rancher, Helm and Teraform.
- AWS underlying infrastructure supporting all services.
- BDD tests written in Cucumber/Gherkin syntax.
- GitLab CI/Jenkins for CI/CD functionality.
As Capgemini is a consultancy, I also then additionally wore a second hat on the corporate side, where I acted as a people manager and assignment manager for up to 15 people and was heavily involved in initiatives such as our internal Java Academy, strategic direction decisions relating to client contracts and standard setting across the Capgemini business.
Lead Software Engineer - DVLA
December 2020 - October 2022
I primarily worked with microservice based applications as well as some serverless applications.
These services were required to have minimal downtime and must be extremely robust and secure due to
the nature of being a government service. In this role I had gained experience in a number of different areas:
- Full CI/CD pipelines including full test suites and promotion through to production.
- Cutting edge deployment systems such as Spinnaker, Drone and Serverless Framework.
- State of the art monitoring tools such as Instana and the ELK stack.
- True agile development in a “squad” format.
- Used Scala and Go to work on Play Framework and Drone plugins respectively.
- Mentoring team members and representing the squad at many cross squad discussions.
- Actively involved with many cross government communities and chats, including security, design and software engineering standards.
Notable projects at DVLA:
- Register a Vehicle (RaV) service
- V5C Change of Address
- Multiple DVLA enquiry services including Photo at the Roadside (PATR), Enhanced drivers data (EDD) for Home Office etc.
- Tachograph service
- Driving licence domain
Senior Software Engineer - DVLA
February 2019 - December 2020
As above
Software Engineer - Admiral Group
January 2018 - Feburary 2019
Working primarily with Java based web services (both SOAP and REST based)
and web applications. Integrating custom internal software with third
party services for the insurance industry. I also develop applications
for direct customer consumption and ensure they are fit for purpose.
Main duties:
- Developing, extending and architecting new and existing solutions and products to be used internally and externally
- Improving code quality and standards through training and static code analysis systems
- Introducing CI pipeline to the development process
- Introducing test coverage metrics and enhanced test quality
- Maintaining infrastructure for our services and investigating cloud based migrations
- Presenting mini tech-talks to members of the department to share knowledge
Software Engineer - Sorenson Media
June 2016 - January 2018
Working primarily with web based technologies, I have been a
part of both the Analytics team and the Data Management Platform
(DMP) team. I have worked with Angular, Node, Python and Ruby,
with exposure to automated system testing using Cucumber and API
development using Gunicorn and Falcon (for Python). I have also
worked with several database technologies including Redshift (Postgres),
Aurora (MySQL), MongoDB and database migration systems such as Liquibase.
I have had a significant exposure to cloud systems using AWS, where I have completed my AWS Certified Developer - Associate certification. I have also worked with big data and big data systems in this role, including exposure to data warehousing systems, as well as creating custom ETL software for our data providers.
This job was working in a very agile team, including scrum masters, end of sprint reviews and retrospectives and involved working closely with product owners throughout. The role involved heavy usage of the Atlassian suite of tools, including Jira, BitBucket and Bamboo, as well as Slack for team communication.
Software Developer - Alcumus
June 2015 - June 2016
Working primarily in Java, Spring (Boot, Data, Security, Webflow etc.),
Hibernate, JSP, Thymeleaf, and a large assortment of other technologies.
I worked on both on ageing legacy systems as well as our modern bespoke systems for the business.
I work heavily on Eclipse and Microsoft SQL Server 2008, deploying to Tomcat based servers with automated builds running on Jenkins.
Graduate Software Engineer - IBM
September 2014 - June 2015
As a software engineer at IBM, I am responsible for the development,
maintenance and debugging of software in IBM’s portfolio. I am currently
working on IBM Rational Integration Tester, but have had experience working
on the distributed build team for CICS TG. I am also responsible for
globalisation of our product on top of my regular duties.
My job requires the use of many different technologies, including Oracle DB, MS SQL, MySQL, DB2, Java, Ant, Web based technologies, Web services amongst many other things. As well as this, the role of managing globalisation means I have responsibility of managing the software in many different languages, including the look and feel of the application in specific localities, functional issues arising from string changes and must be on hand for consulting of string localisation and the processes involved.
Workshop Delivery Assistant - Technocamps
November 2012 - July 2014
Technocamps is an exciting project that provides free workshops
to young people on programming, robotics, game design, app development
and much more.
It is about getting young people (11-19 years) in Wales excited about Computer Science and STEM and challenging them to think about the world around them in a different way.
My role within the project is to assist in the delivery of workshops to the students, as well as creating new workshops, and delivering these in exciting new ways.
Education
Swansea University
2010-2014
MEng Computing (1st Class Hons.)
Gowerton Comprehensive School
2003 - 2010
A-Levels - (A, A, B, C)
GCSEs - (A*, A*, A, A, A, A, B, B, B)
Professional qualifications
AWS Certifified Developer
December 2017 - December 2020
Associate
QA Consulting - Advanced secure development
December 2018
Pass
StayAhead training - Java Programming 2
May 2019
OCJP
Volunteering
STEM Ambassador
April 2017 - Present
Code Club
September 2019 - February 2020
Skills
Object oriented programming
CI/CD
DevOps
REST & SOAP APIs
AWS & Cloud
Serverless
APM/Observability
Docker & Kubernetes
Microservices
Clean code
TDD & BDD
Architecture
Mentoring
Scrum & Agile