Software Engineer
Building systems
that last.
I'm a fullstack software engineer with nearly a decade of experience, currently working at the Netherlands Forensic Institute via Sopra Steria. I specialize in backend architecture with Java and Spring Boot, mobile development with React Native and Swift, and DevOps practices. On this blog I share what I learn along the way.

Experience
- Jun 2025 — Present
Fullstack DevOps Engineer
Nederlands Forensisch Instituut · via Sopra Steria
- Backend development on the Dutch DNA Database in a high-security, mission-critical environment
- DevOps engineering: CI/CD pipelines, containerization, and OpenShift deployments
- Implemented contract testing to improve API stability and prevent breaking changes
- Team lead and primary point of contact for client relations on behalf of Sopra Steria
- Nov 2021 — Jun 2025
Mobile Developer
Coöperatie VGZ · via Sopra Steria
- Rebuilt the VGZ mobile app from Mendix to React Native and TypeScript
- Contributed to the architectural design of the application
- Implemented trunk-based development and runtime validation to reduce bugs
- Coached and mentored colleagues to improve team performance and knowledge sharing
- Sep 2021 — Dec 2021
iOS App Developer
de Volksbank · via Sopra Steria
- Developed features for the iOS banking app using Swift and SwiftUI
- Applied MVVM architecture and security best practices
- Collaborated with designers, product owners, and backend developers
- Jun 2018 — Mar 2021
Software Developer
MoneyMonk B.V.
- Developed and released iOS and Android mobile applications
- Built a new REST API with Spring Boot and Kotlin
- Contributed to frontend development with React
- Jul 2017 — Jun 2018
Mobile Developer
MoneyMonk B.V.
- Mobile development for iOS and Android platforms
- Sep 2016 — Jan 2017
Junior iOS Developer
MoneyMonk
- Built iOS interfaces with UIKit and managed async streams with RxSwift
- Wrote unit tests and participated in code reviews
Technologies
KotlinJavaSwiftTypeScriptJavaScriptSpring BootReactReact NativeNode.jsNext.jsPostgreSQLMySQLDockerKubernetesElasticSearchAzure DevOpsOpenShiftAngular
Writing
- How Large Pull Requests Are Killing Your Delivery Speed
- Drone detection with code!
- Building a Drone Detection System with YOLO and Python
- When Business Meets IT
- Event Driven Systems
- Package Structure
- Immutability in java
- The Code That Knew What It Wanted
- Why Zod Is a Game Changer for Runtime Validation in TypeScript
- The Builder Design Pattern
- The Factory Method: Encapsulating Object Creation
- Understanding the Singleton Pattern in Kotlin
- The C4 Architecture Model
- CQRS with Spring Boot and Java: The Why Behind the Pattern
- Developing a Simple Game in Plain Java with Swing: My Journey So Far
- The Case for Small Pull Requests: Lessons Learned from a Big Mistake
- API Idempotency
- Understanding OWASP and Authentication
- Navigating the Murky Waters of JavaScript Exceptions: A TypeScript Perspective
- Demystifying Docker and Containerization: A Beginners Guide
- Exploring the Power of TypeScript