Cloud and back-end development
APIs, integrations and data pipelines on AWS, in Node.js and TypeScript.
Cloud engineer. Seven years on AWS, building lead pipelines that carry tens of thousands of messages a day across thirty-plus European markets.
An internal Claude Code skill for visual regression testing of front-end applications: rendered screens are compared against a reference, so unintended visual changes are caught before they reach users instead of being spotted by hand.
SPOT is RGF Staffing's single point of truth. It pulls candidate and client-account data out of separate recruitment tools, Salesforce and a set of legacy Oracle databases, each of which held its own version of the truth, and consolidates them into one reliable source. Built on AWS in Node.js with Step Functions for orchestration, Glue for ETL, and RDS, MongoDB and DynamoDB for storage. The team was eight people; I was the integration developer.
A real-time bidding platform for a fruit and vegetable auction. Bids arrive and have to be handled live, so the platform has to stay correct and responsive while several buyers act on the same lot at the same time.
A full rebuild of Toyota Motor Europe's lead-management pipeline. Version 1.0 had grown hard to follow and hard to change safely, so 1.5 targeted a flow that is faster, simpler to operate and more secure — not new business functionality. The rebuild makes routing explicit by orchestrating it in AWS Step Functions instead of burying it in code. It carries the same load as 1.0: tens of thousands of leads per day to more than forty target systems. What Toyota got was less complexity, far less legacy code, and with that a real drop in support load.
EHUB is the lead intake and routing layer for Toyota Motor Europe. A lead arrives from a Toyota website, a campaign or a country-specific system, and has to end up in the right place depending on what kind of lead it is, so EHUB inspects every payload and routes it, by type and parameters, to one of more than forty downstream targets. Tens of thousands of leads a day, across more than thirty European markets. Serverless on AWS in Node.js and Java, with CI/CD automated through Terraform on Bamboo so environments were provisioned as code.
A proof of concept that receives driving data sent from vehicles to AWS, stores it and processes it in near real time. Each trip is enriched with weather and traffic information and used to analyse driver behaviour, which insurers can use to assess accident risk. Built AWS-native: IoT and MQTT for vehicle ingest, then API Gateway, Lambda, Step Functions, SQS and SNS, with DynamoDB, Aurora and S3 for storage. It went to production later, after I had left the project.
Research comparing the text-detection services of the three major cloud providers. A submitted image goes in parallel to five services — AWS Rekognition, AWS Textract, Azure Cognitive Services for printed and for handwritten text, and Google Vision — and the results come back side by side, so you can see exactly where the services disagree about what the image says. The finding was that no single service wins: results differed per image, Textract ahead on some and Google Vision on others.
I work for companies only, on a fixed-price quote or a day rate agreed up front. Prices on request, excluding VAT.
APIs, integrations and data pipelines on AWS, in Node.js and TypeScript.
Web applications in React and mobile apps in React Native, from first version to release.
Updates, monitoring and hosting for software I built, billed monthly.
You receive an invoice by email. Pay by bank transfer or online through the payment link in the invoice (Bancontact, card and other methods via Mollie).
At RGF Staffing we used Claude Code as part of day-to-day development: the analyst produced the analysis, development started from it, and harnesses were in place to stop the model producing wrong output. The harness is the part that matters — a model without guardrails is a liability in an integration platform.
The most useful thing I do on a project is often not writing the code but sitting with the people who own the problem and working out what the system actually has to guarantee. EHUB 1.5 is the clearest example: the brief was not new features, it was making an existing flow legible enough that the team could keep changing it safely.
Outside client work I built an EV-charging platform on my own, with an OCPP back end that talks to the chargers, an eMSP side for drivers, and a React Native mobile app over the same API. Agentic coding is what makes that scope workable for one person, and it is where I find out whether the practices I bring to client projects hold up when nobody else is there to catch mistakes.
Dutch, English, Arabic, and some French.