I’m a programmer who got curious about infrastructure, and an infrastructure person who never stopped thinking like a programmer. Ignoring the line between “software” and “ops” is where my best ideas come from.

I believe in working in the open. Everything is a file, and the more I work with AI, the more that turns out to be a surprisingly strong foundation to build on. Git fits naturally into that: history is preserved, anything can be diffed, anyone can look. That same thinking carries into how I present. My slides are written in code, version-controlled and publicly available, with the source linked for each talk below.

Talks

My public speaking profile is on Sessionize.

Upcoming

CozySummit 2026 - CNCF (26 May 2026)

CozySummit event

Cozystack exposes platform services as Kubernetes API resources: Postgres, Redis, Bucket, Kubernetes. Users interact via kubectl, a dashboard, or even AI agents through MCP. But who is making all these changes, and why? Git seems far away. What if every platform change automatically appeared as clean YAML in Git? A silent layer that turns API activity into a durable, readable history of infrastructure intent. The immediate win is auditability: instead of digging through logs, teams get versioned history they can inspect, diff, and share. Think of it as reverse GitOps: instead of Git driving the platform, the platform writes its intent back to Git.

Who Tests the Configuration? - TestNet Spring Event (6 May 2026)

TestNet event (Dutch)

Much of what impacts production isn’t code but configuration: business rules, feature flags, content, rate limits, deployment settings, database connection details. Because configuration is so broad and scattered, it’s often unclear what falls under it, who can change it, and how to properly test those changes. This session shows why that’s a quality problem and how to make configuration changes visible, reviewable, and testable before production, using pull requests to spin up temporary environments for impact testing.

Given

Reverse GitOps - KubeCon Co-located Event (23 March 2026)

KubeCon EU 2026 co-located session · Slides: PDF, Repo · Recording

GitOps is well understood in one direction: desired state in Git, applied to a cluster. But what happens when you need it to work in reverse? When the cluster (or an operator) needs to write state back to Git? I introduced the concept of Reverse GitOps and walked through why it matters, where the current tooling falls short, and what a proper implementation looks like.

Platform Engineering Day EU 2026 Speaker

Bringing Pull Requests to Life with GitOps - dotned Saturday (May 2023)

Session details · Slides

How do you give a small team the deployment confidence of a much larger one? This talk showed how GitOps and ArgoCD let a 25-person company spin up a full temporary environment for every pull request, running integration tests against it automatically, deploying to production on success, and discarding the environment when done. Live demo included.

Podcast

The Power of GitOps, MongoDB Atlas en Kubernetes (Dutch)

k8spodcast.nl - Aflevering 65

A deep dive into using GitOps to drive the full lifecycle of MongoDB Atlas instances from Kubernetes: creation and deletion. We explored why this pattern is surprisingly powerful and how I managed to accidentally throw away a production database.

Training

I teach Kubernetes professionally through ICT Improve.

I teach these courses:

What I’m Working On

Apart from my consultancy/trainer work, I’ve also been working on Reverse GitOps: an idea that actors deserve an API to indicate their intent, while Git remains the source of record. There’s a write-up at reversegitops.dev and an open-source prototype at ConfigButler/gitops-reverser.