I work on AI and Engineering for the Dutch Government, currently as Engineer in the Bureau Architectuur Digitale Overheid (BADO), where I primarily work on RegelRecht, an exploration into machine-executable legislation. I also run Axolotl Systems, where I provide ML engineering and platform consulting services one day per week alongside my government work, including working as ML Engineer at Ditto. I hold a PhD from the University of Amsterdam where I studied self-learning search engines. My publications have received over 1735 citations (Google Scholar); my h-index is 22.

Professional Appointments

Government

Bureau Architectuur Digitale Overheid (BADO)

The Hague, The Netherlands
Engineer (Jan 2025 – present)
Engineer in the Bureau Architectuur Digitale Overheid (BADO), primarily working on RegelRecht, an exploration into machine-executable legislation that aims to achieve transparent, unambiguous, and consistent execution of laws.

Ministry of the Interior and Kingdom Relations (BZK)

The Hague, The Netherlands
Engineering Manager - AI Validation Team (Aug 2023 – Dec 2024)
Grew and supported the AI Validation Team at the Digital Society Department, NL Ministry of the Interior and Kingdom Relations (BZK). A team of about seven engineers, plus product and UX, focused on building software for AI validation, including the Algorithm Management Toolkit.

Industry

Axolotl Systems

Utrecht, The Netherlands
Founder & ML Engineering Consultant (2023 – present)
Run Axolotl Systems one day per week alongside government work, providing ML engineering and platform consulting services. Currently working as ML Engineer at Ditto.

Spotify

Utrecht, The Netherlands
ML Engineering Manager Search (Dec 2021 – Jul 2023)
Machine Learning Engineering Manager, primarily supporting the Search Ranking team. The team consisted of Backend, Data, and Machine Learning engineers responsible for building and running the last stage of Spotify’s search platform. Also supported several other teams during this time.

DPG Media

Amsterdam, The Netherlands
Machine Learning Architect (Feb 2021 – Nov 2021)
Focused on the technical aspects of building a large-scale recommendation system spanning all news products and brands; oversaw the technical challenges of about 25 people working on products with a recommender system at their core.

Head of News Personalisation (May 2020 – Feb 2021)
Managed 15 people, divided over 3 teams working on content understanding & search, user understanding, and ranking. Responsible for personalising the news selection across major Dutch and Belgian news titles (Volkskrant, AD, Trouw, Parool, HLN, De Morgen, and many others) owned by DPG Media.

Head of News Data (Oct 2019 – May 2020)
Managed two teams focused on news personalisation and newsroom analytics.

Team Lead - News Personalisation (Aug 2018 – Sep 2019)
Started and led the News Personalisation Team, a group of nine engineers and scientists working on personalisation for major Dutch and Belgian news titles.

Machine Learning Engineer (Mar 2018 – Jul 2018)
Spent the first months developing plans for personalisation across DPG’s news brands.

Google AI

London, United Kingdom
Research Scientist (Sep 2017 – Mar 2018)
Worked on conversational recommendation systems for the Google Assistant.

Blendle

Utrecht, The Netherlands
Data Scientist (Feb 2016 – Aug 2017)
Responsible for the learning aspects of Blendle’s recommendation engine for journalism, at a New York Times-backed startup that built a platform where users could explore journalism.

Academic

PhD Candidate (2011–2016)
Informatics Institute, University of Amsterdam, The Netherlands
Research Topic: Online Learning to Rank for Information Retrieval. Studied how search engines can learn from their users to improve their results. Built the Lerot framework. Supervised by prof. dr. Maarten de Rijke and dr. Shimon Whiteson.

Software Engineer (2010–2011)
Informatics Institute, University of Amsterdam, The Netherlands
Responsible for crawling, processing, and indexing parliamentary proceedings across the European Union as part of the Political Mashup project.

Teaching Assistant (2010)
ILLC, University of Amsterdam, The Netherlands
Assisted in the Bachelor-level Language Models course; responsible for grading homework and supervising lab sessions.

Support Staff (2007–2010)
Informatics Institute, University of Amsterdam, The Netherlands
Employed by the ILPS group as support staff, working under the supervision of dr. Maarten Marx on collecting, structuring, and indexing political data.

