My passion has always been software engineering. I have been coding since I was 13 and realised quickly that this was what I wanted to do. During all of these years, I've settled into a mix of a back-end software engineer and a platform engineer using public cloud.
Overview
9
9
years of professional experience
Work History
Contractor
Tide Through 101 Ways
08.2023 - 10.2023
Developed business-critical services in Java to facilitate fraud prevention.
Helped to introduce more cohesive forms of tests to ensure functionality functioned as expected.
Supported a large-scale migration from an old, legacy stack to a new reference architecture.
Contractor
Attest Through 101 Ways
01.2023 - 08.2023
Led the build of an entirely new business vertical (video surveys).
Developed Go microservices deployed on AWS EKS using state-of-the-art technology like Kafka & Linkerd.
Pushed for BDD.
Worked to secure access to crucial PII.
Contractor
Atos
07.2022 - 01.2023
Worked as an infrastructure engineer specialist within the company on various projects.
Handled AWS, GCP & Azure infrastructure.
Acted as a consultant within the enterprise to deliver scalable, maintainable solutions.
Created serverless functions in Go using AWS Lambda & Azure Functions.
Wrote microservices in Kotlin and Go.
Contractor
Attest Through 101 Ways
02.2022 - 07.2022
Led a team of three to expand the audience reach across new markets.
Developed Java 18 & Spring Boot, and Go microservices deployed on AWS EKS.
Used Kafka to decouple services from their upstream event producers.
Used DynamoDB as a NoSQL database.
Helped to implement service-level tests.
Pushed for contract tests using Pact.
Helped migrate to GitHub Actions from Jenkins.
Contractor
Marshmallow
09.2021 - 02.2022
Helped expand the business by designing and developing a home insurance product.
Developed Java 17 & Spring Boot microservices deployed on AWS.
Led the initiative for the business to employ contract testing using Pact to verify cross-service interoperability.
Helped build the AWS infrastructure for this product, using Terraform and deployed as part of a Jenkins CI pipeline.
Helped the business migrate to mainline development from Gitflow.
Contractor
Sky
03.2021 - 09.2021
Worked to develop large-scale, customer-facing services in Scala.
Helped to develop and made recommendations to migrate to a modern tech stack with Kubernetes.
Helped to develop and improve pipelines and continuous delivery.
Helped mentor junior developers.
Pushed for fixing tech debt and deployment setup, such as automated secrets deployment & management.
Contributed to an application by being responsible for my team’s changes by volunteering to help pipeline reliability.
Contractor
Truphone
12.2020 - 03.2021
Responsible for architecting and developing a new way of delivering mobile phone data usage to business customers.
Owning several microservices written in Java using Spring Boot and some Go.
Designing and testing high-performance solutions, particularly using Apache Kafka and AWS-managed services.
Responsible for setting and recommending new, best practices for the business and for cross-functional teams.
Pushing for better-supporting infrastructure to aid application delivery, such as service mesh.
Contractor
Keysight
07.2020 - 12.2020
Responsible for setting up and maintaining all infrastructure, both internal and customer-facing, particularly Kubernetes clusters using Kubespray and EKS clusters using Terraform.
Set up a GitOps workflow using the Flux Kubernetes operator & ArgoCD.
Set up and managed a private cloud using OpenStack.
Automated the deployment of a PaaS solution to end customers using Terraform, Ansible, Kustomize and Go.
Set up & managed automatic certificate provisioning using cert-manager.
Implemented a secrets solution with Vault, including automated credentials rotation.
Facilitated the migration from a traditional reverse proxy to an API gateway using Kong.
Helped implement progressive rollout using Flagger.
Set up a service mesh using Istio.
Wrote microservices in Go to elegantly solve architectural problems.
Managed various Ceph clusters.
Helped debug various network issues, for example, issues with OpenStack & on-prem networking hardware.
Contractor
Sky
10.2019 - 07.2020
As a Java Developer, I helped develop several microservices in Java (8 & 11) and Scala
Helped educate people about reactive architecture (mainly using Micronaut and ReactiveX)
Aided the migration from on-prem VMs to GCP.
Designed and developed a new container repository solution using GCR.
Implemented several Kubernetes plugins (admission webhooks and operators mainly) in Go to help with business-specific use cases.
Helped implement a GitOps approach by championing technologies such as sealed secrets, Flux, Istio & Flagger.
Aided in the migration from manual Pact contract testing to using Pact Broker.
Helped migrate from Kubernetes 1.10 to 1.16.
Paired with key team members to disseminate knowledge of technologies; practised XP.
Helped to instil a culture of TDD in Go.
Improved service resiliency on several fronts by leveraging cloud-native and Kubernetes best practices.
Aided in the migration away from Oracle 12c to other database solutions (including but not limited to PostgreSQL, and MongoDB)
Contractor
Oddschecker
04.2019 - 08.2019
Worked for a comparison site for bets from different
Bookmakers, as part of a complete redevelopment of their platform.
Worked as part of an Agile (Kanban) team, developing microservices that were deployed on Kubernetes using Helm.
Used Java 11, Spring Boot and Camel to create, from scratch, a generic system that would ingest large quantities of data from bookmaker APIs.
Helped improve the existing infrastructure to use Python 3 and pioneered concurrent pipelines on GitLab CI within the company.
Set up alerting and monitoring using Grafana, powered by Prometheus.
Created a Camel test slice usable with JUnit 5, unlike the official Camel test support.
Championed the use of tools like Telepresence to aid in the debugging and testing of our services.
Gained experience using the Google Cloud Platform during this time; both professionally and personally at home.
Did a lot of pair programming and mentoring of other developers.
Developed Python microservices using Flask
Contractor
OpenCredo
01.2019 - 03.2019
Worked for a challenger bank based in London through OpenCredo, as part of developing an online bank platform as a service.
Worked as part of an Agile (Scrum) team to develop and maintain the suite of customer origination and management services.
Used Java 8 - 11 and Spring Boot to develop, using TDD, microservices deployed on EKS (Kubernetes) with a service mesh (Linkerd 1.x). Similarly maintained said services including all ops needs, which included exposing our apps through Apigee.
Used Terraform to write infrastructure as code.
Used Kafka as a pub-sub messaging system.
Used Avro as a standard, binary communication protocol over Kafka.
Helped migrate from AWS DynamoDB to the more relational CockroachDB.
Used Swagger extensively to document our APIs.
Migrated some services over to Kotlin.
Full Stack Engineer
BJSS
08.2018 - 01.2019
Responsible for working on different projects with different clients as a full-stack engineer, all within an Agile (Scrum) environment, including industry leaders in finance and construction supplies.
Worked with cloud technologies and various deployment models, in order to accelerate business growth.
Used Java 8 and TDD to develop a payment platform for one of the biggest builders merchants in the UK. Included developing a RESTful JSON API, and a Bootstrap & jQuery based, ES6 front-end library.
Helped refine the deployment strategy with Terraform & Ansible.
Integrated the payment platform with a third-party payment provider, who exposed a SOAP API, using Apache Camel.
Practiced TDD using JUnit, Mockito and Spring Test. Also in charge of developing end-to-end and performance (Gatling) tests.
Integrated our components using an off-the-shelf message bus, using JMS.
Wrote open-source TypeScript code (on GitHub).
Experimented, in my own time, with Kubernetes, in particular setting up a production-grade, high availability Kubernetes cluster, setting up a service mesh with Istio and developing applications for Kubernetes.
Created Python APIs using Flask
DevSecOps Engineer
Experian ECS
08.2017 - 08.2018
Acted as the DevSecOps engineer for our domain.
Responsible for creating and maintaining a suite of RESTful, JSON-producing microservices and creating new consumer-facing products in Java (8+).
Used both Maven and Gradle.
Part of an Agile (Scrum) team.
Championed a CICD (TravisCI) pipeline and several integrations into our workflow, including SonarQube for quality analysis and Veracode for security vulnerabilities.
Held the title of security champion in charge of maintaining the security of our service suite.
Responsible for extending and maintaining legacy systems written in Python 2 and Java, including some Ruby, Perl and Bash.
Wrote utility scripts in Python 3.
Pushed for the containerization of services to make deployment less error-prone.
Wrote tools to benefit developer productivity in Ruby.
In my spare time, acquired knowledge of popular cluster management tools and deployment strategies, such as Kubernetes and automated deployments using Forge. Also contributed to several Ruby projects on GitHub.
Practised TDD/BDD using Spock, Mockito, JUnit 5 and Spring Test.
Implemented caching using Spring and Redis.
Used Redis as a low-latency KV store.
Refactored security proxy, written in NodeJS, into testable, extensible ES6 code.
Integrated with many cloud services such as SQS, SNS, Lambda and S3.
Was the engineer on a cross-functional team that pioneered the use of Apigee to expose our APIs to selected partners.
Skills acquired: large-scale microservice architecture, contract testing (Pact), Docker, furthered coding standards, deployment in a large-scale, distributed environment, maintenance of legacy components both in Python and Java and contributing to large projects (both internal and open-source).
Full Stack Engineer
Marks Electrical Ltd
01.2017 - 08.2017
Developed a critical, fault-tolerant in-house management system for stock, sales orders and pricing using Scala and Java (8), also some Ruby as a full-stack engineer.
TDD was a large part of the culture.
Responsible for the infrastructure of this new service.
Maintained forks of open-source projects for internal use.
Helped migrate critical components of the website to a new, serverless architecture in Java.
Maintained most of the new infrastructure, which was built on EC2 and ECS (running on Docker containers).
Developed high-performance applications in Java for various companies, primarily Appscatter.
Skills acquired; collaboration with international teams, Java knowledge, self-management and the deployment cycle of high-performance applications, TDD, Agile.
Following deprecation, developed full front-end (Ember.js) and back-end (Ruby on Rails) for an educational platform to connect tutors to students for educational support.
Skills acquired; CodeIgniter, leadership, organisation, communication, work flow, BDD and Ruby (on Rails).
Tutor
College
07.2014 - 03.2016
Tutored students in Maths, Physics, Chemistry, Spanish and IT, at Spinoza Lyceum (equivalent of college).
Skills acquired; patience, problem solving, adapting to different teaching methods, and communication with both colleagues and students.
Software Engineer
First Center Publishing BV
07.2014 - 02.2015
Supported internal CRM/CMS in PHP and mitigated several important security vulnerabilities, including but not limited to SQL injections, weak hash algorithms and some XSS.
Full front-end (Ember.js, Angular, CoffeeScript, jQuery) and back-end (Ruby on Rails) development of a web application with the purpose of integrating a new workflow and to
ease communication between graphical designers, publishers and editorial staff
Wrote code in Java
System administrator for Mac OS X & Debian servers (Apache, nginx), performing maintenance during system outages and setting up deployment environments.
Integrated features of the new workflow into a desktop application (Qt, Objective-C, C).
Skills acquired; communication with stakeholders, independent working, project management, time management for deadlines, TDD and Ruby (on Rails).
Education
Alevels -
Spinoza Lyceum
Peter Van Anrooystraat 8, 1076 BH, Amsterdam
2014
Languages
Dutch
Native language
Dutch
Proficient
C2
English
Proficient
C2
Spanish
Upper intermediate
B2
SELF-TAUGHT SKILLS AND PERSONAL PROJECTS
Used automation (Terraform and Ansible, mainly) to set up private Kubernetes clusters, utilising Istio as a service mesh and GoCD as the continuous integration system on GCP.
Made some functions with the Fn framework as a vendor-agnostic serverless (FaaS, to be precise) provider.
Experimented with Knative to implement serverless on Kubernetes.
Experimented with GraalVM to AoT compile Java applications to an executable.
Developed and deployed Go applications onto Kubernetes
Used Chaos Monkey to do resiliency testing on private cluster.
Used Envoy, which is the data plane provided by Istio, to implement several approaches to bolster service resiliency (think circuit breaker & retries).
Tinkered with newer versions of Gradle, optimising it to see how fast it could be, particularly for multi-module projects.
Implemented a GitOps workflow using Flux, Flagger and sealed secrets, with automated canary roll-outs.