Colin But

DevSecOps/Platform Engineer

image

A Senior DevSecOps/Platform Engineer who builds, tests, deploys, and runs applications/microservices on the AWS cloud. A strong varied development background in both backend + frontend and with a broad technical experience accumulated to date allowed me to apply my range of technical skills across numerous business domains. A Developer turned DevSecOps Engineer who is passionate about Platform Engineering, Infrastructure as Code, creating Pipeline as Code and a firm believer in close collaboration between Developers & Operators aiming to help bridge the gap and shorten the overall release cycle. An effective team member who is very hands-on and takes ownership of business & technical requirements taking them from concept right through to production.


Work Experience

DevOps Lead/Architect

London Stock Exchange Group | 2021 - Present

Working within the Post Trade technology division's architecture working group where i oversee DevOps capabilities across the Post Trade business unit's estate.

  • Leading & Driving the rollout of the GitLab DevOps platform across teams
  • Application modernization in cloud migration projects
  • Defining DevOps best practices to solve common DevOps issues/problems
  • Coming up with tooling strategies to define the DevOps technical direction
  • Building supply chain security into our software delivery processes
  • Building monitoring and observability solutions with Datadog
  • Help define a Cloud Target Operating model for our production management team to operate on
  • Working on initiatives to improve Developer Experience (DevEx) - Developer Portals like Backstage
  • Showcasing the practice of Chaos Engineering

DevOps Engineer

Sainsbury's Digital, Tech & Data | 2020 - 2021

Working within multiple different horizontal cross functional data engineering/development teams where I was mainly responsible for the DevOps activities within the Data division. I was the reference for DevOps related issues for my team.

  • Infrastructure development using Terraform and Ansible
  • Creating CI/CD workflows using Github Actions & AWS CodeBuild
  • Development of a system that allows asynchronous SQL queries to be executed against Snowflake Data Warehouse using AWS serverless technologies (SAM, API Gateway, Cognito, Lambda, Cloudwatch, X-Ray, DynamoDB, CloudFormation)
  • Building and supporting an automated RBAC system for Snowflake Data Warehouse using AWS serverless technologies such as: SAM, API Gateway, Lambda, Step Functions, Cloudwatch, X-Ray, CloudFormation
  • Managing a Cloudera Hadoop based Data Lake Platform
  • BAU SysOps Tasks like OS Patcching, Identity Access Management, DNS configuration involving AWS services (ACM, Route53, Directory Service, Workspaces, KMS)
  • General scripting using Python & Bash
  • ChatOps: External API integration with Chat System like Slack using ChatBots

DevOps Engineer

n/a (Freelance) | 2020

  • Infrastructure provisioning using Terraform to provision AWS resources
  • Automating deployment using Ansible to deploy the application onto AWS cloud platform
  • Creating CI/CD Jenkins pipelines using both Declarative & Scripted Syntax based on Groovy DSL
  • Developing Jenkins Shared Library in Groovy for encapsulating common pipeline code
  • Creating Kubernetes cluster on AWS using AWS's managed Kubernetes Service (EKS)
  • Creating Kubernetes definitions in manifests yaml files and applying them
  • Working with Kubernetes Package Manager (Helm) to manage applications on Kubernetes
  • Full Stack development of web app using React, Java, Spring Boot

DevOps Engineer

Credit Agricole, Corporate & Investment Bank | 2019 - 2020

Working in the CVA/CCC team to perform DevOps duties around the bank's core CVA trading applications that peforms trading simulations to manage credit risks of trades. In addition, assisting with the migration of legacy monolithic applications that was running on JBoss/Tomcat application servers/web containers to running on modern infrastructure, i.e. Docker containers operting within the Kubernetes cluster and providing adhoc bug fixes & business feature developments.

  • Building apps in Docker containers on Kubernetes
  • Deployment automation using Ansible, Python
  • General workflow automation using Python
  • CI/CD pipelines creation in Jenkins using Jenkins Declarative Pipelines
  • Continuous Delivery practices proposals
  • Implementing Continuous Deployment by automating deployment of built applications from Jenkins CI build server to various Dev/Test servers
  • Centralised monitoring using Elastic (ELK) Stack - ElasticSearch, Logstash, Kibana, Beats

DevOps Engineer

10x Banking | 2018 - 2019

Working on a project in various streams to deliver a backend platform that supports a new challenger bank. Placed within in a horizontal cross-functional feature team to help deliver a particular slice of a larger platform domain. Collaborating with both the Developers & Operators/Infrastructure Engineers in various different teams to help bridge the gap between the two disparate discipline.

  • Doing Infrastructure as Code: coding Terraform configuration to provision AWS resources
  • AWS (EC2, ECS, EKS, ECR, RDS, S3, DynamoDB, Lambda, Cloudformation)
  • Actively supporting Java Spring Boot microservices on Kubernetes
  • Creating Jenkins 2.0+ CI/CD Pipelines with Jenkinsfile
  • API integration with 3rd party services (Companies House, Due Diligence) for ‘onboarding’ a business customer onto 10x’s banking platform
  • Doing a PoC for trialling out Consumer-Driven-Contract (CDC) Testing using Pact
  • Advanced Routing with a Service Mesh in LinkerD for implemting Blue/Green Deployments
  • Experimenting with Kotlin and CockRoachDB for new microservices
  • Monitoring cloud-native microservices using SumoLogic
  • Application performance metrics measurements monitoring and observation using Prometheus and Grafana

