ᛏᛟᛃᛟᚢᚱᚾ

Matt Watson

Handles: @Tojourn @mattchupichu

Hi I'm Matt, I'm a generalist software engineer who has a range of skills and knowledge in various domains of software development, with a soft spot for devops and tooling. I can advance a software project from requirements to release and understand all of the phases within the software development lifecycle. During my career I have mainly coded in Java using Springboot and have used Kafka, Redis, AWS, and Postgres to build scalable and reliable applications. I am bit of a polyglot however and have done other projects in different languages like JS/TS and Python! This website for example is NextJs and Tailwind using Github pages :D. Some of my hobbies are bbqing, skatebording, gaming and wood work. I'm looking for a team that shares my passion for quality and innovation, and that doesn't mind my occasional puns and jokes. How do librarians connect to remote computers? SSH! I was born in South Africa, but I moved to the UK a when I was 10. I love to travel, learn about different cultures and try lots of different food.

Currently employed at 10x Banking Senior Software Engineer

Read my article featured on 10x's website!

Part of a SCA (Strong Customer Authentication) and Oauth Token management feature team. Providing high risk login flows and JWT management to over 2 million customers with 99.99% (four nines) availability. We used Java 17 Springboot microservices with Postgres (Aurora), Kafka and Redis (Elasticache) on AWS EKS for Kubernetes. CI/CD using Jenkins and Bitbucket.

Work Experience

10x Banking

Senior Software Engineer - Identity & Oauth / October 2022 - Present

  • Part of a SCA (Strong Customer Authentication) and Oauth Token management feature team. Providing high risk login flows and JWT management to over 2 million customers with 99.99% (four nines) availability. We used Java 17 Springboot microservices with Postgres (Aurora), Kafka and Redis (Elasticache) on AWS EKS for Kubernetes. CI / CD using Jenkins and Bitbucket.
  • Created new team tooling by creating local setup scripts with docker compose to improve team productivity. Apps could be started locally with mocked dependencies for local testing reducing the feedback cycle time by a large margin
  • Migrated a extremely high throughput token management service from a shared elasticache redis to a dedicated clustered redis cluster provisioning with terraform. Taking the load off other services as well as improving performance of our own. Also implemented secondary indexing and clearing of such indexes via keyspace notifications on the cluster to ensure the memory useage was effcient as possible, reducing the need for larger clusters and saving money as we now needed a much smaller machine to run the cache.
  • Created a new way of templating runbooks for the company using backstage which I demonstrated to the business and helped the devops team set up. We also integrated the jenkins and score cards plugin to increase the productivity of the developer portal
  • Worked directly with Clients such as Chase Bank UK (JP Morgan) for new feature requests and support for issues when it came from migration existing mobile devices from another third party security platform. Working with them directly made sure we got the requirements exactly right and improved the relationship with the client
  • Part of the intial team upgrading internal libraries in preparatation for the Spring Boot 3.1 upgrade (from 2.7) which involved lots of cross team coordination and a solid review process. This created a streamlined upgrade process sharing the knowledge with other teams with the problems we faced during the upgrade
  • Introduced on call processes such as a captains log where previous incidents are logged in an easy to find place to help solve future issues if they happen again in the future and sharing knowledge of incident processes with other engineers on call improving productivity of handovers and reducing repeat incidents
  • Built on my knowledge, from skybet, of observabilty / dashboards / metrics / alerting to improve the overall ability to spot and support issues faster and before they cause a problem. Using such tools as new relic custom parameters, custom dashboards and alerts. This helped reduce the engineer toil of trying figure out what caused particular errors and get an answer back to client as fast as possible as well as diagnosing and fixing issues. Many of the ideas we used at skybet I have since shared here and are being used by many teams such as graph club where we look at our dashboard each week to look for errors and odd patterens to improve our dashboards along with catching any issues before they become a potential problem, providing a much better experience for the customer.

Sky Betting & Gaming

