Senior Software Engineer with extensive experience designing, building, testing, and modernising JVM backend services across EV charging, online classifieds, location data, payments, and telecoms. Strong analytical and problem-solving skills, with deep Scala experience and a preference for functional programming on the JVM. Self-reliant in unfamiliar technical areas, quick to learn new technologies, and pragmatic about using the right tools to deliver reliable production systems.

JVM

Scala, Kotlin, JVM service design, library migration, dependency management, ZIO, Pekko, http4s

Backend APIs

REST APIs, HTTP services, OpenAPI, Swagger, API design, service integration, Thrift

Databases

PostgreSQL, MySQL, Redis, Cassandra, CockroachDB

CI/CD

Docker, Kubernetes, GitHub Actions, Jenkins, TeamCity, HashiCorp stack

Cloud / Edge

AWS, Fastly

Messaging / Events

Kafka, RabbitMQ, EventStore

Testing

unit testing, integration testing, Testcontainers, Mockito

Observability & Tooling

Git, Grafana, Datadog, Kibana, Logstash, Graphite, Claude Code, Codex

Functional Programming

typed APIs, effectful services, immutable data, composable domain logic

Senior Software Engineer

Adevinta, Amsterdam, NL

DEC 2025 - MAY 2026 (Contractor)

Adevinta is a global online classifieds specialist.

  • Worked as part of a freelance engineering team on a live migration from a legacy in-house image service to a cloud-based platform.
  • Migrated hundreds of millions of images and database records through a phased, step-by-step process over several months.
  • Implemented migration work within an existing technical design, with a focus on keeping the transition controlled and predictable.
  • Used AI coding assistants pragmatically for codebase exploration, implementation planning, refactoring support, and review preparation.
  • The migration was delivered on time, moving the service to more scalable and maintainable infrastructure.JVM / AWS / Fastly / Jenkins / CI/CD / cloud migration / backend services

Senior Software Engineer

Vandebron, Amsterdam, NL

MAY 2022 - AUG 2025 (Contractor)

Vandebron supplies 100% renewable electricity directly from local producers to consumers.

  • Built JVM services and APIs to onboard third parties as tenants for EV charge points and charge cards.Scala / HTTP APIs / OpenAPI / Swagger / GitHub Actions
  • Created shared JVM backend libraries used across the company, while migrating a TypeScript backend system onto the JVM.Scala / ZIO / Pekko / http4s / service migration / shared libraries
  • Built backend services to bring Vandebron's charge card roaming platform in-house, allowing users to charge their cars in many more locations across Europe.Scala / REST APIs / service integration
  • Migrated all of Vandebron's charge points to third parties when the business decided to shut down its charge point operations.Scala / backend services / API integration

Senior Software Engineer

TomTom, Amsterdam, NL

NOV 2021 - APR 2022 (Contractor)

TomTom is a multinational developer and creator of location technology.

  • Modernised a Scala service across major runtime and library versions, updating dependencies and replacing unmaintained libraries.Scala / dependency migration / HTTP services

Senior Software Engineer

eBay Classifieds Group / Adevinta, Amsterdam, NL

NOV 2019 - SEP 2021 (Contractor)

eBay Classifieds Group / Adevinta is the world leader in online classifieds.

  • Lead engineer for a Scala integration project migrating the marketing department to Adobe Campaign Manager.Scala / service integration / PGP
  • Migrated a high-volume backend service with hundreds of millions of records from MySQL to Cassandra while keeping the service live using dual-writes and dual-reads.Scala / Cassandra / Thrift / live migration

Senior Software Engineer / Team Lead

NewMotion / Shell Recharge, Amsterdam, NL

FEB 2013 - OCT 2019 (Permanent)

NewMotion was the market leader in Electric Vehicle (EV) charging solutions throughout Europe.

Responsible for the technical direction and lead development of JVM backend services that enabled EV drivers to charge across a broad international roaming network. This included:

  • Aggregating real-time data from multiple charge point operators and serving it to mobile clients.Scala / HTTP APIs / real-time data
  • Building backend APIs that allowed drivers to start and stop charging sessions from the mobile app and view live session information.Scala / backend APIs / mobile services
  • Designing B2B services that enabled other mobility card providers to offer EV charging through NewMotion's roaming network.Scala / B2B APIs / roaming services

Software Engineer

Prepay Solutions, Swindon, UK

FEB 2010 - DEC 2011 (6 months contractor, then permanent)

Prepay Solutions is the market leader in designing and delivering stored-value card solutions.

  • Developed a web-based configuration tool that allowed non-technical users to manage stored-value card setup.JVM / Spring / JavaScript / jQuery

Delphi / Java Engineer

Xenicom, Bristol, UK

MAR 1999 - SEP 2005 (Permanent) / FEB 2008 - JUN 2008 (Contractor)

Xenicom (later Andrew Network Solutions) developed products for the mobile telecoms industry.

  • Developed tools to help mobile operators roll out and upgrade their base stations.Delphi / JVM

Delphi Engineer

Health International, Bristol, UK

JUN 1995 - MAR 1999 (Permanent)

Health International provided solutions to the healthcare industry.

  • Led development of a new Windows-based version of a patient care survey tool.Delphi

Get in touch

Use the form and I will reply directly.