Curriculum Vitae Joachim Van der Auwera

last edited May 2023

Personal details :

Joachim Van der Auwera
Broekmansstraat 99
B- 2221 Booischot
0496/ 250 345
joachim@progs.be

born : 31 March 1974

Résumé

Senior java developer / architect
Java technical lead
Solutions Architect

Education

Experience

Agentschap Wegen en Verkeer (May 2012 – now)

Solutions Architect

At AWV there is a team of solutions architects. We oversee the plans at planning and business analyses stage to assure that they fit in the AWV systems architecture. We also provide cross team guidelines and assure the services fit and work together.

DistrictCenter

DistrictCenter is a large application which help the road inspectors to follow-up on the the reparations, handling damage etc. I joined AWV at the early development and have been involved in many of the evolutions of the system.

At the beginning there were two applications with a Java backend and a Ruby front-end. These were integrated into one back-end with extra modules being added. The front-end was migrated first to Angular1 with Coffeescript, later to Typescript (initially with AngularJS, now Angular). Some modules have been split out to separate microservices. Spring Boot was introduced at some point (is was plain Spring before). Various frameworks like drools and Activiti have been introduced as some point and removed later.

This is a large development for which the codebase has been kept up-to-date with most refactoring going quite smooth thanks to the automated tests which are in place. My role has mostly been backend development though I have also done some frontend work. I had a big influence on many of the technical decisions.

dc-commons

In team Blauw we have extracted a lot of code which is shared between the applications. This includes code for logging, tracing, security, gateways and lots of utilities. I have had a big role in building and supporting this library.

Overheidsopdrachten

Overheidsopdrachten (amongst other things) the gateway for AWV towards the eDelta financial system. I lead the development of this gateway including technical discussions with the eDelta team about requirements for the necessary changes.

Other applications

I have also been involved in various other applications. For Winterdienst I did maintenance and minor improvements to an old legacy codebase. I was part of the team that started Adviezen en Vergunningen. I did some work on LIMS and the reboot of Evaluatie Studiebureaus. I did a lot of work on docgen, especially to improve the system to better control the memory use. I also wrote some libraries (and sometimes microservices) for integration with other systems like Magda, Omgevingsloket, Orafin.

Awingu (Feb 2012 – Apr 2012)

Evaluate the current development process and improve it with a focus on quality and maintainability.

Get the continuous integration system up and running.

Some development in Python.

Geosparc (Aug 2009 – Jan 2012)

Geosparc provides professional support, training and commercial licensing of the Geomajas open source project.

Geomajas

Geomajas is a AGPL licensed open source web mapping (GIS) framework. I had a major part in the architectural changes and backend improvements for Geomajas in the evolution of 1.4 to 1.6. This includes modularization, clear definition of the API, support of several faces, security, pipelines. I help in trying to build the open source community (and learning to function as open source project) and joined the team of core developers.

I am the lead for some of the sub-components and plug-ins including security, pipeline handling sub-components and static security, geocoder, caching plug-ins.

Project management used subversion for source control, maven for the build system, junit for testing, jira for issue management, nexus as repository manager. System documentation is partly included in the maven site, partly as generated books (both using docbook). A continuous integration system is in place to recompile after each commit. The nexus repository manager is used to assure all releases and all dependencies for the development and release versions are available for maven builds.

Apart from the architecting and programming, I do reach-out (writing blogs etc), quality assurance (code reviews and code police), some system administration for the supporting systems (continuous integration system, xen hypervised Debian/Ubuntu server), training.

Ktunaxa Referral Management System

Ktunaxa is a first nation in Canada. For all projects which are planned on the Ktunaxa territory, a referral is passed on the Ktunaxa Nation Council for evaluation. The RMS is a system to help in this process. When a referrals are entered in the system a business process is started to precess the referral. All relevant documents are added in Alfresco and made available during the evaluation (more can be added). After evaluation (during the process) a report is produced for the referral.

My contributions in the project include help during the analysis and writing the proposal (50%) and a large portion of the development work (75%) (all the BPM and reporting related parts).

Amplexor (Dec 2010 – May 2011)

