work
karim strijdt in rotterdam-zuid met zijn wijkbond tegen de gevolgen van omvolkingsretoriek
follow-up to the ongehoord nieuws analysis. showed the rhetoric to karim, then wrote this article on how he resists it: organizing neighbors around shared problems like mold and high rent through his wijkbond in rotterdam-zuid, and building a national network of diaspora communities.
Date: October 30, 2026

voor miljoenen nederlanders ligt een lhbtiq+-sportclub buiten bereik
did the primary data analysis for this article and made the initial maps; my colleague Lisanne Wichgers produced the published versions. scraped lhbtiq+-(friendly) sports clubs, ran a self-hosted valhalla routing server on openstreetmap data to calculate cycling and driving isochrones per club, and overlaid them on the cbs 100m population grid: 12 million dutch people have no club within 20 minutes by bike, nearly 4 million by car.
Lead author: Lisanne Wichgers
My role: data analysis, initial maps
Date: September 29, 2026
Tech stack: Python, web scraping, Valhalla (self-hosted), OpenStreetMap, isochrones, Shapely, CBS 100m grid, Matplotlib

ongehoord nieuws brengt 'omvolking' steeds vaker zelf als complot, tafelgasten pleiten voor gedwongen 'remigratie'
analyzed all 466 mentions of 'omvolking' and 'remigratie' across 324 broadcasts of ongehoord nieuws (2022-2026), coding each by speaker and meaning. then wrote this article showing how a far-right conspiracy term moved from guests to the presenters themselves.
My role: lead author
With: Peter Keizer
Date: September 21, 2026
Tech stack: Python, transcript analysis, content analysis, investigative journalism

bezorgde burgers? hoe rechts-extremisme structureel aanwezig is bij anti-azc-protestbeweging defend netherlands
built a newsroom dashboard to classify, search and review 7,555 telegram messages, images and videos using an ensemble of four ai models. then wrote this article and identified 101 accounts (19%) posting extremist content over 7 months.
With: Thomas Mulder, Peter Keizer, Lisette van Vliet
Date: April 1, 2026
Tech stack: ensemble AI classification, Telegram data analysis, Python, investigative journalism

mapping fossil ties
created interactive network visualization exposing connections between dutch academia and the fossil fuel industry.
Year: 2025
Tech stack: D3.js, JavaScript, network analysis, data visualization, investigative journalism

app me als je thuis bent
built ai-powered analysis tools for investigative journalism on street safety. webapp identified hotspots in 11,000+ location reports, llm analyzed raw data to surface story angles.
Year: 2025
Tech stack: LLM, Python, data analysis, data visualization, investigative journalism

bron chat
built ai-powered search across 3.5 million dutch government documents. ask questions in natural language, get sourced answers.
Year: 2024
Tech stack: RAG, Python, FastAPI, OpenAI, PostgreSQL, NLP, Dutch government data

chrono scraper
developed open source osint tool with momus media to search historical website archives using wayback machine data.
Year: 2023
Tech stack: FastAPI, Svelte 5, Docker, Meilisearch, Web scraping, Archive.org API, OSINT