Software Engineer - Transactions / Senior Software Engineer - Gaming / Sept 2021 - October 2022

  • Implemented Kotlin based gaming recommendation engine similar to the front page of netflix. We were dubbed the 'Notflix' team, we improved the customer retention of players in the gaming side of skybet with the new feature
  • Lead the way in rewriting older legacy chef provisioned typescript applications on node 10 to kubernetes provisioned containerised applications in Kotlin. These applications used Kafka and Redis technologies for message queuing and in memory data storage. Increased preformance during the rewrite from 5k messages per second to 35k messages per second.
  • Developed many of the features for the Build a Bet product on Skybet. This involved a backend Typescript API as well as changes to React components on the front end of bet slip. Assisted other teams in integrating with our APIs providing support and documentation
  • Management of the deployments of applications to in-house Kubernetes cluster and chef provisioned virual machines.
  • Actively 'On Call' providing support for the Tranactions application stack in and out of office hours. Managing metrics / alerts of these applications using Alertmanager / Pagerduty / Grafana / Prometheus / Elastic(Kibana)

The Stars Group

Software Engineer / Feb 2020 - Sep 2021

  • Been in multiple teams from Kotlin feature development squads to platform and delivery engineering
  • Use of Kotlin and Spring Boot for development of a GraphQL API utilising technologies such as Kafka and Postgres in the Sports catalogue squad
  • Management of the deployments of applications to in-house Kubernetes cluster, this involved deep understanding of K8s and the supporting tooling around it such as Helm and the CLI (kubectl)
  • Adapted to deploying a foreign tech stack from a sister company using Chef / Ansible and AWS CDK with Jenkins and GoCD CI pipelines. This involves analysis of a lot of existing code bases configuring it in a way to use our frameworks and redeploying them into AWS
  • Use AWS daily on Centos VMs in EC2, setting up networking with VPCs and transit gateways and transitioning some minor applications to Lambdas behind API Gateway

Morrisons PLC

Technoloy Specialist / Oct 2018 - Feb 2020

  • Developed a Dropwizard Microservice to Route XML swipes from the Clocking in machines in Morrisons stores to a new third party service and to an existing legacy Oracle system. Deployed on a legacy in house server using a Freestyle Jenkins Job and internal Sonarqube quality gate analysing code quality
  • Contributed greatly to improving developers on the Storepick project at Morrisons to help improve code quality and delivery velocity. My involvement included reviewing many third party pull requests, developing tools in Python to assist with use of Ocado APIs
  • Development of an AWS lambda to notify staff customers arriving in store to click and collect which was created using Python. I also created the Multibranch Pipeline using Jenkins which runs through various environments with various tasks such as Nose2 Unit testing, Pytest BDD End to End testing Scenarios, Artillery performance tests and infrastructure creation using Terraform
  • Developed a frontend boilerplate with Vuejs, Webpack, Jest, Jenkins multibranch Pipeline and Terraform to create the CloudFront S3 Origin infrastructure
  • Given detailed talks / presentations to many new and existing contractors, on the use of GitFlow and Jenkins at Morrisons

Amina Technologies Ltd

Software Developer / Mar 2016 - Oct 2018

  • Replaced original static HTML site with self made theme and advanced custom fields CMS. Each country Amina has a distributor has its own site that can be maintained and changed by themselves with an easy to use interface. Since joining and implementing this project Amina has seen its highest ever revenues (PHP / Wordpress / Jquery / Sass / Gulp)
  • Automated warehouse product barcoding by creating a plugin that integrated directly into the website. Previously it was done manually with excel. Now all barcodes are created automatically and labels printed via the website by any operative with valid access rights, which requires very little training (Python / Django / PHP / Wordpress / Jquery / Sass / Gulp / ZPL / CUPS)
  • Researched new technology and introduced the automation of tasks wherever possible. Such as using Vagrant to create reusable virtual environments to avoid repetitive configuration and Gulp to automate some scss / js tasks

ExecSoftware

Technical Support Assistant / Jul 2015 - Mar 2016

  • QA and Technical support
  • Assisted in creating the software manual

University Of Leeds

Subwarden / Sep 2013 - May 2014

  • Caring for students and providing information
  • Supervising events
  • Being on call and responding to issues in the middle of the night
  • Standing as an authoritative symbol as well as being a point of reassurance

Skills

Kotlin

70

Java

85

Python

55

Typescript

65

Git

90

Jenkins

87

Docker

85

AWS

75

Kafka

70

Scale

  • (0-30) Basic, used a few times
  • (31-60) Good understanding, have developed actively with them commercially, but knowledge off the top my head is thin
  • (61-80) Experienced, understand most concepts can teach others, but still learning myself
  • (81-100) Mastered, have mastered most aspects of it