Other

Web-master and IT-instructor (2005–2007)
Learnit BV, Amsterdam, The Netherlands
Responsible for designing, implementing, testing and maintaining innovations for the website of a training company; also instructor for IT-related subjects including basic programming classes.

Assistant Manager (1999–2003)
Minerva Bioscopen, Zaandam, The Netherlands
In the last year of a four-year employment at a medium-sized cinema, responsible for the day-to-day management of the operation, heading a team of approximately 20 people.

Internships and Visits

Microsoft Research, Bing

Cambridge, United Kingdom
Research Intern (2014)
Collaborated with dr. Filip Radlinski and dr. Katja Hofmann for 12 weeks on online evaluation of Bing, focusing on bringing interleaved comparisons closer to AB testing. Published a full paper at SIGIR2015.

Yandex

Moscow, Russia
Research Intern (2014)
Spent 3.5 months in the research team under supervision of dr. Pavel Serdyukov and with Damien Lefortier, working on online learning to rank (bandit) algorithms for freshness ranking.

Yahoo! Labs

Barcelona, Spain
Visiting Researcher (2012)
Collaborated with dr. Gianmarco De Francisci Morales in the group of dr. Aristides Gionis on integrating a semantic linking project developed at the University of Amsterdam into Yahoo!’s search-logs processing.

Education

PhD Information Retrieval

University of Amsterdam, The Netherlands (2011–2016)
Thesis: Search Engines that Learn from Their Users.
Committee: prof. dr. Maarten de Rijke, dr. Shimon Whiteson, prof. dr. Thorsten Joachims, dr. Evangelos Kanoulas, prof. dr. Diane Kelly, dr. Maarten Marx, and prof. dr. Max Welling.

MSc. Artificial Intelligence

University of Amsterdam, The Netherlands (2008–2010)
Graduated cum laude. Thesis: Tuning Methods in Statistical Machine Translation. Won the Dutch prize for best Artificial Intelligence thesis of the year 2010/2011 (KION).
Committee: dr. Christof Monz, dr. ir. Leo Dorst, and prof. dr. Khalil Sima’an.

BSc. Artificial Intelligence

University of Amsterdam, The Netherlands (2004–2007)
Thesis: Applied Text Analytics for Comments on News-Articles. A revised version was published and is now cited over 90 times.

Secondary Education

VWO, St Michael College, Zaandam (2000–2003)
Vrije School, Adriaan Roland Holstschool, Bergen (1997–2000)

Teaching

Student Supervision

I (co-)supervised the following students and trainees.

