LIVE
Spark Structured Streaming and the ClickHouse Kafka engine
Live aircraft and landings over the Netherlands: Kafka, streaming into ClickHouse and Delta, shown in a real-time report.
A loading process that maintains itself
Every 15 minutes an AI agent checks the streaming pipeline end to end, repairs known failures with tested code and reports to my phone. Live incident figures.
Medallion lakehouse with Airflow, dbt and PySpark
Bronze, silver and gold Delta tables: PySpark loads, dbt transforms and tests, Airflow orchestrates. Includes a replay of a 990-million-row run.
Sales data product: from CSV to star schema
Northwind sales through the medallion layers on Delta Lake up to a Kimball star schema, pre-joined consumption tables in ClickHouse, incremental loading in every layer, one Airflow DAG and a Superset dashboard.
One AI agent watching another
The open-source agent opencode, on a European model, built my visitor-notification agent from one prompt. Claude Code watched all 118 tool calls live, checked every alarm and reviewed the result: careful work, zero suspicious actions.
Self-healing nightly pipeline: three data products, one Airflow DAG
One Airflow DAG runs Northwind, AdventureWorks and Dutch weather in parallel every night. When a task fails, an AI repair agent finds the cause, fixes it and reruns only what failed, and my phone gets “OK na herstel”.
A data product built by AI agents, end to end
Four agents, business analyst, architect-modeller, data engineer and BI developer, take AdventureWorks from requirements to a Superset dashboard, working from my standards and handing over reviewable documents.
Semantic layer for AI agents with OpenMetadata
Why agents need business definitions: SQL composed only from glossary terms, formulas and joins in OpenMetadata, with real examples.
A 2010 website rebuilt by an AI agent
An AI coding agent replaced the whole Joomla 1.5 backend (PHP, MySQL) with a static site, redirected every old link, backed everything up to S3 and made blog publishing an MCP tool.
MCP servers: one protocol, many agents
MCP servers that let agents deploy the platform, write to my blog and generate queries for self-service BI, with humans in the loop.
How I work with AI: my principles
Accountable, so in control: I understand how things are done and avoid lock-in to one model. Deterministic results on a robust data foundation, with guardrails and best practices.
Text-to-SQL agent: Databricks or open source
One chat app, two interchangeable backends: Databricks Model Serving or FastAPI, PostgreSQL and Llama on Kubernetes. Same model, prompt and API.