ik

Thomas de Bruin

Software engineer

Ik ben een ervaren software engineer gespecialiseerd in Java/Kotlin. Ik heb ruime ervaring met diverse frameworks, tools, platformen en technieken, waaronder Spring (Boot), Java EE, Hibernate, JPA, Maven, JUnit, Pitest, Cucumber, Selenium, JSP/Servlets, GitLab CI, Rancher, Bash, NGINX, REST (JSON), SOAP (XML), Docker, Kubernetes, NPM, Node.js, Angular, TypeScript en JavaScript.

Ik heb voor diverse grote organisaties software gerealiseerd binnen complexe en maatschappelijk relevante domeinen. Een van mijn meest impactvolle projecten was bij de Kamer van Koophandel, waar ik als Lead Java Developer samen met een Scrum team verantwoordelijk was voor de ontwikkeling van het UBO-register en het bijbehorende backoffice systeem, de kern van de wettelijke UBO-registratie waarmee Nederland voldoet aan Europese anti-witwasrichtlijnen. Op de ingangsdatum van de wet stond alles gereed en werkte het goed, en het Adviescollege ICT- toetsing beoordeelde het project positief.

Bij Zorg en Zekerheid werk ik in een Scrum/DevOps-team aan Java- en Kotlin-applicaties voor de particuliere en zakelijke markt. Het grootste project is het uitfaseren van de Oracle Service Bus voor MijnZZ Zakelijk: een omvangrijke codebase met veel technical debt, een strakke deadline en business logica die door de hele keten aangepast moet worden. Ondanks tegenvallers tijdens de ontwikkeling ligt het project op koers om de deadline te halen. Dat komt mede door intensieve afstemming met analisten, testers en de business.

Ik werk graag in agile/scrum-omgevingen en ben sterk resultaatgericht. Indien nodig kan ik prima zelfstandig werken maar het prettigst vindt ik om te werken in DevOps of scrum teams. Het geeft mij veel voldoening om gezamenlijk er alles aan te doen om met kwalitatief goede software oplossingen waarde te creëren voor de klant.

In mijn vrije tijd ben ik ook regelmatig bezig met het software development vak. Zo verdiep ik mij graag in (voor mij) nieuwe technieken, talen, frameworks en A.I. De opgedane ervaring en inzichten kan ik dan vervolgens weer toepassen in de praktijk.

Download

Senior Java / Kotlin Developer

Zorg en Zekerheid

Januari 2026 - Heden

Lid van het ESB-scrumteam dat samen met één ander team verantwoordelijk is voor vrijwel alle Java-backendapplicaties van de afdeling IT Change & Development. Daaronder vallen de MijnZZ- omgevingen (web en app) voor particuliere en zakelijke klanten. Mijn focus ligt op MijnZZ Zakelijk, het platform waarmee uitzendbureaus buitenlandse uitzendkrachten verzekeren en gemeenten hun inwoners.

Vervanging Oracle Service Bus door MuleSoft

Een risicovol project met een strakke deadline, in een complex landschap met veel technical debt en zonder CI/CD. Het was geen één-op-één-migratie: een deel van de functionaliteit moest opnieuw ontworpen worden. Ondanks tegenvallers tijdens de ontwikkeling ligt het project op koers om de deadline te halen. Dat komt mede door intensieve afstemming met analisten, testers en de business, en doordat we eerder zijn gaan integreren en testen. Mijn bijdrage:

  • Met analisten, testers, business en ontwikkelaars afstemmen wat, hoe en wanneer te bouwen, zodat risico's zichtbaar werden
  • Al tijdens de ontwikkeling integreren en testen om de feedbackloop kort te houden
  • Technical debt proactief opruimen, waardoor wijzigingen steeds eenvoudiger werden
  • CI/CD opzetten in een omgeving waar die ontbraken

