Download PDF

Summary

I am a Java back-end & Cloud developer and possess over 24 years of IT experience in a variety of sectors and technologies such as Java, Spring (Boot), Streams, Queues, Databases, Cloud, containerization and deployment orchestration.

I have served various customers overseas (US/Canada) and in Europe; both working on-site and remote in a variety of roles as Architect, Lead and Developer / DevOps.

I am Java (SCJP), IBM and MCSD certified and a Dutch passport holder.

Career

 GoCloudNow (NL - Freelance)  from 2017 to recent
 MSD Consulting (SE - Freelance)  from 2011 to 2017
 JunoIT / JunoContent (NL - Partner)  from 2007 to 2011
 DXC Technology (prev.: CSC) (NL)   from 2006 to 2007
 Credit Europe Bank (prev.: Finansbank   Holland) (NL)   from 2000 to 2006

Project summary

 ORGANIZATION  ROLE & CUSTOMER  PERIOD
 GoCloudNow

 Senior Java Developer

  • ING
  • Nike
  • Kelly Services (US)
  • Rabobank
 June 2017 - recent
 MSD Consulting

 Senior Java & IBM Portal Specialist

  • H&M (SE)
  • Cermaq (NO)
  • EWOS (NO)
  • Standard Life (CA)
  • Canon (US)
 January 2011 - May 2017 
 JunoIT / JunoContent

 Senior Java & IBM Portal Specialist

  • Achmea
  • FBTO
  • Dutch Tax Office
  • Univ. Hospital Gent (BE)
  • Dutch Railways ProRail
 March 2007 - February 2011
 DXC Technology

 Java & .NET Developer

  • Royal Mail (UK)
  • conf. (DK)
 March 2006 - February 2007
 Credit Europe Bank  Java Developer  February 2000 - February 2006

Key projects

  • Kelly Services (US) - e-Recruiter; implementation of a microservices-based solution hosted on AWS Kubernetes and Istio Service Mesh
  • Canon (US) - Digital transformation of CANON USA website usa.canon.com
  • H&M (SE) - Design and development of IBM/HCL XDX based intranet solution (171K users)
  • YDA (TR) - Design and development of a construction management tool (SPA)
  • Cermaq (NO) 1st IBM Portal/Connections based Intranet Portal of Norway
  • University Hospital Ghent (BE) - 1st IBM Portal/WCM based solution within the BE public sector
  • Credit Europe Bank (NL-DE) - Contributed to Online Banking and Online Credit Check Gateway to Schufa and Experian

Work experience

Rabobank (NL) - Senior Java DevOps Software Engineer

MARCH 2024JULY 2024
GoCloudNow
As a Software Engineer I have contributed to the Housing tribe who is responsible for all mortgage related calculations. The API’s that the team provides are paramount to the day-to-day operation of the tribe.
My responsibilities were:
  • Designing and implementing APIs, connections to back-end services such as NHG using Java (17/21), Spring Boot 3+, Azure CI/CD, Sonar, Git, Maven, Clean Code
  • Conducting peer code-reviews
  • Setup of BDD test automation framework for core mortgage calculations using Spring Boot and Cucumber
  • Active participation to Scrum/Agile meetings 

Break

Jan 2024FEB 2024

Providing medical care to my mother

ING (NL) - Senior Java Developer

MAY 2022DEC 2023
GoCloudNow

Senior Java developer at International Payments area. I am responsible for shaping the technical vision of the microservices with the Java Chapter and Chapter Lead.

I operate according to an Agile Scrum development process and strongly believe in the DevOps approach to delivering IT solutions. My focus is on high-quality software delivered continuously using iterative development. I strive to deliver working software every 2 weeks to production.

My responsibilities:

  • Developing and maintaining microservices handling system integrations (Java 11/17, Spring Boot, Spring Integration Java DSL, Jakarta EE JTA, Kafka, Tibco, Active MQ, XML/XSL, JPA / Hibernate, Azure DevOps, Oracle, Maven)
  • Working on development,  integration, implementation and deployment of APIs. (Spring Web MVC, TDD)
  • Participating in Scrum ceremonies; daily stand-up, planning, refinement, retro. Improving the Way-of-Working (WoW)
  • Code collaboration via code reviews (Git, Azure DevOps)
  • Participating in production support during incidents.
  • Active contributor within the Java Chapter (CoE) by developing and presenting PoCs.

