Case studies
NgRx Signal Store migration
Architecture · Rabobank · 2025
Moved limits and fraud off a bloated Redux setup onto Signal Store, across 11 modules, without taking live payments down.
The problem
The limits and fraud domain sat on a heavy Angular/Redux setup across 11 modules. Lots of boilerplate, and it was slow to change a flow that has to stay up.
What I did
- I led the migration to NgRx Signal Store. We split it into smaller stores, one per journey.
- Every release went out behind a feature flag after UAT.
- Wrote a test helper that logged each state, so we could see what the store was doing from the console.
Outcome
- 11 modules on Signal Store, live payments still running.
- Cleaner, more modular stores, and we could actually track state while we tested.
Stack
Angular, NgRx Signal Store
Vizvest
Personal project · Next.js · 2026
A privacy-first portfolio analytics app for self-directed investors. Live, with real users.
The problem
Trading 212 and similar apps show you what you own, not what it means. Dividend growth, trade patterns, compound performance, and a journal are buried or missing. Active retail investors are flying blind.
What I did
- I built a privacy-first portfolio analytics app in Next.js.
- In-depth trade history analysis.
- Dividend compounding visualisation.
- A trading journal with gamification mechanics.
Outcome
- Live with real users.
- People are arriving from LLM search. I track that in PostHog, including funnels and drop-off.
Stack
Next.js, TypeScript, privacy-first
GA to Piano
Analytics · Rabobank · 2024
Moved us off Google Analytics onto Piano for GDPR, then trained teams to use it.
The problem
We needed GDPR-compliant analytics. GA wasn't going to cut it.
What I did
- I did the Piano training, then ran workshops.
- Helped 10+ teams build dashboards, funnels, and reports.
Outcome
- 10+ teams on Piano.
- The bank has a GDPR-compliant analytics setup people can actually use.
Stack
Google Analytics, Piano Analytics
Accessibility uplift, 3 apps
Accessibility · Rabobank · 2023
WCAG 2.1 across three payment apps, with a11y in the definition of done and e2e tests for focus and ARIA.
The problem
Three payment apps hadn't been built for assistive tech. Keyboard and screen reader users were stuck.
What I did
- Overhaul across all three: VoiceOver testing, full keyboard nav, WCAG 2.1.
- Put a11y in the definition of done, wrote testing standards, and added e2e tests for focus and ARIA labels.
- Apps made compliant with the European Accessibility Act (EAA).
Outcome
- All three apps at WCAG 2.1.
- A11y is part of how the team ships, not a one-off audit.
Stack
WCAG 2.1, VoiceOver, keyboard
Payment request flow
Product engineering · Rabobank · 2025
Replaced a long, silent form with a step-by-step dialogue. About 250k requests a day.
The problem
The old payment request flow was a long form with no feedback until you submitted.
What I did
- I was one of three. We turned it into a step-by-step dialogue.
- Each step checks amount, recipient, and reference before you continue. You catch the mistake there, not in a pile at the end.
Outcome
- Shipped on about 250k requests a day.
- Available to 7 million customers.
Stack
Angular, Customer journeys
Hiring process redesign
Leadership · Rabobank · 2023
Rebuilt technical hiring for frontend and full-stack across a 300+ person department. Still the standard test.
The problem
A 300+ person engineering department had no shared bar for frontend and full-stack candidates. Hiring was inconsistent.
What I did
- I rebuilt the technical hiring process for frontend and full-stack.
- Structured assessments, rubrics, skills by level, and interviewers on the same process.
Outcome
- Still the standard technical test.
Stack
Rubrics, structured assessment