Overige werkzaamheden en resultaten

  • Ontwerpen, bouwen en onderhouden van REST API's en backendapplicaties in Java en Kotlin (Spring Boot, Spring MVC)
  • Integratie met SOAP- en REST-services en Oracle-databases (Hibernate/JPA)
  • Medewerkerslogin voor applicaties gerealiseerd met OAuth2 via Microsoft Entra ID- appregistraties
  • Migratie van on-premise naar Azure: Jenkins-buildjobs naar Azure DevOps Pipelines
  • End-to-end observability verbeterd met Sentry, waardoor incidenten sneller gedetecteerd worden
  • Technische analyses, verbetervoorstellen en uitwerking van stories; ketenbrede probleemanalyse met andere teams
  • DevOps-werkwijze: verantwoordelijk van ontwikkeling en testen tot deployment en monitoring
Java(17 t/m 21) Kotlin Servlets/JSP Java EE (web) REST Spring Spring Boot Spring Security Spring Web Spring MVC Spring Test / Spring Testing Tomcat (9,10 en 11) JDBC JWT OpenID Connect Microsoft Entra ID Oauth2 Junit5 Pitest Mockk Log4j Kotlin-logging JAXB JAX-WS Jackson Mockito Swagger Docker OpenTelemtry Sentry Azure Oracle database SQL JPA Hibernate TypeScript JavaScript NodeJS NPM Git Jira Scrum Agile DevOps CI/CD DORA Open API MuleSoft ESB A.I. Github Copilot Claude

Senior Java / Kotlin Developer

ANWB

Januari 2024 - December 2025

Bij ANWB maakte ik deel uit van een Scrum/DevOps team dat verantwoordelijk was voor de doorontwikkeling en het operationeel beheer van Mijn ANWB, het beveiligde deel van anwb.nl waarvoor gebruikers inloggen om hun producten, facturen, mutaties door te voeren, etc. Dit omvatte zowel backend- als frontendcomponenten, evenals de onderliggende API’s die ook door andere teams en applicaties worden gebruikt, zoals de Onderweg App.

Verantwoordelijkheden en werkzaamheden

  • Ontwerpen, bouwen en onderhouden van REST API’s in Kotlin met Spring Boot, ontsloten via een Kong API Gateway.
  • Integratie met diverse back-end systemen, waaronder SOAP services, REST API’s, AWS SNS/SQS messaging en NoSQL databases (DynamoDB, DocumentDB).
  • Uitvoeren van technische analyses, opstellen van verbeter- en wijzigingsvoorstellen, uitwerken van stories en realisatie van nieuwe functionaliteit.
  • Samenwerken met andere teams aan ketenbrede technische oplossingen en probleemanalyses.
  • Actieve betrokkenheid bij zowel ontwikkeling, testen, deployment als monitoring binnen een DevOps-omgeving.

Kwaliteit, testen en monitoring

  • Toepassen van unit tests (JUnit, Mockk) en integratietests (SpringTest, MockMVC).
  • Functionele end-to-end tests met TypeScript, Cucumber en Selenium.
  • Monitoring en observability via Grafana, met metrics en logging ontsloten via Prometheus en tracing met OpenTelemetry.
  • Verbetering van synthetische tests en observability om sneller incidenten te detecteren en herstellen.

Belangrijke projecten en resultaten

  • Herkenning en personalisatie: Implementatie van gebruikersherkenning op basis van cookies, waarmee gepersonaliseerde functionaliteit en content mogelijk werden gemaakt.
  • Betalingsregeling-functionaliteit: Realisatie van nieuwe functionaliteit binnen Mijn ANWB waarmee leden online betalingsregelingen kunnen treffen.
  • Oplossing voor piekbelasting tijdens zomer- en prolongatieperiodes: Analyse van zwaarbelaste webservices en vervanging van bottlenecks door efficiëntere API’s. Implementatie van circuit breakers voor gecontroleerd herstel bij storingen en om cascading failures te voorkomen. Resultaat: sinds implementatie geen verstoringen meer tijdens piekperiodes.
  • ANWB Marketplace-integratie: Ontwikkeling van API-koppelingen om gekochte producten en facturen zichtbaar te maken via Mijn ANWB.
  • Vernieuwing declaratieproces: Vernieuwde backend- en API-structuur ter ondersteuning van een nieuw financieel backoffice. Verbeterde gebruikservaring voor consumenten bij het indienen van declaraties.