NIKE (NL - Retail) - Senior Java Developer / DevOps

Feb 2020MAY 2022
GoCloudNow

As a member of the Nike ED&A (Enterprise Data & Analytics) domain, I have acted as a Lead / Senior Java Developer within the UMD (User-Managed Data) squad (6 FTE). My contributions started with the re-design of the UMD application.

UMD, leveraged by Nike globally, empowers business users to manage their own data structures and inject these into Nike's Data & Analytics space.

Some of the activities I have performed are:

  • API-first approach by designing the bounded-contexts, business domain, collections and resources  (Springfox, Open API v3)
  • Design and implementation of the layers of the composite and core microservices (Java 8/11, Spring Cloud, Gateway, Resilience4J, Distributed Tracing)
  • Implementation of a event publisher/producer (Spring Boot, Apache Kafka)
  • Implementation of reactive data repositories, API's, services and controllers (Spring Mongo Reactive, WebFlux, Reactor, Spring Data JPA)
  • Implementing an RBAC (Role-Based Access Control) model and security for the end-points with a custom permission evaluator (oAuth2 Resource Server, Spring Security)
  • The below PoCs were conducted and presented to the architecture board:
    • Implemented a data pipeline for streaming data from AWS Postgres to Snowflake with Spring Cloud Data Flow (SCDF) by extending the JDBC source application.
    • Implemented a batch component to satisfy the above requirement to improve performance and data consistency. (Spring Batch and Scheduling)
    • Implemented an LDAP component to lookup members from a given AD group (Spring Data LDAP)
  • TDD: Developed unit and integration tests throughout all the layers (Mockito, Reactor Test)
  • CI/CD: Containerization of microservices, with having best practices in mind, and deployment to EKS cluster (Docker, Kubernetes, Helm, Jenkins)
  • Participating in Scrum Planning, Review/Demo, Retrospective and Refinement sessions.
  • Providing x-training sessions to squad members (dedicated day each sprint)
  • Technical interview of new candidates

Following, I joined the Pathfinder team (12 FTE) and delivered the following:

  • Development of a custom Kubernetes admission controller (fabric8io/kubernetes-client)
  • Refactoring the custom security model of the Java-based APIs to utilize Spring Security code infrastructure.
  • Implementing an internal gateway that delegates the request to another central component which then receives the URI to proxy.
  • Improving test coverage of the APIs by adding MVC tests.
  • Implement/exposing actuator metrics to Prometheus which are visualized in Grafana.
  • Maintain the IaC (Terraform) scripts.
  • Participating and contributing to CoP (Chapter of Practice) Fullstack. (0.2 FTE)
  • Conducted and presented the below PoC's within the scope of Spike stories:
    • Developed a Proof of Concept to perform ETL processing in order to setup a foundational component to decommission a legacy component based on NodeJS and Excel (macros).

      I have provided and presented a component design with a target achitecture being a microservice hosted on AWS, with Kubernetes as deployment runtime.

      This component, a Spark job entailed loading data from Spark RDD, performing data transformations (custom mappings), enriching the data, and writing to Kafka.
      Also I have used the Spring Boot Actuator and Micrometer dependencies in order to expose out-of-the-box and custom metrics so that these were presented in Grafana in the next sprint cycle.
       I have used Java 11, Spring Boot 2.5, Kafka (Spring Boot abstraction types KafkaTemplate, @KafkaListener, KafkaTransactionManager), Spark Java (JavaSparkContext, JavaRDD), Docker and Helm as the Kubernetes package manager. 

    • Jenkins service: provide real-time Jenkins job triggering and status for simple pipeline management (Spring Boot, Jenkins API)
    • Serverless functions: demonstrate a set of functions in order to benefit from the serverless stack (Spring Cloud Function, AWS Lambda, AWS API Gateway)
    • Notification Service: real-time feedback to end-users providing Pub/Sub endpoints (AWS SNS, Spring Boot, Spring Cloud AWS)

Kelly Services (US - Recruitment) - Phase 2, Java & Spring Cloud Microservices Developer / DevOps

