IT-DEV


background

Way back in the late 1980s I owned an MSX 1 home computer and got hooked on programming games in MSX BASIC. After my career in science I have rediscovered my enthusiasm for computer code and educated myself by creating mouse controlled desktop games in Java, C++, and C# (see below). Currently, I consider myself a senior full-stack IT developer with experience in both backend (Java, C++, PostgreSQL, PostGIS, Elasticsearch, REST, Django, Prefect, Amazon Web Services, Microsoft Azure, Nginx) and frontend (Javascript, Angular, React, Next.js). I am an Oracle Certified Associate in Java SE 8 and certified Elasticsearch Engineer I.

Next to working with code, I have experience as internal auditor ISO 9001, coordinator of ISO 27001 certification, contact person for privacy regulations (AVG), and setting up company wide guidelines for the process of software development.


projects

Projects at Witteveen+Bos (November 2022 - now)

API Gateway (lead): Central service for sharing internal data (APISIX/Nginx, Lua, Django, PostgreSQL). Including procedure to grant access to data via TOPdesk, coordination with data owners, and data classification.

App Role Tool (lead): Web application wrapper for Microsoft Azure AD to manage permissions for the API Gateway (Django, MS Graph API, Next.js, PostgreSQL).

Internal integration services (lead): Integrating various business processes (Django, MS Graph API, PostgreSQL).

Data integration service: Automation of extract-transform-load pipelines with data quality requirements (Django, Prefect, DBT, Great Expectations, minIO, PostgreSQL).

GeoSaFence: Safety app with GPS for digging machines (Node.js, Python, React, PostgreSQL, Raspberry Pi, websockets).

Web applications: For digitization of internal business processes (Django, React, Vue, PostgreSQL).


Projects at DAT.mobility (September 2018 - July 2022)

Omnitrans Next Analytics: Web application for viewing traffic model results. Tasks in Scrum team: backend dev (Java, PostgreSQL, Elasticsearch, REST, Fusionauth, AWS); frontend dev (Angular); profiling (Elasticsearch, AWS).

NWB viewer/editor: Pilot project for updating NWB network in a web application. Task in Scrum team: backend dev (AWS serverless, typescript).

Omnitrans Next Accounts: Web application for user management. Tasks in Scrum team: backend dev (Java, Fusionauth); frontend dev (Angular).

Omnitrans Next Mobiliteitsspectrum: Traffic model for average traffic intensity on all roads in NL. Tasks in Kanban team: backend dev (PostgreSQL, PostGIS, Ruby, Java).

NDW map matching: Project for NDW to match various data sources on a network (Java, PostgreSQL, PostGIS).

Omnitrans StreamLine: Framework for computing various traffic models. Task: backend dev (C++).

Node-to-node traffic assignment: Project to assign traffic between each pair of nodes in a network. Task: backend dev (Java with concurrency).

Omnitrans Next Horizon: Agent based traffic model with microsimulation. Tasks: refactor code base in Ruby; improve performance of computing choice models; improve performance of population synthesizer.

Omnitrans Next Realtime: Realtime traffic prediction model. Task: refactor code base in Ruby.


Responsive personal website (HTML & CSS)

March 2018

This is the website you are viewing right now. The layout and size of the elements depend on the width of the screen on your device. The design was inspired by a template on Wix.com.

website

Card game Zwikken (C# & WPF)

February ​2018

Zwikken is a Dutch card game. The user plays against three computer players. Each player gets three cards and three tricks are played. Players can choose to play or pass, and play to win the pot of chips. A computer player that has run out of chips is taken out of the game. The rules can be found here. The C# codes are here.

zwikken

Memory game (C++ & wxWidgets)

January ​2018

This is a metal music themed memory game with a few twists. The user plays against a computer player and both must find triplets of identical cards spread out over two game boards. Some cards are swapped after turning, some cards shuffle the complete board. The board size, computer memory strength, and turn order may be set. Winning is a challenge. The C++ codes can be found here.

memory

Card game Stap Op (Java & Java Swing)

​December 2017

An existing old Dutch card game in which players compete in an bicycle race. In the desktop game the user plays against two computer players. The rules can be found here. The Java codes are here.

stap_op

stacks

Software & Frameworks


Elasticsearch
Amazon Web Services
Microsoft Azure
minIO
REST
Nginx
Fusionauth
Django
Prefect
Angular
React
Next.js
QGIS
Eclipse
Maven
Visual Studio
Windows Presentation
  Foundation

languages

Languages


Java SE/EE
Scala
C++
C#
Lua
PostgreSQL
PostGIS
Ruby
Python
HTML & CSS
Typescript
Javascript
MATLAB
R

stacks

Software & Frameworks


Elasticsearch
Amazon Web Services
Microsoft Azure
minIO
REST
Nginx
Fusionauth
Django
Prefect
Angular
React
Next.js
QGIS
Eclipse
Maven
Visual Studio
Windows Presentation
  Foundation

languages

Languages


Java SE/EE
Scala
C++
C#
Lua
PostgreSQL
PostGIS
Ruby
Python
HTML & CSS
Typescript
Javascript
MATLAB
R