Java(17 t/m 21) Kotlin Servlets/JSP Resilience4j Java EE (web) REST Spring Spring Boot Spring Security Spring Web Spring DATA Spring Test / Spring Testing JDBC JWT OpenID Connect Oauth2 Junit5 Pitest Mockk Logback Kotlin-logging JAXB JAX-WS Jackson Mockito Swagger Docker OpenTelemtry Grafana Kubernetes Kong Apigee AWS SNS SQS TypeScript JavaScript NodeJS NPM Git Jira Scrum Agile DevOps DynanmoDB DocumentDB Open API

IT Consultant (beheer & ontwikkeling)

Bergings Centrale Drechtsteden

Januari 2023 - December 2025

Bergingscentrale Drechtsteden is een MKB-bedrijf in berging en transport zonder eigen IT-afdeling. Ik vervul die rol voor hen en ben het aanspreekpunt voor alles wat met IT te maken heeft, van dagelijks beheer tot ontwikkeling.

Ik beheer de Microsoft 365-tenant: gebruikers, licenties, beveiliging en toegang via Entra ID. Daarnaast regel ik de werkplekken, inclusief de aanschaf en het leasen van hardware. Ik onderhoud de bedrijfswebsite en heb koppelingen gebouwd tussen de systemen die ze gebruiken. Ik adviseer ze bij IT-keuzes.

Microsoft 365 Entra ID Intune VIte NodeJS JavaScript Gitlab Handlebars CSS SASS SCSS Bootstrap NPM OPS

Lead Java Developer

Kamer van Koophandel

Januari 2018 - December 2023

Als lead Java developer was ik verantwoordelijk voor de technische realisatie van het UBO-register (Ultimate Beneficial Owners), het register waarin bedrijven verplicht hun uiteindelijk belanghebbenden vastleggen conform de UBO-wetgeving (in werking sinds 27 september 2020).
Het doel van dit project was om witwaspraktijken en terrorismefinanciering te helpen voorkomen door meer transparantie over eigendomsstructuren te bieden.

Het UBO-programma had een grote maatschappelijke en technische impact op zowel de organisatie als het IT-landschap van de KVK. De deadline was wettelijk vastgesteld — het systeem is op tijd en succesvol live gegaan. Het project werd onafhankelijk getoetst door het Adviescollege ICT-toetsing (voorheen BIT) met een positief resultaat: BIT-advies programma UBO-register

Verantwoordelijkheden en werkzaamheden

  • Technisch verantwoordelijk voor de ontwikkeling van het UBO-register en het backoffice systeem.
  • Leiden/ondersteunen van het ontwikkelteam binnen een Scrum-omgeving; bewaken van technische keuzes, codekwaliteit en implementatiestandaarden.
  • Vertalen van requirements naar concrete user stories in Jira in samenwerking met de product owner, architecten, analisten en teamleden.
  • Begeleiden en coachen van teamleden bij ontwerpbeslissingen en implementatie.
  • Verantwoordelijk voor een stabiele, schaalbare en veilige architectuur, conform de eisen van wet- en regelgeving.

Technische realisatie

  • Ontwikkeling van REST API’s met Java, Spring Boot, Tomcat, JPA/Hibernate en DB2.
  • Authenticatie en autorisatie met Spring Security en LDAP.
  • Integraties met interne en externe systemen via SOAP (XML) en REST (JSON) API’s.
  • Toepassing van DB2 bitemporal datamodellering voor materiële en formele historie — essentieel voor juridische traceerbaarheid van UBO-gegevens.
  • Autorisatie en authenticatie over de gehele keten met OpenID Connect en JSON Web Tokens (JWT).
  • Realisatie van REST API’s waarmee gebruikers via mijnKVK hun UBO-gegevens kunnen inzien en waarmee uittreksels uit het UBO-register kunnen worden gegenereerd.

