Selected Work

Case studies

Real design problems, written at the architecture and decision level rather than line by line. Each one walks through the options I considered, the trade-offs, and why the call went the way it did.

01
Albert Heijn · current Domain solution design & build (team)

Identity & access layer for a transport platform

Every service sat behind one shared static-RBAC gateway that tangled authentication with authorization. I turned the enterprise identity standard into a buildable transport-domain design and built the replacement: per-app, policy-based access with a dedicated identity provider, policy-as-code, and an API gateway provisioned as code.

Identity provider (OIDC/SAML)Policy-as-code authzAPI gateway-as-codeKotlinKubernetes
Read case study arrow_forward
02
Albert Heijn · Feb–Jun 2025 Sole designer & author (graduation project)

A reusable event-publishing framework

Every team was re-solving reliable event publishing on its own, some subtly wrong. I designed and built a reusable Kafka + Debezium framework that closes the dual-write hole: a projected ~16 of an estimated ~24 developer-years saved at full adoption.

KotlinSpring BootApache KafkaDebeziumDDD
Read case study arrow_forward
03
Albert Heijn · recent Solution design & architecture

Using AI only where rules run out

One monolithic LLM prompt handled the entire classification step, brittle and hard to trust. I redesigned it into a routed service: deterministic policy where the answer is known, an LLM only where judgment is genuinely needed.

Multi-agent LLMKafka (event-driven)Classification & routingRegression testing
Read case study arrow_forward