Feb 2018Jan 2020
GoCloudNow

Phase 2 of previously launched e-Recruiter in Q1.2018 aiming to provide both
functional, technical and infrastructural enhancements according to the product
roadmap:

  • Decoupling of microservices by Pub/Sub async messaging for 3rd party
    integrations (Spring Boot, RabbitMQ, Spring Cloud Stream)
  • Converting all MVC based REST controllers to being non-blocking I/O (Java 11, Spring WebFlux/Project Reactor)
  • Migrated Netflix components such as Hystrix, Ribbon, Zuul to respectively
    Resilience4j, Spring Cloud Load Balancer, and Spring Cloud Gateway.
  • Asynchronous distributed tracing to decrease load and runtime dependencies of
    the microservice landscape (Spring Cloud Sleuth, Istio Kiali/Jaeger, RabbitMQ)
  • Setting up centralized logging and custom charts within a separate Kubernetes
    namespace. (ElasticSearch, FluentD, Kibana - EFK stack)
  • Setup custom application monitoring and alerting for Circuit Breakers and Retries
    running in Istio Service Mesh (Actuators, Micrometer, Prometheus and Grafana)
  • Migrated containers from AWS EC2 to Amazon EKS cluster with Istio Service Mesh
    in order to improve observability, security, and reliability
  • Development of Candidate Job Dashboard and Search modules (Angular, Angular
    Material)
  • TDD - Conducted PoC on producer- and consumer-driven contract testing (Spring
    Cloud Contract)
  • Moving API landscape documentation for increasing agility and maintainability
    (SwaggerHub)
  • Documentation of new procedures, run-books, release templates.

RABOBANK (NL - Finance), Full Stack Developer / DevOps

Jun 2017Dec 2017
GoCloudNow

Within the "Distribution / Relevance Insight and Sales (RIS)" domain of Rabobank Cooperative Banking, I act as a DevOps / T-Shaped developer to contribute to on-going projects.

An outline of the tasks I have been performing:

  • Front-, backend development and maintenance of Corporate banking widgets. (AngularJS, Java 8, Spring Boot, Oracle) 
  • Developing Unit, Integration and Live API tests (DBUnit, JUnit, Mockito, RestAssured)
  • Developed a containerized subscriber (consumer) to process events from the Business Event Bus and persisting to the database (Spring Boot, Kafka, Actuators, Oracle, Docker)
  • Setup and configure CI/CD pipelines (Jenkins)
  • Conducted Proof-of-Concept and event sourcing during the first milestones of the cloud transformation pilot (Pivotal Cloud Foundry-PCF, CloudAMQP, ElephantSQL)
  • Monitoring and troubleshooting (RCA) applications
  • Collaborating with other project teams, participating in Scrum plannings and retrospectives, conducting demos to stakeholders
  • Conducting peer code reviews, performing technical documentation

Kelly Services (US - Recruitment) - Phase 1, Technical Lead & Full Stack Developer

Jun 2016May 2017
MSD Consulting

Transformation of a monolith into a microservice landscape, e-Recruiter is the new platform of Kelly Services to be launched in Q1 2018.

e-Recruiter covers and implements the Cloud design patterns / best-practices aligned with the 12-factor methodology.

  • Functional decomposition of the business domain into microservices, establishing service granularity, defining the service interfaces (API-first design, DDD)
  • Setup a Spring Cloud Config server that is deployed as Docker container and can be managed as the core configuration of all the microservices.
  • Setup an Eureka server running as a Spring-Cloud based service. This service will allow multiple service instances to information using a file system or GitHub-based repository.
  • Development of a service gateway with Zuul API so that all microservices can be routed through the gateway and service, register with it. Clients that need to call a service will use Eureka to lookup the physical location of the target.
  • Setup an Apache Kafka message bus to transport messages between services, have pre-, response- and post policies enforced on the calls
  • Setup and implement distributed caching via REDIS
  • Setting up a cloud topology with Amazon (AWS) EC2 clusters, Docker containers, REDIS distributed cache, PostgreSQL and Load Balancers
  • Setting up CI/CD pipelines, notifications with GIT and Travis-CI
  • Setting up distributed logging, tracing and visualization with OpenZipkin
  • Sprint planning and weekly technical management of 4 offshore (3 DEV + 1 QA) resources based in Hyderabad, India
  • Perform Technical and end-user documentation

