CV

A brief overview of my professional experience, education, and skills.

Professional experience

I currently divide my 48-hour workweek between two major non-profit organisations.

ResearcherHU University of Applied Sciences Utrecht (Hogeschool Utrecht)–present

Hogeschool Utrecht (HU) is a large public university of applied sciences that provides education to 35,000+ students and professionals between the ages of 17 and 67.

As a research software engineer, I mainly work on the development of human-centred disinformation detection tools for the Horizon Europe-funded AI4Debunk project. I also do a bit of tangentially related development work for HU’s Robosub project.

Software engineerNederlandse Omroep Stichting (NOS)–present

NOS is the Dutch public broadcasting organisation that produces news, sports, and events programming for the Dutch public broadcasting system. It also happens to be the largest news organisation in the Netherlands.

Over the years, I’ve held various engineering positions at multiple technology departments within the NOS and have worked on a wide range of mission-critical systems and innovative projects.

Works council memberNederlandse Omroep Stichting (NOS)

An embarrassingly high number of colleagues voted for me to be a member of NOS’s works council (ondernemingsraad), which consults with upper management on behalf of employees.

My main areas of focus included the organisation’s – or rather, society’s – response to the COVID-19 pandemic, the transition to hybrid working, technology investments, working conditions, DEI, and social safety.

Backend developerYource

Yource is a legal services company that helps passengers across Europe claim compensation for delayed and cancelled flights under Regulation (EC) No 261/2004 on air passenger rights.

I worked on the backend of the flight compensation platform, which includes automated generation of legal documents, payment modules, and a massive pile of REST APIs.

Technical designer and programmerICT InTraffic

InTraffic is a digital solutions provider for multimodal traffic and transport, which just so happens to include the things I get really excited about, such as public transport data and passenger information systems. Its clients include major players in the Dutch public transport sector, such as ProRail, NS, GVB, and governments.

During my time at InTraffic, I contributed to BISON data exchange standards, prepared public tenders, presented solutions to prospective clients, and worked on both national and regional passenger information systems in the Netherlands.

Education

I’m merely trying to catch ’m all, like Professor Oak told me.

MSc, Software EngineeringOpen University of the NetherlandsCum laude (with distinction)

I wanted an engineering degree, so I got one. That’s not a particularly good reason to sacrifice evenings and weekends for a second master’s degree, but I did learn a lot about software architecture, software quality, software security, and formal verification.

Grade point average8.3 / 10

Course load (ECTS credits)60 / 60

MSc, Information Studies (Human-Centred Multimedia)University of Amsterdam, VU AmsterdamCum laude (with distinction)

The Human-Centred Multimedia master’s programme was a joint programme between the University of Amsterdam and VU Amsterdam. I received my master’s degree from the former but actually spent most of my time at the latter.

Since this was the last time I could pursue a master’s with a fixed tuition fee – it’s more or less an all-you-can-eat buffet – I decided to simply take all elective courses that were on offer. These included courses on knowledge representation, information retrieval, and human-computer interaction.

Grade point average8 / 10

Course load (ECTS credits)78 / 60

BSc, Information ScienceUtrecht UniversityCum laude (with distinction)

I did a bachelor’s in information science, which might be called human-computer interaction or information systems at other universities. My curriculum included a mix of courses on computer science, software development, project management, business informatics, economics, cognitive psychology, and user experience.

Grade point average8 / 10

Course load (ECTS credits)215 / 180

Computing ScienceRadboud University

This bachelor’s programme was not a good fit for me, which I could’ve known if I had put more effort into researching the programme before enrolling. I did learn a lot about logic and algorithms, though.

Other positions

“Wait, you guys are getting paid?”

Master’s programme committee memberOpen University of the Netherlands

Elected member of the programme committee (opleidingscommissie) for the master’s programmes in computer science and software engineering at the Open University of the Netherlands. The programme committee is responsible for monitoring and improving the quality of the programmes, advising on curricula, and playing an important role in shaping regulations.

User experience (UX) research internRabobank

I learned the ropes of user experience research as an intern in the Rabobank’s UX department at their corporate headquarters. I did some work on cataloguing design patterns, and I also conducted a small usability study in their amazing usability lab.

Certifications and courses

