About

Experience

A capable and passionate software developer, Andrew has over 8 years of experience building, designing, integrating and supporting high-volume, high-availability, fault-tolerant, national scale payments systems (both in the UK and internationally), as well as securities and trading platforms. He has delivered mission critical financial services on-premises, in the cloud, as part of customer software sales and managed services.

Strong communication skills and ability to present technical solutions and challenges to both technical and non-technical people mean he frequently runs KT sessions within the organisation and also presents technical demos to senior level customer staff.

A versatile individual, Andrew possesses a great enthusiasm for learning new (and old!) systems and technologies, both for his own enjoyment as well as to better understand the software development landscape, its history and its future.

Motivations

Andrew is motivated to deliver high quality, maintainable, clean, robust and vulnerability free code and platforms which can be readily supported and continuously improved across a lifespan of many years if not decades.

He prefers to do things correctly rather than quickly and endeavours to understand how and why things work, not just what works. This drive and ethos means he measures success not just by the robustness, impact and overall success of deliveries, but also the ease and ability with which engineers can maintain, improve, expand, innovate and test them.

Andrew is interested in the evolving landscape of software especially when it comes to cloud tech - its ability to allow organisations to rapidly prototype, deliver and scale cost effectively to meet the shifting and expanding demands of todays increasingly digital society and businesses.

Skills

Java

Java (8, 11), Spring, Springboot, Camel, Guice, Spark, SLF4J + cal10n, JUnit, Mockito, StAX/SAX, GRPC, multi-threading & concurrency

AWS

Lambda, S3, Aurora, Step Functions, SNS, SQS, VPC, IAM, EMR, CloudWatch, CLI

Other languages, scripting

Regex, Oracle SQL, PL/SQL, PostgreSQL JS, Typescript, HTML, CSS, React, Redux, bash/sh, awk, sed, make, VBA

Tooling

IntelliJ, VSCode, Maven, Gradle, Git, Jenkins, GitHub, Gitlab, Gitlab CI, Bitbucket, Nexus, Artifactory, Sonar, Blackduck, Docker, VSCode, Postman

Linux Tools

Vim, tcpdump, nc/netcat, curl, grep, jq, miller, find

Middleware, app. servers

Tomcat 8, IBM WAS, IBM MQ, RabbitMQ, JMS

Security

XML Signing, 3DES, AKDS, PKI, Payshield HSM, Luna HSM, HP Fortify, Threat Modelling, PCI-DSS

Protocols and standards

GRPC, HTTP, REST, TCP/IP, ISO8583, ISO20022

Other experience

SCOBOL, COBOL, TAL, TACL, HP Nonstop/Tandem, Nonstop Java, Base24, XPNET, TSS

Programming (personal)

NodeJS, Vue, Golang, Python, C, jQuery, Android (Java SDK, React Native), Bootstrap

Tooling (personal)

Kubernetes/Minikube, Docker Swarm, Coveralls, CirleCI, Heroku, Netlify, Keycloak, Nginx, Squidman, HAProxy

Employment

Senior Software Development Engineer
T. Rowe Price
Jan 2021 - Present

Delivered key components facilitating a signficant platform migration to AWS with a focus on enhancing the ability of large, distributed teams to work across ~100 pipelines. Responsible for driving and delivering significant changes to our build, deployment and execution patterns to decouple pipeline execution from orchestration, improving the ability for multiple teams to work across our ecosystem.

Rapidly prototyped, build and deploy a new customer facing service from scratch in 4 weeks.

Currently studying for AWS Solution Architect - Associate certification.

Securities, book of records, Java 8/11, Spring, Springboot, Guice, Spark, JDBC, Gradle, GRPC/protobufs, SQL, shell scripting, AWS (CLI, Lambda, EMR, S3, VPC, Step Functions, CloudWatch, Aurora) Vault, Git, GitLab, GitLab CI, Atlassian, Sonar, HP Fortify, Typescript, React, Redux, Jsonforms, AG-Grid