Backoffice systeem

  • Ontwikkeling van een interne applicatie ter ondersteuning van het UBO-opgaveproces.
  • Frontend: ontwikkeld met Angular, TypeScript/JavaScript, en geserveerd via NGINX.
  • Backend: op basis van Spring Boot, REST, en vergelijkbare technologieën als het UBO-register.
  • Aanvullende integraties en services met o.a. JMS en PostgreSQL.

Infrastructuur & DevOps

  • Containerisatie met Docker en deployment in Kubernetes-clusters beheerd via Rancher.
  • Continuous Integration en Deployment ingericht met GitLab CI.
  • Build- en deploymentprocessen geautomatiseerd met Maven, Node.js, NPM, Liquibase, Bash scripting, Rancher CLI en Kubectl.
  • Versiebeheer en code reviews via Git.

Testen & kwaliteitsborging

  • Unit testing met JUnit en Mockito.
  • Mutation testing met Pitest.
  • Statische code-analyse met SonarQube.
  • Security scanning geïntegreerd in CI-pijplijnen.
  • End-to-end regressietests met Cucumber en Selenium.

Resultaten

  • Volledige oplevering van het UBO-register op de wettelijke ingangsdatum (27-09-2020).
  • Positieve onafhankelijke beoordeling door het Adviescollege ICT-toetsing.
  • Robuuste, schaalbare en goed onderhoudbare architectuur neergezet met sterke nadruk op security, auditability en compliance.
  • Succesvolle implementatie van DevOps-principes binnen het team, waardoor releases sneller en betrouwbaarder konden plaatsvinden.
Java(8 t/m 17) Tomcat Servlets/JSP Java EE (web) REST PostgresSQL DB2 DB2 bitemporal (SQL:2011) SQL Spring Spring Boot Spring Security Spring Web Spring Data Spring Spring Test / Spring Testing JDBC JWT OpenID Connect Oauth2 Junit Pitest JPA Hibernate Camunda Cucumber Selenium Bash Gitlab Gitlab CI Yaml/YML XML SOAP JSON NGINX Angular TypeScript JavaScript NodeJS NPM Git Linux Alpine Logback SLF4J JAXB JAX-WS Jackson Mockito Swagger Docker Kubernetes Rancher JavaMelody Kibana Maven SonarQube Liquibase JMS OWASP Jira Scrum Agile Open API

Senior / lead Developer / Solution Architect

Bomasco

November 2017 - heden

Dit is mijn eigen bedrijf. Doel van mijn bedrijf is waarde creëren voor mijn opdrachtgevers met mijn ervaring op het gebied van software ontwikkelen.

Senior Java Developer

ANWB Online

Juni 2014 - december 2017

Voor ANWB online heb ik als Java developer in een scrum team gewerkt. Ik heb diverse projecten gedaan maar de grootste is het uitfaseren van de toenmalige leverancier van authenticatie, single sign on, en selfservice (account registreren, wijzigen, etc) voor anwb.nl, apps en externe afnemers, en om dit intern te bouwen en onderhouden. Ik en het scrum team hebben dit volledig gerealiseerd. Authenticatie hebben we gemaakt met OAuth2. We hebben hiervoor een Spring boot applicatie opgezet die een REST API biedt, die ontsloten wordt via de API gateway (Apigee) van de ANWB. User data wordt ontsloten uit een PostgreSQL database. Daarnaast hebben we een HTML 5/ Javascript frontend en automatische tests opgezet met behulp van Cucumber en Selenium. Ik ben voornamelijk verantwoordelijk geweest voor de Spring boot backend en het bedenken/ ontwerpen van het geheel.

Iets uitfaseren betekent dat er ook een migratie moet plaatsvinden. Het team en ik hebben ervoor gezorgd dat dit een soepel proces was door het mogelijk te maken dat applicaties op eigen initiatief gemigreerd konden worden. We hebben dit gerealiseerd door het oude en nieuwe systeem naast elkaar te laten werken door het nieuwe authenticatie systeem ook in te zetten als service provider in het uit te faseren SAML authenticatie systeem. Bijkomend voordeel was dat wij vrijwel meteen met een “minimal viable product” live zijn gegaan.