A selection of certifications and courses I’ve completed in the past few years.

Building Customized LLMs with OpenAIColumbia+

Informative course on building customised large language models, with a good balance between theory and practice.

Introduction to Web AccessibilityedX

It’s important that any software we make is accessible, but unfortunately accessibility can be hard to “get” as an able-bodied person.

Machine LearningCoursera

Andrew Ng’s course on machine learning, before we had large language models (LLMs) and generative AI. I’ve got to use the knowledge I gained maybe once for my master’s thesis.

Software Construction in JavaedX

This online MITx course has arguably had a bigger impact on how I approach software development than any of the software design courses I took at university.

Tech stack

These are the technologies and paradigms I use most often in my current work.

DevOpsAdvanced

As a former user experience researcher and a backend engineer turned DevOps engineer, I strongly value developer experience and reproducibility in the work that I do. I set up and maintain CI/CD pipelines, Docker containers, Kubernetes clusters, and other infrastructure, and support my teams however I can.

PHPAdvanced

Yes, yes, we all know it’s a fractal of bad design. But the bad parts don’t matter that much in practice, while the good parts are actually quite good. Do make sure though that you don’t stray too far from the beaten paths of the Symfony and Laravel communities.

PythonProficient

I don’t mind the syntax and I think it’s a good enough language for small data science applications. I do feel that the quality of its ecosystem and the software produced within it could be a lot better.

Other skills (A–Z)

This used to be called keyword stuffing. It still is, but it used to, too.

  • Academic writing
  • Accessibility
  • Ansible
  • Argo CD
  • AWS
  • Bash
  • Claude
  • Codex
  • Confluence
  • Copilot
  • C#/.NET
  • CSS
  • Docker
  • Elasticsearch
  • Excel
  • GitHub
  • Golang
  • Haskell
  • Hetzner
  • HTML
  • Information design
  • Java
  • JavaScript/TypeScript
  • JIRA
  • Kubernetes
  • LaTeX
  • Linux
  • macOS
  • MariaDB/MySQL
  • Microeconomics
  • Non-profit discounts
  • OBS
  • OpenShift
  • Outlook
  • Penmanship
  • PhpStorm
  • Playwright
  • PowerPoint
  • Prototyping
  • RabbitMQ
  • React
  • Rust
  • SharePoint
  • Slack
  • SOPS
  • Storybook
  • SQL
  • Systems thinking
  • Teams
  • Technical writing
  • Terraform
  • Typesetting
  • User experience
  • Visual Studio Code
  • Windows
  • Word
  • XSL

Natural languages

For all intents and purposes, I only speak Dutch and English fluently. I really need to brush up on my Classical Latin…

Dutch (Nederlands)C2

This is the language I use whenever I have to debate whether it’s “patat” or “friet” (it’s obviously “friet”).

Fun fact: Dutch is technically not my native language. I learned it in elementary school through NT2 (Nederlands als tweede taal) language courses.

English (European)C1

I speak and write English with a subtle Dutch accent. Obviously.

Cantonese (廣東話)It’s complicated

Cantonese is technically my native language, but I don’t speak it well enough to hold a conversation. Reading and writing are completely out of the question. My mastery of Cantonese is probably on a similar level as that of a gweilo with a phrase book.

Things you can wake me up for

Both literally and figuratively.

PC games

I don’t own a gaming PC, so I’m limited to playing older games on my Mac. More or less what XKCD #606 describes, but with a ten-year lag.

PhD positions

I’m actively looking for a PhD position, preferably in the field of software engineering.

Planespotting

The first place I drove to after buying my first car was the spotter zone next to Amsterdam Airport Schiphol’s Polderbaan runway (18R-36L).

PowerPoint parties

I’ve honestly never been to one, but they sure sound like fun. I also happen to be fairly good at PowerPoint.

Prestigious universities

Some people visit churches when they travel abroad; I visit universities. In all honesty, they don’t need to be prestigious – just pretty.

Production incidents at work

I mean, who else are you gonna call?

Propaganda and disinformation

Propaganda, misinformation, disinformation, and malinformation are tearing our societies apart. I’m interested in how these phenomena work, and how we can counter them.

Things that don’t start with the letter P

I can’t think of any right now, but I’m sure there are some…