Ambradev* B.V. / S.R.L.

* "Ambra" is Italian for the colour amber. Dev is short for development.

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