2024-2025
Renate Burema, Intern (internship at Ministry of the Interior and Kingdom Relations). LLMs Benchmarks for The Netherlands. Co-supervised with Christopher Spelt. Published at the Language Resources and Evaluation Conference (LREC 2026).
2024
Guusje Juijn, Rijks I-Trainee (internship at Ministry of the Interior and Kingdom Relations). Co-supervised with Christopher Spelt.
2023
Thilina Rajapakse, PhD Student at the University of Amsterdam (internship at Spotify). LLMs for Search. Co-supervised with Claudia Hauff.
2022-2023
Samarth Bhargav, PhD Student at the University of Amsterdam (internship at Spotify). Tip-of-the-Tongue Retrieval for Music. Co-supervised with Claudia Hauff. Published at SIGIR'23.
2021
Astrid Weijs, MSc AI at the Vrije Universiteit Amsterdam (internship at DPG Media). Breaking the Filter Bubble.
2019-2020
Tom Sweers, MSc CS at the Radboud University Nijmegen (internship at DPG Media). Timing Push. Co-supervised with Lucas de Haas.
2019-2020
Henning Bartsch, MSc AI at the University of Amsterdam (internship at DPG Media). Neural Recommendation. Co-supervised with Lucas de Haas, Joris Baan, Maartje ter Hoeve.
2019
Pieter Zalis, MSc Data Science at the University of Amsterdam (internship at DPG Media). News Personalisation. Co-supervised with Lucas de Haas, Christof Monz.
2019
David Vos, BSc AI at the University of Amsterdam (internship at DPG Media). Personalized Weekly Newsletters. Co-supervised with Lucas de Haas, Harrie Oosterhuis.
2018-2019
Chia-Lun Yeh, MSc AI at the Delft University of Technology (internship at DPG Media). Bias Detection. Co-supervised with Babak Loni, Nava Tintarev. Published at SEMEVAL'19, .
2018-2019
Joris Baan, MSc AI at the University of Amsterdam (internship at DPG Media). Explaining Summarization. Co-supervised with Marlies van der Wees, Maartje ter Hoeve, Maarten de Rijke. Published at FACTS-IR'19, .
2017-2018
Maartje ter Hoeve, MSc AI at the University of Amsterdam (internship at Blendle). Explaining Rankings. Published at FATREC'17, .
2015-2016
Claudia Minardi, MSc AI at the Vrije Universiteit Amsterdam. Master thesis.
2015-2016
Jeffrey Kuiken, BSc IK at the University of Amsterdam (internship at Blendle). Effective Headlines of Newspaper Articles in a Digital Environment. Published at Digital Journalism.
2014-2016
Harrie Oosterhuis, MSc AI at the University of Amsterdam at University of Amsterdam. Online learning to rank (Honours program). Published at WSDM'16, ECIR'16.
2014-2015
Spyros Michaelides, MSc AI at the University of Amsterdam. Comparing Living Labs with Lerot.
2013-2014
George-Viorel Visniuc, MSc AI at the University of Amsterdam. Understanding User Behavior through Search Log Analysis.
2012-2013
Hanne Nijhuis, MSc AI at the University of Amsterdam. Active Online Learning to Rank for IR.
2011-2012
Bart de Goede, MSc IK at the University of Amsterdam. Sustainable Questions. Published at SIGIR 2012 Workshop on Time-aware Information Access.

Courses and Tutorials

LiLa 2016: ECIR 2016 Tutorial

Year: 2016 · Living Labs for Online Evaluation: From Theory to Practice

Information Retrieval 2

Master Artificial Intelligence, University of Amsterdam
Years: 2014–2015. Project on “Online Learning to Rank”. Published a short paper at SIGIR2015.

Information Retrieval 1

Master Artificial Intelligence, University of Amsterdam
Years: 2014–2015. Lectures on Online Evaluation, Online Learning, and projects on Multileaved Comparison Methods.

Information Retrieval

Master Artificial Intelligence, University of Amsterdam
Year: 2013–2014. Lecture 7 on “Online Learning to Rank”.

Advanced Information Retrieval

Master Artificial Intelligence, University of Amsterdam
Year: 2011–2012. Invited lecturer.

Language Models

ILLC, University of Amsterdam
Year: 2009–2010. Teaching Assistant. Bachelor-level course on Hidden Markov Models and language modelling.

Recommender Systems

Hogeschool Rotterdam
Year: 2019. Invited lecturer.

Search and Recommendations at Blendle

Radboud University, Nijmegen
Year: 2016. Invited lecturer.

Professional Activities

Leadership & Organizational Roles

Advisory Roles (2023-2026)

Workshop & Conference Organization (2012-2019)

Community Organization (2014-2015)

University Leadership (2012-2014)

Program Committee Membership

SIGIR (2015-2023)

WSDM (2016-2018)

RuSSIR (2015-2020)

CLEF (2015-2016)

DIR (2015, 2018)

WWW / TheWebConf (2018-2019)

Other PC Roles

Reviewing Activities

Conference Reviewing (2013-2023)

Journal Reviewing (2013-2019)

Grants

  • 2018 — Google DNI, De Volkskrant Guide to Life. €500K
  • 2016 — NWO KIEM project on Semantic News Search. €15K
  • 2015 — Microsoft Azure Subscription to host the Living Labs API
  • 2015 — ELIAS Grant to maintain and develop the Living Labs API. €10K
  • 2015 — ELIAS Workshop Grant to organize a workshop at CLEF2015 in Toulouse, France. €10K
  • 2015 — CLEF Student Grant for CLEF2015 in Toulouse, France. €300
  • 2015 — CLEF Travel Grant for CLEF Organizers Meeting at ECIR2015 in Vienna, Austria. €750
  • 2015 — ACM Travel Grant for SIGIR2015 in Santiago, Chile. $2K
  • 2014 — ELIAS Exchange Grant to visit Yandex in Moscow, Russia. €2K
  • 2013 — ACM Travel Grant for CIKM2013 in San Francisco, USA. $600
  • 2012 — ELIAS Short Research Visit Grant to visit Yahoo! in Barcelona, Spain. €1.3K