Amplexor is a leader in content management projects.

This was a part-time assignment while continuing to work for Geosparc at reduced effort.

Account opening for a bank

Within the software for the account opening procedure, I was responsible for handling the links with the banking back-end (Thaler and Thaler NG). This link is done using a Thaler specific library for or web services (for Thaler NG). The communication in the application itself is done using Spring.

Project management used subversion for source control, maven for the build system, junit for testing, jira for issue management, nexus as repository manager. System documentation is partly included in the maven site, partly as generated books (both using docbook). A continuous integration system is in place to recompile after each commit. The nexus repository manager is used to assure all releases and all dependencies for the development and release versions are available for maven builds.

Website archiver

I joined the development team for a web archiving solution. Purpose was to build a system which regularly crawl websites and gives access to the different historic version.

My contributions consisted of tracking and management of the versions and making the different versions viewable from inside the application.

IMC ag (2009)

IMC is producer of one of the leading European e-learning platforms. They are market leader in the German market and have a presence in six countries.

Competency Analyzer

My job was to continue the development of the CA as part of the PROLIX European project. Main tasks included the inclusion in the SSO infrastructure, improving the matching and specifically the display of the matching results. Cooperation and coordination with the other work packages and writing deliverables which indicate the project, progress made and possible future was also part of the job.

The CA is an application to define and manage competencies and competency structure, and combine them into competency profiles. Where tasks and learning objects are concerned, the competency profile can be directly assigned. For persons the competency profile is "distilled" from assessments. The competency profiles are used to match the best person with a job, the training a person needs to have all the competencies for a task or role, etc.