Lead Software Development Engineer
Vocalink/Mastercard
Mar 2017 - Dec 2020

Responsible for leading a distributed team (US and UK) which designed, integrated and delivered a general purpose, configuration driven, messaging and security gateway for payments systems (principally IPS). Supports over 1000TPS over a single connection with IBM MQ, REST and TCP IP comms as well as ISO8583, ISO20022 and arbitrary JSON message formats. Horizontally scalable and with additional support driven through plugin implementations.

Provide technical leadership and drive best practices within the team around code quality, CI, design. Coordinate with other engineering leads, BAs and architects to ensure consistency across product and component integrations. Coordinate across engineering and other business areas to define and improve wider organisational practices.

Independently designed, built and delivered an ISO8583 over TCP/IP simulator from scratch with full workflow and 3DES (master and zone keys) support including a UI for key management and message initiation. Used as the de facto TCP/IP 8583 simulator deployed into internal dev/test environments.

ISO20022, ISO8583, Java 8, Spring, Springboot, Camel, JDBC, StAX, SQL, shell scripting, Tomcat, IBM WAS, IBM MQ, RabbitMQ, Thales HSMs, PKI, 3DES, Git, GitHub, Atlassian, Jenkins, Sonar, Blackduck, HP Fortify, Bootstrap, JQuery

Senior Software Development Engineer
Vocalink/Mastercard
Mar 2017 - Dec 2018

Worked on the Immediate Payments System (IPS), a platform for orchestrating ACH payments using ISO20022 and the IPS gateway for customers.

Delivered key changes around a system re-design to support cross product modularity and horizontal scaling to drive demanding throughput and SLAs.

Resolved security vulnerabilities and performed an upgrade of all java libraries across the platform to meet compliance requirements. Delivered changes to support an HSM upgrade for one of our customers.

Delivered a platform wide tooling update to create docker containers during builds allowing automated deployments of a full end to end system on local development environments and into AWS both for internal and customer use.

ISO20022, Java 8, Spring, Springboot, JDBC, AspectJ, SQL, batch and shell scripting, React, Redux, SAX, IBM WAS, IBM MQ, RabbitMQ, Luna HSMs, PKI, Git, GitHub, Atlassian, Jenkins, Sonar, HP Fortify

Developer
Vocalink
Aug 2012 - Feb 2017

Delivered changes for ATM payments, Mobile Phone Top Ups (MPTU), customer web portal and internal systems integration.

Main focus was implementing and driving DCC and FCD for ATM customers across UK and Europe, integrations with payments schemes (LINK, Mastercard, etc.) as well as settlement and reconciliation platforms for banks, independent ATM deployers, schemes and Telcos.

ISO8583, SCOBOL, COBOL, TAL, HP Nonstop/Tandem, Base24, TSS, A98, Thales HSMs, 3DES, Java 5/6, Spring, JSP, Struts, Hibernate, SQL, PL/SQL, VBA, batch and shell scripting, WebLogic, Subversion, Atlassian

Personal

GitHub

Andrew has a GitHub account if you fancy checking out what he tinkers with in his spare time. This includes work in Java, C, Android Java, React Native, React and Arduino.

Take Initiative

Since 2017 Andrew has taken part in the Mastercard Take Initiative, a yearly team hackathon/brainstorm with the intention of coming up with new ideas and innovations in the payments industry.

Over the last few years he has explored cardholder driven CPA management (patent submitted to EPO), loyalty scheme integration in chip cards and multi-modal biometric ID and payments (patent being drafted).

Hobbies

Snowboarding, wakeboarding, bouldering, running (slowly!), arduino, CTFs (PHP, Python, assembly)

Accolades

GitHub followers: 1, found a bug in curl

Team

vim, Jacob, Annie

University of Bath
2008 - 2011

BSc Hons Mathematics

Godalming College
2005 - 2007

Maths, Further Maths, Chemistry, Geography, Biology

Contact

Send an email to info@andrewflbarnes.com