Twenty years of .NET development, helping organizations deliver sales funnels, ecommerce platforms, operational tooling, and integrations. I enjoy working with teams, and leading them to a more efficient, innovative, and self-sustaining way of working.
a.s.r.
Team Lead Developer · Utrecht · Oct 2024 - Mar 2026 · Freelance
Technical lead on a scrum team building the sales funnels for four business lines: life, mortgages, vitality and funeral cover.
- Moved components from classic monolithic Sitecore to rearchitected headless Vue.js micro-frontends backed by an Azure backend.
- Introduced the team to contract-first development, making it easier to work in parallel and encouraged all engineers to get involved in the design of the API and the front-end components.
- Aligned 25 repositories and pipelines to a single set of standards, and built automated (AI) tooling to keep them that way.
Paying customers back after a mis-selling case
A court ruling forced a.s.r. to compensate customers on mis-sold policies. I worked with UX researchers and business analysts to design and architect the settlement journey, with integrations with IDIN, DocuSign, and Surepay.
- Dealt with the edge cases: customers who had passed away, moved abroad, changed their bank account, or changed their name since the policy was taken out.
- Handled unconventional identification methods: some customers had no IDIN, and some had no email address. The team built a secure portal for them to upload their documents.
- Progress of the users was comprehensively audited and logged to be able to answer any questions from the regulator, and to be able to prove that the process was fair and secure.
A dashboard the team actually used
- Automated the QA's daily task of auditing the pipelines, coverage, and application health reports.
- Web-based chatbot enabled non-developers to use the power of Claude connected to all our data and tooling, so that questions could be answered without having to ask a developer. Serves as a bridging solution while the organization is investigating Copilot Studio.
- Azure Resources were tagged by application, environment and business line, enabling automatic generation of infrastructure diagrams and submission of firewall exception requests via ServiceNow.
- MCP server greatly accelerates agent-driven development and systematic debugging of production issues.
LEAF
Sole developer · Apr 2025 - present · Built and run for Van de Pallande, a small organic farm near Eindhoven
All-in-one platform for subscription commerce and bookkeeping for a small organic farm. The grower sells weekly boxes of vegetables and fruit to her customers, and the platform handles the ordering, payment, delivery planning, communication, invoicing and reconciliation.
- Automated the grower's week: packing lists per pickup point, delivery planning across 8 locations, invoicing, and a bank feed that reconciles payments against invoices.
- Built on .NET 10 Blazor Server for the seller and customer portals for rapid development, and Next.js & Payload for the public websites.
- Backed by Azure App Services, SQL Server, Cloudflare and Vercel.
- Replaces Wix, Mailchimp, and a manual Excel-based workflow, saving the grower 10-15 hours a week and giving her more time to focus on the farm.
- Invoice generation is automated, with a bunq bank feed that reconciles payments against invoices, and a Mollie integration allows customers to pay by iDEAL or SEPA direct debit (automatische incasso).
- Every deploy restores a copy of the anonymised production database and runs the full test suite against it, so no schema or data change reaches live untested.
- Built an assistant that reads incoming email and WhatsApp, works out what needs doing, and puts the action up for confirmation.
- I build smaller things this way too, for people who need them. A recent one was a fundraising campaign page, branded and tested, mostly written by an agent while I was out walking the dog. It has raised about half its target so far.
Engineering tooling
- The dev loop supervises itself. It can tell a wedged file-watcher from an app that is just slow to boot, and restarts the one while waiting on the other. A green build is no proof the app is serving, which is what makes that distinction necessary.
- I run several agents at once, so every git worktree gets its own ports, its own database copy and its own logs, all derived from the directory it's in. A separate job reclaims the old database copies, and refuses to delete anything if it can't get a reliable list of what is still in use.
- Most of my own work now starts with a label on a GitHub issue or a state on an Azure DevOps work item. An agent picks it up and works on its own branch. It has no path to a shared branch: it opens a pull request, and landing is a separate deterministic step.
- The same engine drives both back ends, GitHub and Azure DevOps, behind a five-function adapter. Adding a third would mean writing one file.
- The agent decides how its work should land, because only it knows what it changed. The deterministic step executes that decision, because a moving base and a dirty checkout are where an unattended agent improvises badly. Anything unusual becomes a pull request.
Carel Lurvink
Lead Developer · Enschede · Jun 2022 - Aug 2025 · Freelance
Led the move of a large B2C and B2B commerce platform off DotNetNuke onto Sitecore JSS with Next.js.
- Built the B2B account area for logistics, employee management and reusable order lists, on a .NET Core REST API with Redis and RabbitMQ.
- Kept the CMS footprint deliberately small so the whole thing could be mocked, which is what let the Next.js developers work on Macs.
- Kept old and new login sessions in step so pages could go live a few at a time, with feature flags for testing in production.
Schreuders Sport International
Lead Developer · Leerdam · 2003 - present · Freelance
- Long-standing client. Sales and shipping for their Shopware shops, and the data exchange that keeps them in step with bol.com, Amazon and Asana. Increasingly self-service now the team can drive most of the maintenance themselves.
Aon Nederland
Solution Architect · Rotterdam · Jan 2019 - Apr 2022 · Freelance
- Sitecore Chapter Lead across the scrum teams, consolidating several separate websites onto one platform: headless Vue.js on Aon's own design system, integrated with the back office through a BizTalk layer.
- Built a form generator so administrators could move hundreds of sales funnels themselves without waiting for a developer.
- Wrote and delivered the training for developers, editors and marketers.
Earlier
- Sitecore, Lead Developer, Solution Architect and Sales Engineer. London, 2014-2018. Folded Email Experience Manager into the version 9 core product and got it onto Azure PaaS, with teams in London, Denmark and Ukraine. Before that, upgrade consulting and the developer training.
- ClerksWell, Technical Lead, London, 2013-2014, and eFocus (now Valtech), Developer, Utrecht, 2011-2012. Agency work for Heineken, Rabobank and car importers, across 20-odd high-traffic sites.
- Adido Solutions, Lead Web Developer, UK, 2008-2009. Owned the agency's CMS and its bespoke work.
- SingLouder, 1999-2007. Started the site in 1997, offering free karaoke versions of popular music. Buma/Stemra shut it down over unpaid royalties, so I incorporated it in my first year at university and ran it properly, up to 35 musicians recording in their bedrooms. Piracy took the profits and we closed in 2007.
Community & education
- Took over the UK Sitecore User Group after its sponsorship ended and it went quiet. Put it back on partner and recruiter funding, and built it a site of its own when Meetup started charging per signup. Around 150 at its peak, and I still keep the infrastructure running.
- BSc (Hons) Computer Science, University of Nottingham, 1999-2002.
Stack
C# / .NET (Framework to .NET 10) · ASP.NET Core · REST · GraphQL · microservices · EF Core · SQL Server · TypeScript · React / Next.js · Vue · Azure (App Service, Functions, Service Bus, Key Vault, Bicep, ARM templates) · Docker · Kubernetes · Rancher · Redis · RabbitMQ · Git · Azure DevOps · Jira · Octopus Deploy · CI/CD · xUnit · Playwright · Cypress · TDD · Scrum · LLM and agent integration · Sitecore