Het team en ik zijn ook verantwoordelijk voor het Apigee Edge API platform van de ANWB, en om daarover regie te voeren. Dit betekent het opzetten van richtlijnen en kaders, en het ondersteunen van teams. Daarnaast werkte we veel samen met de security officer om te zorgen dat software veilig wordt ontwikkeld.

De andere projecten die ik heb gedaan zijn over het algemeen het bouwen van wat kleinere applicaties bestaande uit een Java backend waarbij het Spring (boot) framework is gebruikt om een REST API te maken in combinatie met een HTML5 / JavaScript frontend. Data werd ontsloten uit webservices, MongoDB of SQL database.

Naast het bouwen van software ben ik (en het team) ook verantwoordelijk voor het operations gedeelte in de breedste zin van het woord. In principe doen we alles om de software draaiende te houden. We proberen het ons zo makkelijk mogelijk te maken door waar mogelijk te automatiseren en te monitoren.

Java 6, 7 en 8 Tomcat Servlets Java EE (web) REST OAuth SQL NoSQL Postgresql MongoDB JavaMelody Apigee JavaScript Selenium Cucumber (JS) Logback SLF4j Linux Jersey Maven Spring (boot) JPA Hibernate LDAP JAX-WS JAX-RS JAXB Freemarker Gson Jackson Junit Mockito SAML SOAP EHCache Node.js Apache httpd2 Jmeter Jenkins Bash Git Subversion Ansible Vagrant Swagger Bitbucket

Senior Java Developer

Caesar Tenders

Juni 2014 - december 2017

Caesar Tenders is de ICT dienstverlener waar ik werkzaam was. Via Caesar Tenders was ik ingezet bij ANWB.

Java Developer

Nationale Nederlanden

mei 2012 – mei 2014

Ik heb in deze periode gewerkt als Java developer in, wat ze bij de verzekeraar noemen, de shared factory. De shared factory is verantwoordelijk voor het ontwikkelen en onderhouden van de applicaties die met Blueriq zijn gemaakt. Dit is een Java gebaseerd software pakket waarmee functionaliteit gemaakt kan worden doormiddel van Business process management en business rules. Ze hebben ook een adviserende rol omtrent de software stack van Blueriq gerelateerde applicaties. Hoewel ik niet de lead developer rol had binnen het team was ik wel nauw betrokken bij het adviseren en het maken van keuzes op technisch gebied.

Daarnaast heb ik ook in een klein scrum team gewerkt aan het vernieuwen van de web portaal voor de verzekering adviseurs. Zo heb ik met het team functionaliteit gerealiseerd voor bijhouden van het klantenbestand en offertes van de adviseurs en de integratie met andere applicaties en systemen. In dit team ben ik verantwoordelijk geweest voor de technische aspecten zoals het ontsluiten van services en databases, en het toevoegen van nieuwe functionaliteit in Blueriq en frontends. Naast Blueriq is ook onder andere het volgen gebruikt: Spring, Hibernate, OpenJpa, JavaScript, Angular en Mockito.

Java 6, 7 en 8 Tomcat Jetty JMS Servlets Java EE (web) SQL DB2 JavaScript Angular Thymeleaf XML/ XSLT/ XPATH Aquima/ Blueriq Logback SLF4j Spring JPA OpenJPA Jackson Maven Junit Mockito SOAP Websphere Jenkins Git Subversion

Lead Java Developer

ProRail

februari 2012 - april 2012

Voor ProRail is door mijn werkgever een systeem gebouwd voor het registreren van incidenten op het spoor, waarin verschillende partijen informatie over een incident kunnen uitwisselen.

In deze periode heb ik in een Scrum team de integratie gerealiseerd van het nieuwe systeem met een aantal andere systemen voor data uitwisseling. Hiervoor is onder andere Maven, Dozer, JAXB, JMS en Spring Integration gebruikt. Daarnaast zijn er testscripts gemaakt in Python en geïntegreerd in het al bestaande automatische test systeem gebaseerd op Selenium.