Backend Engineer

Gamesys | 2016 - 2018

Working in the Bingo Product Development team to support and maintain an online Bingo game where the whole team was responsible for both the frontend UI development and also providing the backend core bingo gaming engine.

  • Responsible for creating and running CI build jobs on various CI systems for different apps (Jenkins, Hudson, Bamboo, GoCD)
  • Continuous monitoring application using a whole host of monitoring tools (AppDynamnics, ELK stack, Grafana, Splunk, Nagios)
  • Actively engaging the tagging of artifacts and liaising with Release Manager in releasing to Production on a bi-weekly release cycle.
  • Development of a Proof-of-Concept (PoC) on establishing the data model of the bingo scheduling tool backend connecting to a NoSQL MongoDB datastore.
  • Regular maintenance of database structure & data by writing & executing both Liquibase database migration scripts and adhoc SQL scripts
  • Messaging with Google Pub/Sub integrating with Google BigTable, querying with Google BigQuery on GCP
  • Worked on backend Bingo Engine built in Java 7, JavaEE, Spring Framework, JMS, DB2, ActiveMQ, JBoss and on a bingo games scheduling tool (Java 8, Spring Boot, JPA, Hibernate, MySQL, MongoDB, ReactJS, Redux, Bootstrap, Jest, Enzyme, Webpack, ES6)

Backend Engineer

Solarcentury | 2015 - 2016

Working in a small in-house development team developing an online task management & e-commmerce web portal for IKEA which was integrated into thier website. The developed system manages the lifecycles of solar panels from production to sales incl. allowing the public users to purchase solar panels online. Core activities resolved around doing backend Java development with minor frontend work.

  • Working on backend features development of an online task management & e-commerce web portal.
  • Occasional frontend work (HTML, CSS, JS, JQuery) on a solar panel calculator tool which is integrated into IKEA's main website.
  • Help improve the team's agile development process, streamlining it to make it more efficient.

Software Engineer

NHS Digital | 2014 - 2015

Residing in a project team of 80+ people helping deliver a like-for-like replacement in e-Referral Service (eRS) for the previous NHS online appointment booking system - Choose and Book (CAB). Working on the Data Migration stream.

  • Developing & testing the migration of production data from existing system's Oracle RDBMS to new system's PostgreSQL.
  • Setting up and providing full test environments for data migration testing.
  • Assisting with functional testing of key systems feature.

Software Engineer

NHS Digital | 2014 - 2014

Within a ‘DevOps’ focused project team of 40+ people, assisting with the delivery of NHS Spine II which is a complete-rewrite of NHS's legacy backend integration messaging system (Spine I).

  • Application monitoring using monitoring tools like Splunk, observing application performance from charts and graphs.
  • Non functional testing of failing over key components of the system's architecture like killing Redis sentinel.
  • Prioritization of automated peformance testing using Grinder (a Java Load Testing tool) with test scripts implemented using Jython (a Java implementation of Python).

Software Engineer

Thomson Reuters | 2011 - 2014

Working in a project focused team of 20+ people offsite on Bjss's development centre for Thomson Reuters on their backend New Matching Host (NMH) which is a real-time low latency multithreaded high availability FX trading host system for matching traders deals. From doing operations & infrastructure type tasks in setting up/provisioning bare-metal servers, to fixing defects, non-functional testing, performance testing, administrating databases, implementing in-house utility tools, testing tools, trading tools.

  • Using Bash Shell Scripting to create scripts that automate deployment of application to on- premise physical bare metal servers.
  • Deadlock investigations, searching for throughput spikes using low level traditional programming techniques (timing measurements to do code instrumentation, Thread dumps)
  • Performance Testing, application & database bottlenecks diagnosis
  • Java JVM heap memory, CPU, Threads, Garbage Collection analysis & fine tuning

Software Engineer

Bjss | 2011 - 2014

A Software Engineer participating in different projects for multiple clients. Involved throughout the whole Software Development lifecycle (SDLC) which includes development (new features, bug fixes), testing (functional & non-functioanl), operations

Web Developer

Mobile Velocity | 2010 - 2011

An initial co-founder of the company where I lead the company's technical development through the initial stages of their journey. I helped developed client side of a mobile web application and actively engaged with a 3rd Party technology consortium (included a former W3C panel member) for a technical feasibility study in developing prototypes using emerging (at the time) HTML5 technology.

C# Developer

Sciencesoft | 2009 - 2009

A summer internship where I was in a small team of three fellow interns to work on an automation test suite for testing the functional features of the company's core suite of products which were a series of different applications that performs modelling for oil and gas energy simulations.

Information

Certifications

  • 2021 · SQL (HackerRank)
  • 2021 · Python (HackerRank)
  • 2020 · Certified Jenkins Engineer 2020
  • 2020 · Hashicorp Certified: Terraform Associate
  • 2019 · AWS Certified Cloud Practitioner
  • 2014 · Oracle Certified Associate, Java SE 7 Programmer

Courses

  • 2021 · Systems Operations on AWS
  • 2021 · AWS Security Essentials
  • 2021 · Architecting on AWS
  • 2021 · Snowflake Data Engineering
  • 2020 · DevOps Engineering on AWS
  • 2017 · M101J: MongoDB for Java Developers
  • 2017 · M001: MongoDB Basics