Fraud data analyst at ABN AMRO in Amsterdam. I work with payment scheme data and fraud analytics by day, and build Python side projects by night: mostly in the payments space, plus the occasional scraper or geodata pipeline.
- credit-card-fraud-detection: ML fraud detection on 284k real transactions, covering extreme class imbalance, model comparison, and decision-threshold tuning with metrics that matter in a payments context
- payment-acceptance-analyser: 250k simulated European transactions analysed for why payments fail, which segments underperform, and how intelligent retry logic recovers lost revenue. Includes a Streamlit dashboard
- funda-property-scraper: Selenium scraper for Dutch property listings on Funda.nl, with geocoding and an interactive Leaflet map for any Dutch city
- pandektis-scraper: pipeline that extracts and geocodes 4,413 historical Greek settlement renamings from the Pandektis/EKT database into GeoJSON
- boodschappen-index: an independent daily Dutch grocery price index tracking a fixed basket of 72 Albert Heijn products, with automatic shrinkflation detection. Live dashboard
Finished rank 418 of 6,807 (bronze medal) in Kaggle's Pokémon TCG AI Challenge, building agents with imitation learning from top-player replays, self-play RL, and a heavily audited evaluation harness. The submitted writeup, "Fix the Instruments First", lives with all the code in PTCG-AI-Challenge.
Python pandas scikit-learn PyTorch SQL Streamlit Tableau Selenium BeautifulSoup
📍 Amsterdam · LinkedIn