Het scrum team bestond voornamelijk uit junior developer. Wel moest in een zeer korte tijd de functionaliteit gerealiseerd worden. Zodoende ben ik bij het team betrokken om dit te gaan leiden. Ik was dus ook verantwoordelijk voor de beslissingen op het technische vlak en het begeleiden van de teamleden.

De opdrachtgever was zeer positief gestemd over het feit dat het team het is gelukt om ruim voor de gestelde deadline de gewenste functionaliteit te realiseren.

Java 7 Tomcat WebLogic JMS Servlets Java EE (web) Python (2.x) JAXB Logback SLF4j Spring (Integration) JPA Hibernate Maven Junit Jenkins Subversion Dozer EasyMock

Java Developer

PostNL

april 2009 - februari 2012

Voor PostNL heb ik via Sogeti het technisch applicatie beheer gedaan en ontwikkeling van een tiental Java webapplicaties. Het omvat zowel webapplicaties voor het bedienen van de klant (bijvoorbeeld Track&Trace) als het aansturen van de interne bedrijfsprocessen (bijvoorbeeld de sorteer machines planning). De Java webapplicaties variëren in gebruikte technologieën: Van Java 1.3 met J2EE 1.3, struts tot en met Java 1.5 met J2EE 1.4 en met Spring.

De werkzaamheden die ik heb uitgevoerd varieerde van het oplossen van productie problemen, impact analyses uitvoeren van complexe wijzigingen en het daadwerkelijk realiseren van deze wijzigingen. Dit heb ik voornamelijk zelfstandig gedaan.

Het applicatie beheer is overgenomen van een andere partij. Ik heb ook mee geholpen met het proces om de applicaties in beheer te nemen. Hiervoor heb ik de applicaties, source code en documentatie geanalyseerd om te bepalen wat de staat is en om te bepalen wat nodig is om ze in beheer te nemen. Daarnaast heb ik ook de OTA straat ingericht(Jenkins, installatie van applicatie servers op een linux omgeving, installatie van databases, etc).

Java (1.3, 1.4, 1.5 en 6) Tomcat Sun one application server Servlets JSP JSTL Java EE EJB SQL Struts Log4j Spring JPA Hibernate Jackson Maven Ant Junit SOAP Jboss Jenkins Subversion

Java Developer

Sogeti

oktober 2008 - mei 2014

Sogeti is de ICT dienstverlener waar ik werkzaam voor was. Via Sogeti ben ik ingezet bij: PostNL, ProRail en Nationale Nederlanden.

  • Nederlands (moedertaal)
  • Engels (professioneel)

Vooropleiding

  • 2005 - 2009: HBO Informatica, Hogeschool Rotterdam (Bachelor of Information and communication) - Diploma behaald
  • 2000 - 2005: MBO Technische Informatica (niveau 4), Da Vinci College - Diploma behaald
  • 31-03-2009: Sun Certified Web Component Developer for the Java Platform, Enterprise Edition 5
  • 01-12-2008: Sun Certified Developer for the Java 2 Platform, Standard Edition
  • 20-09-2007: Sun Certified Programmer for the Java 2 Platform 1.4
`
  • 01-01-2020: Xebia certified Kubernetes Application Developer training
  • 01-07-2018: Certified SAFe 4 Agilist
  • 03-05-2012: Aquima Technical foundation
  • 22-10-2011: Application Security - Java Development
  • 22-02-2010: Application Security - Awareness
  • 21-10-2009: Inleiding Vergadertechnieken
  • 10-09-2009: Fundamentals Rational Unified Process
  • 17-03-2009: Gang of Four Design Patterns
  • 09-02-2009: Interviewtechnieken
  • 08-02-2009: Rational Application Developer 7 foundation
  • 05-02-2009: Insights Discovery
  • 19-10-2008: Ohio university - High performance Teaming
  • 01-06-2008: Object Oriëntatie Analyse en Design