Backend engineer and architect with 19 years of experience, focused on platform design and modernising legacy systems. Most of my recent work happens before any code is written, in the design discussions: event-driven or direct calls, sync or async, which database, how it scales, how it stays secure, and what happens when a message fails. I write those decisions down as RFCs and ADRs, get the teams aligned, and then build what was agreed.
Daily work with AI: coding agents, multi-agent coordination, open models, and the Skills, Rules and Workflows that guide them.
Aug 2026 - Present
Zaandam, Netherlands · Hybrid
The largest supermarket chain in the Netherlands, with one of the country’s biggest e-commerce platforms.
Aug 2026 - Present
Jul 2025 - Jul 2026
Dubai (Remote)
Real estate / Mortgage platform. Engineering org of ~20 engineers; the Core Team defines the architecture and shared frameworks the rest of the teams build on.
Jul 2025 - Jul 2026
Jul 2022 - Jun 2025
Eindhoven, Netherlands · Hybrid
Online-learning platform used by employers to train their employees. Cross-cloud architecture across GCP, Azure, and on-prem during my tenure.
Jul 2022 - Jun 2025
Aug 2018 - Jun 2022
Eindhoven, Netherlands
Dutch supermarket chain. Joined via WAES consultancy in 2018, internalised by Jumbo in 2020. Worked across the e-commerce platform composed of many Java services.
Aug 2018 - Jun 2022
Apr 2016 - Jul 2018
Brazil
E-commerce operating across Brazil, Argentina and Mexico. The Checkout team needed integrations against 7+ payment methods on top of a previous Oracle ATG platform.
Apr 2016 - Jul 2018
2007 - 2016
Java roles across consultancies, banking and telecom; the foundation for everything since.
2007 - 2016
Wrote the RFC, evaluated Crowdin and alternatives on CI/CD integration, proofreading workflow and cost. Designed and led the rollout across mobile, web and backend so all three platforms feed from the same translation source. Went live with 7 languages. Adding a new locale no longer requires engineering work.
Moved Huspy’s services from calling each other directly to domain events on Kafka (AWS MSK, Avro schemas in a Schema Registry), so one team’s change doesn’t break another. The outbox pattern and idempotent consumers keep events from being lost or processed twice; both the Kotlin / Spring Boot and Node.js / NestJS services produce and consume them.
Centralised document & image platform for the real-estate / mortgage domain. Kotlin / Spring Boot microservices with AWS Lambda image processing, S3, Postgres and CloudFront with signed URLs. Used Datadog metrics to find the bottlenecks; fixing them cut document load times by ~30%.
Two libraries with identical behaviour, one for Spring Boot and one for Node.js. Caches signing keys per Keycloak realm and AWS Cognito pool at startup; validates per-request from the realm claim. Hand-written JWT validation is gone from every microservice; new realms are configuration, not code.
Replaced the legacy LMS-integration service using the Strangler Pattern; added support for LTI 1.3 on top of LTI 1.1 and SCORM. Migrated all clients with LaunchDarkly feature flags, no disruption. New Datadog dashboards exposed which companies and courses drove the most usage.
Identified domains living inside Jumbo’s Java 7 / Mule / Spring 3 monolith and led their extraction into Spring Boot microservices using the Strangler Pattern. One full domain (~150,000 lines of code) extracted out and handed off to a new team. Smaller monolith, easier deploys, no production incidents during the strangling.
Built a new Java / Spring Boot checkout platform replacing the previous Oracle ATG one. Integrations with 7+ payment methods across Brazil, Argentina and Mexico. Jenkins CI/CD with Sonar metrics enforcing code quality on every push; Kafka and RabbitMQ for async integration; Redis and EhCache for hot reads.
2004 – 2007 BSc in Computer Science |