Based on the domain model, the skeleton of the application is generated using equanda (EJB3 beans, DAO's, data entry web interface). A separately developed matcher handling the competency structure was integrated and a set of application specific pages (tapestry) added. Web services (cxf, WS-I compliant) were added for access by other components.

My role in the project was the architecture, domain model, most of the programming. I setup the configuration on which the application would run and installed the test and production systems. The contributions by others to the system happened under my supervision.

The communication with the other components in the project is done using an ESB. For authentication a SSO server is used and a portal (Liferay) and jBPM based workflows were used to link the different components.

Project management used subversion for source control, maven for the build system, junit for testing, jira for issue management. System documentation was included in the maven site (using wiki markup). A continuous integration system was in place to recompile after each commit and assure the latest (successfully compiled) version was always available on a test server.

LPEP

LPEP (learning proces execution platform) is another component in the PROLIX project. My task was the maintenance of the research version. I had to keep the server up and running, fix bugs and problems and include some improvements into the codebase. A large part of the LPEP work was to build a better integration between LPEP and the CA. This was partly done by embedding the CA into the user interface, and partly by introducing some specific screens which communicate with the CA using web services.

Prolix

Prolix is a European research project (FP6) (2006-2009) about competency based optimization of business processes. The objective of PROLIX is to align learning with business processes in order to enable organisations to improve the competencies of their employees according to continuous changes of business requirements. (prolixproject.eu)

My role in the project was the architecture, domain model and most of the implementation of the competency analyzer (see above). I had my input in the overall architecture and cooperated with the other partners for the integration of the components. This was central to the design as the business processes are annotated with the competencies. Learning material is searched/assigned based on the competency gap an employee has to perform a task and the competencies you can obtain by absorbing a learning object.

Synergetics nv (2007 – 2008)

Synergetics is a innovative IT company active in the human resources domain. It focuses on the application of competencies for recruitment and optimization of the workforce. This should be combined with all employability information in the employability portfolio. The security and privacy aspects which are important for the handling of personal information are other focus points. The goal is VRM, vender relationship management, a concept where subjects are in control of their own data, independent of where it is stored.

Competency Analyzer

The CA is an application to define and manage competencies and competency structure, and combine them into competency profiles. Where tasks and learning objects are concerned, the competency profile can be directly assigned. For persons the competency profile is derived from the assessments based on assessments. The competency profiles are used to match the best person with a job, the training a person needs to have all the competencies for a task or role, etc.

Based on the domain model, the skeleton of the application is generated using equanda (EJB3 beans, DAO's, data entry web interface). A separately developed matcher handling the competency structure was integrated and a set of application specific pages (tapestry) added. Web services (cxf) were added for access by other components.

My role in the project was the architecture, domain model, most of the programming. I setup the configuration on which the application would run and installed the test and production systems. The contributions by others to the system happened under my supervision.

Project management used subversion for source control, maven for the build system, junit for testing, jira for issue management. System documentation was included in the maven site (using wiki markup). A continuous integration system was in place to recompile after each commit and assure the latest (successfully compiled) version was always available on a test server.

employability portfolio

Based on the idea of life long learning, Synergetics tries to assure the continued flow of learning and experience, by creating possibilities to capture and maintain employability related information. Therefore, the employability portfolio is conceived as crossroads bank of employability information. The goal is to contain all data relevant for employability to allow access to all business processes which need it. As part of this effort, it is important to be able to communicate and integrate with the many existing systems which already capture part of that data.

A domain model of employability information was built from which the skeleton of the application was generated (EJB3 beans, DAO's, data entry web interface). Import and export mechanismss were conceived. For the import this was done using annotations in the domain model. This allowed traversing the domain model to capture relevant information from import packages. The export was based on velocity templates. A set of application specific pages (tapestry) (specifically for import and export) were built. Web services (cxf) were added to allow some of the data in the portfolio to be filled and queried.

My role in the project was the architecture, domain model, part of the programming. I setup the configuration on which the application would run and installed the test and production systems. The contributions by others to the system happened under my supervision.

Project management used subversion for source control, maven for the build system, junit for testing, jira for issue management. System documentation was included in the maven site (using wiki markup). A continuous integration system was in place to recompile after each commit and assure the latest (successfully compiled) version was always available on a test server.

Prolix

Prolix is a European research project (FP6) (2006-2009) about competency based optimization of business processes. The objective of PROLIX is to align learning with business processes in order to enable organisations to improve the competencies of their employees according to continuous changes of business requirements. (prolixproject.eu)

My role in the project was the architecture, domain model and most of the implementation of the competency analyzer (see above). I had my input in the overall architecture and cooperated with the other partners for the integration of the components. This was central to the design as the business processes are annotated with the competencies. Learning material is searched/assigned based on the competency gap an employee has to perform a task and the competencies you can obtain by absorbing a learning object.

TAS³

TAS³ is a European research project (FP7) (2008-2011) focussed on the application of security for accessing and manipulation of person information. Based on authentication and trust, clients can access only services and (distributed) data based on the fine grained (sticky) policies. The TAS³ Integrated Project (Trusted Architecture for Securely Shared Services) aims to have a European- wide impact on services based upon personal information, which is typically generated over a human lifetime and therefore is collected & stored at distributed locations and used in a multitude of business processes. (tas3.eu)

My role in the project was to keep an eye on the architecture (and partly cohesion) of the project. I also had a role in the (possible) integration of the employability portfolio in the project.

CAB-software (1997-2007)

CAB-software is a market leader in software for slaughterhouses, both for office and the registrations at the workfloor. CAB has specific software for the meat industry and other aspects of food industry, focusing on traceability.

IC-trace (2002-2007)

IC-trace is a specialized traceability system, evolving towards a ERP system. My contribution covers the concept of the solution, architecture and design, database structure and part of the coding. A framework (Uni-d, open source) was written to generate the enterprise beans (entity beans and session beans to access them) and the base of the user interface. The system originally used EJB2 beans and Cocoon, but later evolved to Tapestry and EJB3. It is deployed on linux (Debian) systems which was secured and only allowed access using the web interface and (smartcard secured) ssh. As database firebird is used. I was also responsible for the concept and maintenance of this setup. All deployed systems are identical and use a smartcard for configuration. This also includes PKI support for communication between them. I also built a method to easily distribute software updates across the installed systems to assure the configurations remained the same.

The server side contained the EJB beans and web interface (both mostly generated from the domain model). The management interface was only available inside the local network, but there is also a traceability interface which is accessible worldwide. A lot of data entry was done on the workfloor using the "wegen" weighing program which communicated with the server side using data proxies and session beans. A set of external tools was provided for import/export (communication with external administrative systems) and automatic printing.

For some complex setups messaging is used for real-time communication between different registration posts.

Scheduled tasks are used to build files which are sent by e-mail and to check incoming e-mails for data to import.

Security is also an important aspect of this application. Depending on the sensitivity of the information, different ways (security levels) are used to request data. This varies from free access based on individual label numbers (which cannot be guessed or predicted, and there is additional protection against guessing attempts), or passowrd protection for querying the information for a delivery (parword printed on delivery note), or full access to information for a specific customer based in certificate authentication (possibly only allowing certificates stored on a smartcard to prevent copying of the private key).

Project management used first cvs, later subversion for source control, ant/maven for the build system, junit for testing, jira for issue management and confluence for documentation. The work was partly done by a 2/3 programmer team in Romania.

wegen (1997-now)

Wegen is a program used for data entry and labelling on the workfloor. It communicates with weighing devices, label printers and various other devices. It has can access a database or other back-end system and can be used on specialized weighing terminals. The original version (first few years) this was written in WinDev, but later (2000) this was migrated to java.

The system was somewhat similar to a BPM system with an XML file defining the business process (which was called "dialog"). This combined action (reading/writing to external devices), getting input from the user and calculations (using fscript scripting). The input/output was done either on screen using swing, or using a Bizerba ITU weighing terminal (rs232 controlled).

see-a-bee site catalog (1999)

see-a-bee site catalog is a method to define the content of a website without the possibility to affect the layout. The site was edited off-line using a java program. The actual content was then transmitted (ftp) to the server. On the server the layout was merged with the layout html (thanks to server side includes) to build the full site. The site was searchable either by field (for the catalog part) or full text (handled server side). The server side handling was in perl.

various smaller projects

(most of hich are now either obsolete or integrated in IC-trace), consulting etc.

Older

S.S.O. (juni-nov 1996)

Work on a project to manage buildings in the health sector, all in Visual FoxPro.

PROGS / QL software (1988 - 1997)

I started programming at the age of eleven. My brother wanted us to get computer for Christmas, and our parents agreed to get us this new toy, on one condition : "no games, unless you write them yourselves". So that is how we got started, on the Sinclair QL. At first we started programming in SuperBasic. My first program was a quiz game. Later, I wrote a few versions of "pac-man" style games (each new version better, faster and more playable than the previous). Nothing really useful emerged from this, until we started to learn assembler (still during the first year of owing a computer), and started working on a drawing program. After about two years our first program was finished and we were in London selling our program at a show. Major stuff follows below in chronological order.

The Painter

The Painter is a pixel based drawing program. This program was completely written in 68000 assembler, being approx. 25k lines of code or 80kB in compiled form. My brother was responsible for the user interface, whereas I wrote all the drawing routines.

DATAdesign

DATAdesign is a card file database written in two parts: the database engine (as a library), and the graphical user interface for it. Both are written in 68000 assembler.

PROforma

PROforma is a vector graphics drawing library. The most important part of this handles the display of fonts. The fonts are based on the Adobe Type I standard, with minor conversions in the font format the make the fonts easier to handle, and to ensure the memory requirements on loading are reduced. A simple conversion program exists. The library is device independent, allowing the same calls to have their output displayed on screen or printer. The library was entirely written in C. PROforma handles general drawing both on screen and for printers. The bitmap routines, driver handling code and drivers to display complete pictures (e.g. GIFs) are external driver which can be added during execution.

ProWesS

ProWesS is an application support package for the QL. The main part contains a resolution independent GUI. This does not include any coordinates, but objects are positioned relative to each other. Written in C and using OO principles, the system is extensible, as each type of module is separately loaded. Extra object types can be defined and added at will. ProWesS is based on PROforma for all its graphics handling. The system can be dynamically configured. All object types can have their attributes changed at any time, immediately affecting the look and feel of all objects of that type. This is an ongoing project.

Other

Some smaller ProWesS applications, all written in C.

handling

All the QL software was completely handled by us, writing the software, manual, packaging, advertising, handling customer requests/support etc.