Awards

  • 2016 — WSDM2016 Outstanding Reviewer Award
  • 2011 — ILPS Most Valuable Player of the Year Award
  • 2010 — KION Award for best Dutch Artificial Intelligence Master thesis of the year 2010/2011

Invited Participation

  • 2017 — 45th EPRA Meeting. Edinburgh, Scotland.
  • 2015 — Google NLP PhD Summit. Zurich, Switzerland.
  • 2015 — Science Europe Workshop: Towards networked Research Infrastructures for behavioral studies. Brussels, Belgium.
  • 2011 — Dagstuhl Seminar 11421 on Foundations of Distributed Data Management. Germany.

Selected Talks

A curated selection from my full talks list.

2026

2025

2024

2023

2020

2019

2018

  • Filter bubbles. Jonge Democraten. Amsterdam, The Netherlands. Oct 23.

2017

2016

2015

2013

In the Press

A selection of media coverage; see press for the full list.

  • 2020 — Cross Media Cafe interview on personalised push at DPG Media, Mediaperspectives.
  • 2019 — Personalized news: matchmaker for online media or ethical minefield?, Vrij Nederland.
  • 2018 — Algoritmes: Moeten journalisten vrezen voor hun toekomst?, Villamedia.
  • 2017 — Zij weten precies wat jouw voorkeuren zijn, NRC Next.
  • 2016 — Datawetenschap in de journalistiek, Nieuwe Journalistiek (interview by Catrien Spijkerman).
  • 2014 — Grotere universiteit is daarom nog niet beter, Trouw (opinion article).

Selected Publications

I have published 54 peer-reviewed scholarly articles, including full papers at major information retrieval venues such as ECIR, CIKM, WSDM, and SIGIR with acceptance rates as low as 10%. According to Google Scholar, my articles have received over 1735 citations; my h-index is 22. Below is a curated selection; see publications for the full list.

2026

2023

2019

2018

2017

2016

2015

2014

2013

2010

2007

Software Skills

Programming, Scripting, Markup
Python (fluent); Bash, C, C++, C#, Java, JavaScript, SWI-Prolog, MatLab (experienced)
Data & Ops
Kafka, Spark, Hadoop, Kubernetes, Git, Jupyter
Databases
ElasticSearch, Redis, MySQL, eXist-db, MongoDB
Machine Learning
scikit-learn, PyTorch, SVM Light, Spark MLlib
Testing
BDD Cucumber, python-doctests

Open Source

  • Claude-threads — Brings Claude Code into team chat (Mattermost, Slack); live-streamed AI pair programming with per-thread sessions.
  • peerpressure — Social digital-detox app using peer accountability to keep a focus group on task; real-time app blocking.
  • RegelRecht — Dutch government exploration into machine-executable legislation; NRML rule format, execution engines, AI converter, simulation.
  • Algorithm Management Toolkit (AMT) — Governance platform for algorithmic systems in the Dutch government; bookkeeping, technical validation, ethical assessment, transparency reporting.
  • Living Labs — RESTful API for the Living Labs for IR Evaluation (LL4IR / CLEF lab) letting researchers evaluate rankers on real users of real search engines.
  • Lerot: an Online Learning to Rank Framework — Framework for running online learning-to-rank experiments for information retrieval; described in a CIKM’13 workshop paper.

See software for the full descriptions and related work.

Languages

  • Dutch — native
  • English — fluent (technical and conversational)
  • German — basic (speaking, reading, writing)

Interests

Sports. Rowing (athlete in a freshmen eight that practiced daily; coach of an eight that practiced five times a week), speed skating, running, cycling, hiking.

Travel. In 2003 and 2004 I traveled around India, Nepal, and Tibet for 11 months. In 2007 I cycled 5000 km from Amsterdam to Turkey in about two months. I still like to travel to remote places and try to go on a long cycling trip every year.