About
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.
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 (8, 11), Spring, Springboot, Camel, Guice, Spark, SLF4J + cal10n, JUnit, Mockito, StAX/SAX, GRPC, multi-threading & concurrency
Lambda, S3, Aurora, Step Functions, SNS, SQS, VPC, IAM, EMR, CloudWatch, CLI
Regex, Oracle SQL, PL/SQL, PostgreSQL JS, Typescript, HTML, CSS, React, Redux, bash/sh, awk, sed, make, VBA
IntelliJ, VSCode, Maven, Gradle, Git, Jenkins, GitHub, Gitlab, Gitlab CI, Bitbucket, Nexus, Artifactory, Sonar, Blackduck, Docker, VSCode, Postman
Vim, tcpdump, nc/netcat, curl, grep, jq, miller, find
Tomcat 8, IBM WAS, IBM MQ, RabbitMQ, JMS
XML Signing, 3DES, AKDS, PKI, Payshield HSM, Luna HSM, HP Fortify, Threat Modelling, PCI-DSS
GRPC, HTTP, REST, TCP/IP, ISO8583, ISO20022
SCOBOL, COBOL, TAL, TACL, HP Nonstop/Tandem, Nonstop Java, Base24, XPNET, TSS
NodeJS, Vue, Golang, Python, C, jQuery, Android (Java SDK, React Native), Bootstrap
Kubernetes/Minikube, Docker Swarm, Coveralls, CirleCI, Heroku, Netlify, Keycloak, Nginx, Squidman, HAProxy
Employment
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
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
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
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
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.
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).
Snowboarding, wakeboarding, bouldering, running (slowly!), arduino, CTFs (PHP, Python, assembly)
GitHub followers: 1, found a bug in curl
vim, Jacob, Annie
2008 - 2011
BSc Hons Mathematics
2005 - 2007
Maths, Further Maths, Chemistry, Geography, Biology