YDA (TR - Construction), Technical Lead & Solution Architect

Dec 2015May 2016
MSD Consulting

I have managed an off-shore team to deliver a custom product, e-Builder; a SPA (Single Page Application) targeted for construction builders to manage the entire life-cycle of construction projects. I was involved in the architecture, design, and development during the entire SDLC.
My responsibilities were:

  • Daily technical management of 12 offshore resources (DEV and QA) based in Hyderabad India
  • Requirements analysis, risk-workshops, providing estimations and work break-down
  • Setup application architecture (microservices), design and the AWS topologies (REST API's and data layer managed through the AWS Cloud)
  • Design, develop and test (TDD) a multi-tier reference implementation and handover to the development team
  • Defining and setting up Docker images, containers and repositories
  • Review design and code, review and fix tests and functional coverage
  • Setting up a Continuous Integration and Delivery (CI/CD) pipelines
  • Conduct delivery and handover activities to the client

Canon (USA - Retail), Java & Lead IBM Portal Developer (remote)

Jan 2015Nov 2015
MSD Consulting

I contributed to Canon's web transformation program having as a business goal to re-design the public website into a new portal/web content management platform (IBM Portal/WCM) along with re-designing the custom integrations.

My main deliverables were:

  • Requirements analysis, estimations with the teams
  • Developing Java components for WCI (Web Content Integrator)
  • JSR Portlet development
  • WCM custom component development
  • WCM custom rendering plugin development
  • Developing WCM authoring and presentation templates
  • Performing technical documentation and conducting hand-over sessions

Hennes & Mauritz (SE - Retail), Java Developer & IBM Portal Specialist

Mar 2011Dec 2014
MSD Consulting

I have contributed to the development and technical maintenance of the intranet of H&M Inside version 1.0 and Inside “The Make-over”, version 2.0.

My responsibilities were:

  • Setup, verify architecture and design of Inside
  • Stakeholder presentations, requirements- and risk workshops
  • Performing application design and estimation sessions with the team
  • Modelling UML Use-case-, Component- and Deployment diagrams
  • ERD and RDBMS modeling
  • Java development, JSR Portlet development, IBM WCM (Web Content Management) component development
  • Design and development of a service layer (JAX-RS) interfacing an Oracle warehouse
  • Troubleshooting and support

Java Developer & IBM Portal Specialist (NL, BE)

Mar 2007Feb 2011
JunoIT / JunoContent

As a developer I have been contributing during the below customer assignments:

April 2010 - January 2011 Dutch Tax Office (Public) - Java & IBM / ECM Developer
July 2009 - February 2010 University Ziekenhuis Ghent - Solution Architect
September 2008 - February 2009 FBTO (Insurance) - Requirements Coach, Java & IBM Developer
Jul 2007 - May 2008 Achmea (Insurance) - IBM WebSphere Portal-WCM Developer
May 2007 - July 2007 Dutch Railways - ProRail (Public) / UI Developer

Java & .NET Developer (NL, UK)

Mar 2006Feb 2007
DXC Technology (Computer Sciences Corporation)

As a developer, I have delivered in several customer-facing assignments mainly in UK. Some projects were:

  • Designed and implemented a prototype printing module for a consultancy company in Denmark. This generic module provided print-functionality for a healthcare information system.
  • Implemented a Self-Assessment System for Royal Mail England. The application provided extensive reporting and PDF printing functionality.

Java Developer (NL, BE, DE)

Feb 2000Feb 2006
Credit Europe Bank (Finansbank Holland)

As a Java developer, I participated in many in-house projects such as:

  • Maintenance of the Business Rules Engine
  • Development and maintenance of Experian, Schufa interfaces
  • Development of Online Consumer- and Corporate Banking projects and products
  • Design and development of the e-ServiceDesk system

Education

Certificates

Sun Certified Java Programmer for the Java 2 Platform J2SE 5.0
Issued: March 2004

IBM Certified Solution Developer - IBM WebSphere Portal 6
Issued: March 2007

IBM Certified Application Developer - Web Content Manager 8.0
Issued: February 2015

(version 2024.7)