I am a senior software engineer with over 34 years of experience.
I've been active in the following business domains: finance, mobile
telecom, medical imaging, medical blood analysis & port
infrastructure.
As an analyst, I liaise customers and other stakeholders with the
development team, to transform requirements into working software.
I am an excellent team player with a keen interest in group
dynamics.
Sr. Java Developer at Port of Antwerp-Bruges
May 2023 — January 2025
Amaris develops all software for Port of Antwerp-Bruges.
Responsibilities
Technical Skills
Added functionalities to a wide range of applications:
-
APICS: extending functionality, both backend and frontend
(Adobe Flex)
- Combase: CBS-messages.
-
APICSNG: Angular related changes to the new APICS frontend.
(storm procedure changes)
- Adaptions to Jenkins pipelines.
-
Location: added new REST-endpoints (Spring-boot application)
- Apics-berth: check depth of ship vs depth of berth
- Apics-portsituation: storm procedure implementation.
- Antwerp-port-maps: adding new functionality.
-
Port Asset Meldingen: Full backend development &
integration with IBM Maximo, Jira Servicedesk and Microsoft
Power Platform.
- Java 11, 17 & 21
- Oracle 19 & 21
- Amaris-frame
- Guice 4
- Spring boot 2 & 3,
- JPA 2
- Angular 16
- Adobe Flex
- Apache Kafka
- Resteasy REST-services
- Maven
- ELK-stack
- Docker
- Kubernetes
- Junit & Mockito
- Jackson (XML & JSON)
- Gitlab
- Nexus
- SonarQube
- Jetbrains IntelliJ
- Jenkins (devops)
Sr. Developer at Resengo
Mar 2022 — April 2023
Resengo is an online reservation platform for restaurants,
spa’s, hotels, … See
resengo.com
Responsibilities
Technical Skills
-
Extend functionality for the online reservation system using
a mixed breed of old and new .NET technologies. Depending on
the module, the frontend was written in Angular 13,
Angularjs 1.5 or Reactjs 17
- Implementation of location-based search.
-
Migrating old modules of the Resengo platform written in
ASP.NET with VB-script towards a microservice architecture
in C#, using react as frontend.
- C#
- EF Core 6.0
- .NET 6.0; 4.5 and 3.1
- ASP.NET
- VB-script
- SQL-Server
- Azure
- Docker
- Angular 13
- Angularjs 1.5
- React 17
- Jetbrains – Rider
Sr. Java Developer at Port of Antwerp for Amaris/Brabo
Jan 2020 — February 2022
Amaris develops all software for Port of Antwerp-Bruges.
Brabo is a subcontractor for the port dealing with pilots,
mooring, unmooring of ships and various other port related
tasks.
Responsibilities
Technical Skills
-
Extend Brabo functionalities, separating Brabo code as a
first step into transforming it into a microservice.
-
Terminal planner: backend development in Amaris-frame,
frontend Angular 8.
- Nautical messages: Spring boot 2 and angular 9.
-
APICS: extending functionality and interacting with previous
mentioned applications.
-
Participant in a pilot project for migrating from Amaris –
frame towards Spring Boot 2.
- Java 8 & 11
- Oracle 12 & 19
- Amaris-frame
- Guice 4
- Spring boot 2,
- JPA 2
- Angular
- Adobe Flex
- Apache Kafka
- Resteasy REST-services
- Maven
- ELK-stack
- Docker
- OpenShift (Kubernetes)
- Junit & Mockito
- Jackson (XML & JSON)
- Gitlab
- Nexus
- SonarQube
- Jetbrains IntelliJ
Sr. Full Stack Developer at Cegeka for Viollier
February 2018 — December 2019
Viollier is a Swiss medical laboratory that specialises in all
kinds of analyses. Doctors go through a website to order their
blood analyses or give tissue samples. Results can be viewed on
either website or mobile phone. I aided in the development of
both back and frontend using a wide array of technologies
Responsibilities
Technical Skills
-
Extend V-Consult application both back and frontend.
V-consult is the part where new analyses orders are entered
(Spring 4, Webflow, JSF 2.0, Primefaces, DB2)
-
Co-created Patient-UI Application where doctors give consent
to patients for viewing their analyses results, based on
their mobile phone. Runs embedded in v-consult (Angular 7)
-
Extend Consult-API Application where analysis results are
stored (Spring boot, Couchbase, REST-services)
-
Extend Consult-UI Application where doctors can see the
laboratory results of the analyses they’ve requested. Runs
embedded in v-consult. (Angular 1.5)
-
Extended Notification-API Application that sends SMS to
doctors when critical or urgent results have come in from
the lab. (Firebase cloud messaging)
-
Extended User-Management: Application that deals with doctor
and patient accounts, access rights and registration tokens
for the mobile apps. (Spring boot, Firebase, Axon framework
(CQRS), Swagger
- Java 8
- RxJava
- Swagger
- Angular 1.5 and 7.0
- RxJS
- Jasmine, Karma, Protractor
- Geb and Sahi
- Javascript ECMAscript 6
- Typescript
- Active MQ
- Apache Kafka
-
Spring 4 & Spring boot 1.5, Data JPA, webflow, MVC, HATEOAS
- CQRS (Axon Framework)
- JSF 2.0 with PrimeFaces
- Firebase cloud messaging
- Zookeeper
- Junit / Mockito / JMockit
- Docker
- DB2, hsqldb
- Couchbase 5.5 (NoSQL)
-
Gradle / Maven / Git / Jenkins / Rundeck / Nexus / Artifactory
- Jira & Confluence
- ELK-stack
- Jackson (XML & JSON)
- Postman
- SOAP webservices (interface with AS400)
- Jetbrains IntelliJ IDE
- Sonarcube
-
Kubernetes (followed in house course, no hands-on experience.)
Sr. J2EE Developer NOVA-Project at Essent
March 2017 — January 2018
NOVA is a pilot project for “Utilities as a Service”: an online
platform for energy suppliers to manage B2B and B2C user’s gas
and electricity.
NOVA deals with all aspects of market communication, invoicing,
changing energy supplier, etc…
Responsibilities
Technical Skills
-
Adapted the Activiti workflows to make them compliant with
the Belgian energy market MIG6.
-
Setting up Energycomm in a Docker container for local
testing purposes.
-
Implemented bidirectional market communication for MIG6.
(XML)
-
Extending bidirectional market communication for MIG4. (XML)
- Creating / adapting REST endpoints.
-
Implemented end to end MIG6 tests using JMockit and Mockito.
-
Stepped in PHP7 development of the frontend, based upon
SuiteCRM.
- Making the bi-weekly release of Java components.
-
Rewriting the release jobs in Jenkins (pipeline script).
- Java 8
- Alfresco Activiti (workflow)
- Camel
- Active MQ
- Spring 4 (REST services)
- Lombok
- Junit / Mockito / JMockit
- Docker / Vagrant
- PostgreSQL / MySQL
- Maven / Git / Jenkins (pipeline) / Nexus
- Confluence development stack: (Jira, Bitbucket)
- Jetbrains (IntelliJ, PHPStorm, Datagrip)
- Energycomm (MIG4 & MIG6)
- XML / JSON(-schema)
- Postman
- PHP7 / SuiteCRM (some knowledge)
- Codeception / Mockery (some knowledge)
Sr. J2EE Analyst / Developer ROCS-project at Siemens
September 2014 — February 2017
ROCS is a concentration software layer for the Belgian railways.
It interconnects 30 signalling boxes so they can be controlled
by a single traffic management system.
Responsibilities
Technical Skills
-
In a team of five people, I performed the initial project
setup. Including Maven, Artifactory, Jenkins & Git.
-
Wrote design documents regarding:
- Train movement lines.
-
Interaction with Traffic Management System (TMS), by
means of JMS.
-
Interaction with individual signal boxes. (I.e.
interface with legacy systems.)
-
Implementation of interface between ROCS and TMS using JMS,
XML, Spring JMS, ActiveMQ & Tibco EMS.
-
Implementing various aspects of movement line
transformation. (1 TMS movement line needs to be split up in
partial movement lines for each signalling box.) using
Spring data, JPA, Infinispan IMDG, Hibernate, PostgreSQL
-
Implementation of interface between ROCS and signalling
boxes using Spring JMS & ActiveMQ.
-
Implementation of various fixtures to aid the integration
test team, using FitNesse & Spring.
-
Implemented various POCs for high availability/failover
using Apache Storm & AKKA.
-
All features developed are tested automatically using JUnit
& FitNesse.
-
Wrote heart of ROCS-emulation: VNC images over sockets and
DDS.
- Java 8
- Javaslang 2.x (vavr.io)
- RxJava (ReactiveX)
- Java FX
- Spring 4 (Core, Data, JPA, JMS)
- Hibernate
- JPA
- JBoss Infinispan 7 In Memory Data Grid
- Apache Storm
- AKKA
- XML
- JAXB
- Git
- Maven
- Artifactory
- Jenkins
- SonarCube
- Jira
- Stash
- JUnit
- JMockit
- FitNesse
- PostgreSQL
- Tibco EMS
- ActiveMQ
- IntelliJ IDEA
Business Analyst / Sr. Developer MAERSK-project at SunGard
January 2012 — Augustus 2014
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
Responsibilities
Technical Skills
-
Wrote the scoping document (Project Definition Study), which
is a key part of the contract between A.P. Møller Maersk
(APMM) and SunGard. This includes scope for payment types,
banks and countries.
-
Perform bank analysis for payment formats and types
(ISO20022 PAIN.001.001 SCOR and CGI, pain.002.01.x, camt053,
camt052, Swift MT101, MT94x, MT9xx). This involves > 900
payment types with ±10 banks in over 80 countries.
-
Co-inventor of payment type classification, enrichment and
validation framework (CEV-framework), currently part of Trax
product)
-
Organize user acceptance test sessions with APMM and banks,
globally.
- Writing user stories for sprints (scrum methodology)
- Supervise test coverage of the acceptance tests.
- Interface analysis from ERP to bank and back.
- Walkthrough with APMM on ERP interfaces.
-
Wrote tool that generates CEV-rules automatically from
MS-Excel.
- Coach other BA’s with their payment type analysis.
- Setup Swift communication with banks.
- Stakeholder analysis
- Interface analysis
- Data modelling
- Business process modelling
- Wire frames
- User stories, backlog (scrum)
- Non-functional req.
- Requirement workshops
- Observations
- Interviews & surveys
- Structured walkthrough
- Defect tracking
- Lessons learned
- Java 1.6/1.7
- J2EE (JBoss)
- Webstart
- EJB’s (2.1)
- Hibernate
- Oracle 11
- Subversion
- Maven
- JUnit
- Apache POI
- Velocity macro
- IntelliJ IDEA
- Swift FIN/FileAct
Senior Developer ING-project at SunGard
January 2011 — December 2011
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
Responsibilities
Technical Skills
-
Perform various conversions from in-house ING mainframe
formats to Swift MT9xx and ISO20022 CAMT05x XML.
- Coding & unit tests account statements workflows.
- Customisations for account statement screens.
- J2EE (Websphere 6.1.2)
- Webstart
- EJB’s (2.1)
- Hibernate
- Oracle 10
- Subversion
- Ant
- JUnit
- IntelliJ IDEA
Senior Developer at Clear2Pay
January 2010 — December 2010
C2P’s eBanking is a revamp of an existing product from C2P.
Responsibilities
Technical Skills
-
Write various code generators based upon excel-sheets given
to me by the BA’s.
-
Parsing and validation Swift MT9x files, integrating in
eBanking
- Developing server side business logic of eBanking.
- J2EE (Websphere 6.1.2 & WID)
- EJB’s 2.1
- Oracle 11
- Hibernate
- C2P’s OPF framework
- Junit
- Apache POI
- Velocity
- Subversion
- CenOS (linux)
Senior developer ITG (Integrated Traffic Guidance) at IXOR
August 2009 — December 2009
IXOR’s Integrated Traffic Guidance allows monitoring of various
parkings across a city. It keeps track of available spaces in
those parkings and routes this data towards various types of
indicator boards in the city.
Responsibilities
Technical Skills
-
Extend the REST communication between client and server &
add basic authentication.
- Add audit log capabilities.
- Add new protocols for new parking and board types.
- Issue resolving.
- J2EE (JBoss)
- Webstart
- Groovy
- Spring 2.5
- Spring AOP
- REST
- Liquibase
- JPA
- Postgres
- Subversion
- Maven2
- JUnit
Senior developer KPN-Project at SunGard
January 2009 — June 2009
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
Responsibilities
Technical Skills
-
Extending the TRAX-framework to make it suitable for KPN.
-
Implementing CMS-security (signing & encrypting) for payment
envelopes.
-
Implementing FTPS and SFTP connectivity for ING and ABN-AMRO
banks.
-
Coding & unit tests of bulk payment and account statements.
- Development unitary payment screens.
- J2EE (JBoss)
- Webstart
- CMS-security
- FTPS and SFTP libraries.
- EJB’s (2.1)
- Hibernate
- Oracle
- Subversion
- Ant
- JUnit
- Bouncy Castle
Senior developer Philips-Project at SunGard
July 2008 — December 2008
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
Responsibilities
Technical Skills
-
Extending the TRAX-framework to make it suitable for
Philips.
- Integrate the TRAX-framework with SAP-XI
- PGP-encryption of payment data
- Implementing validation and conversion rules.
-
Coding & unit tests of unitary payments, bulk payment and
account statements.
- Websphere 6.1
- Webstart
- SAP-XI web service integration.
- EJB’s (2.1)
- Hibernate
- Oracle
- Subversion
- Ant
- JUnit
- Bouncy Castle
- JProfiler
Lead developer ABP-Project at SunGard
January 2007 — June 2009 (part time)
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
ABP uses TRAX with TIBCO to perform monthly payments in the
scale of € 5.000.000.000,00
SunGard regards the ABP-project as a reference for TRAX in The
Netherlands.
Responsibilities
Technical Skills
-
Extending the TRAX-framework to make it suitable for ABP.
(TIBCO–EMS connectivity)
-
Performance enhancements of the TRAX-framework for reporting
purposes.
-
Coding & unit tests of unitary and bulk payment, account
statements (business logic)
- Development unitary payment screens.
- Integration with ABP (TIBCO-EMS, secure queues)
-
JBoss configuration for use of TIBCO EMS instead of JBossMQ.
- J2EE (JBoss)
- Webstart
- TIBCO EMS
- EJB’s (2.1)
- Hibernate
- SQL Server 2005
- Subversion
- Ant
- JUnit
Senior developer IKEA-project at SunGard
January 2007 — June 2007 (part time)
TRAX is a payment factory for SWIFT.
Banks, pension funds and large corporations use TRAX for their
payments.
Responsibilities
Technical Skills
Responsible for coding and unit testing of unitary payments and
(intraday) account statements.
- J2EE (JBoss)
- Webstart
- Tibco EMS
- EJB’s
- Hibernate
- Oracle 10g
- Subversion
Senior J2EE-Developer at Telenet
July 2007 — June 2008
TINA is a web application for BROBA wholesale.
Responsibilities
Technical Skills
I was involved in a large offshore development project.
My main responsibilities were data clean-up and implementing new
features using JSF, Spring and Spring WebFlow.
I also performed root-cause analysis for data-corruption in the
system.
- J2EE (Weblogic)
- Spring
- Spring WebFlow
- Struts and later JSF
- Hibernate
- Maven
- Oracle
- BPM
- SOA
- CVS
Senior Java-Developer at IXOR for Meteo
October 2006 — December 2006
METEO is a webstart application used in forecasting frost on
Flanders’ highways.
Responsibilities
Technical Skills
I designed and implemented the thermal map, which reads data
from the Vaisala webservice and stores it in a database.
I designed and implemented the GUI part, which displays the
thermal map of Flanders.
- J2EE (JBoss)
- Spring
- Hibernate
- SOAP / WSDL (webservices)
- SAX-parsers
- Swing
- Ant
- Postgres
- Subversion
Senior Analist/Developer at Siemens for Mobile Presence
Management
April 2005 — August 2006
CSDM is a presence and availability manager used in mobile
networks. (MSN for mobile phones).
Responsibilities
Technical Skills
-
I designed and implemented the digest authentication for
this web service.
Implemented a JCA1.5 connector, which interacts with the HSS
legacy system using the SH-interface over diameter protocol.
-
I analysed, designed and developed various cross-product
common components for performance monitoring, Flex LM
licence manager, and active subscriber licences.
-
I extended an existing framework (WMEE) so code generation
for JUnit tests was done.
- J2EE (SJSAS 8.1)
- EJB2.1
- JCA1.5 (connector)
- XML
- SOAP/WSDL
- Digest Authentication
- SH and Diameter protocols
- JMeter
- JUnit
- Tomcat
- Oracle 10
- Spring
- WMEE
- Flex Licence Manager API
Senior Analyst & Lead-Developer at Proximus
January 2004 — March 2005
NSUP and NSAP are applications that are accessed during call
setup.
Responsibilities
Technical Skills
-
Lead developer for NSUP and NSAP a session bean façade for
LDAP accessed by other applications to get user and
application profiles.
This carrier-grade application sustains an average load over
450TPS in a clustered environment.
I did full roundtrip development cycles.
-
In FIONA, I wrote parts of the SOLA (Solution Architecture
and Design) document.
-
In FIONA, I designed and developed the connections of the
provisioning system with JMS, TIBCO-RV and MDS/SAS.
I also extended the workflow engine with fork- and join
tasks.
FIONA processes provisioning changes at a sustained rate of
600 TPS!
-
In IFTAT (Integration Framework Test Automation Tool), I was
the co-architect of this webservice based test automation
tool.
This tool was compliant with MM7 and LIF-protocols used by
MMS and LBS (Location Based Services)
- Use Cases / UML
- SOLA documentation (Apollo process, PMI derivate.)
- Java/J2EE
- Silverstream 4.0
- BEA WebLogic 8.1
- Oracle
- Sybase
- JCA 1.0
- JMS
- JMX
- TIBCO-RV
- XML / SOAP / WSDL
- Axis
- Rational Rose
- JMeter
- JUnit
- Tomcat
- Sun One LDAP
Technical Project Lead at Smals-MVM
March 2003 — November 2003
DmfA is a web application used for declaring contributions to
the Belgian social security system.
Responsibilities
Technical Skills
I coordinated the work of 7 developers.
I was responsible for requirement capturing, implementation of
an enrichment component and integration testing.
Daily scrums were held for monitoring project progress and
unblocking team-members.
- Java/J2EE (Weblogic 6.1)
- EJB
- XML (Xerces)
- JUnit
- Use Cases
- TogetherJ
- RUP
- Scrum
Senior Analyst/Developer at Agfa-Gevaert for Delano
November 2001 — July 2003
Delano is a web-based workflow and online proofing system for
the printing industry.
Responsibilities
Technical Skills
I participated in the initial requirements capturing with use
cases.
I wrote parts of the server side workflow logic and persistence
layer using session beans and DAO.
I also designed and implemented the communication between Delano
and Agfa’s Apogee subsystems using XML/JDF over JMS.
- Use Cases / UML
- Java/J2EE (JBoss)
- EJB
- JDBC
- XML (DOM, SAX)
- JDF
- JMS
- JMX
- Postgres
- JUnit
Product Leader & Architect of Forum at Reef
November 2000 — October 2001
Forum is a web-based application for online discussions and is
part of Reef’s Internetware suite.
Responsibilities
Technical Skills
I was responsible for the analysis, architecture, design and the
backend part of the implementation of forum.
I coordinated the work of 4 developers.
Using the Catalysis methodology, I wrote use cases and interface
documents for various components of the Forum application.
With one of my team members, I designed and implemented another
forum prototype capable of handling millions of messages using a
CNews server, JavaMail and a Java NNTP-protocol implementation
for accessing the news-server.
- Use Cases / UML
- Catalysis interface documents.
- Java/J2EE (Weblogic)
- Oracle
- TogetherJ
- Toplink3.0
- JUnit
- JSP
- Struts
- Servlets
- JavaMail
- NNTP
- CNews
- Loadrunner
Various Projects and Companies
September 1990 — October 2000
Worked at different companies, mostly financial or telecom
related.
Companies
Technical Skills
- Cimad/FICS: Bank Reporting System
- Afga Gevaert: IMPAX medical imaging.
- Alcatel: 3G RNC (Radio channel allocation)
- Lucent Technologies
- Siemens: GSM call processing
- Solid State: 3XIT
- Use Cases / UML / OMT / Booch
- C++ / CHILL
- Java/J2EE (Jboss 2.x)
- CORBA (Visibroker)
- Java/IDL
- Tomcat
- Servlets
- JDBC
- Rijndael encryption
- Delphi
- Sybase
- Rational Rose