Training
I teach two live online courses. Both run over two weeks in four sessions, with at most ten people per cohort, a self-paced checklist before the first session and a chat channel for the fortnight. Each session ends with something you built and a check that proved it works. The language of a cohort is German or English; the materials are English.
There is no date on this page. A cohort is announced to the people who asked for it, once the public artefacts it rests on are released and a dry run has passed. To be told first, write to me with the course you mean and one line about what you run today.
Your own managed Kubernetes on Hetzner
Section titled “Your own managed Kubernetes on Hetzner”On AWS you click “create cluster” and somebody else runs the control plane for you, for a fee, for ever. In this course you build that for yourself, on Hetzner, with Gardener, the open-source project SAP runs its clusters on. In session two you type one command into your own Hetzner project and about 40 minutes later you have a landscape that hands out clusters. Then you create one, upgrade it, back it up, hibernate it, delete it and make another.
Who it is for
Section titled “Who it is for”Hetzner customers who run, or will run, more than one Kubernetes cluster, for more than one team or customer, and want a control plane they own. Agencies and small hosters with one stack per customer. Platform teams of two to five people who hand environments to developers. People who run k3s by hand for several teams and know where it hurts: untested etcd backups, expiring certificates, upgrades that need a weekend. Research groups with a queue of people who want a cluster for a month. Anyone with a Hetzner dedicated server who wants it to create clusters instead of being one more server to look after.
Who it is not for
Section titled “Who it is not for”One application on one server. If Docker Compose or a single k3s is the right answer for you, this course will say so in session one, and this page says so before you pay. Gardener has a floor: its own monitoring alone needs about 8 GiB, so the smallest landscape is a 32 GB server at about €130 net a month at Hetzner’s list price, or a 64 GB dedicated box from the Serverbörse at about half that. Nobody should pay that for one application. The course is also not a Kubernetes basics course and not an exam course: having used kubectl against any cluster is a prerequisite, not content.
What you bring
Section titled “What you bring”- A Hetzner Cloud project with a read/write API token.
- A domain, about €10 a year, with its zone in Hetzner DNS.
- A laptop with macOS, Linux or WSL2.
- Having used
kubectlagainst any cluster before.
You pay Hetzner for the landscape yourself, on your own account. A 32 GB cloud server bills about €0.21 an hour, so the fortnight costs between €50 and €150, or nothing if you tear the landscape down after each session and rebuild it in 40 minutes before the next.
Curriculum
Section titled “Curriculum”| Format | Content | |
|---|---|---|
| Week 0 | self-paced, about 1 h | Install the CLI, run its preflight against your project, post the output. Read one real drill record and answer three questions about it. |
| Session 1 | mostly demo | What Kubernetes gives you and what it costs. What Gardener adds: a control plane for clusters. The floor, in numbers, and when Compose is the right answer. |
| Session 2 | hands-on | Your own Gardener. paasbox garden up in your project. What appeared in your project and why. The last hour: paasbox garden shoot create, a Kubernetes cluster from a control plane you stood up 90 minutes earlier. |
| Session 3 | hands-on | Day two. Upgrade the cluster in its maintenance window. Back it up and restore it. Hibernate it and wake it. Delete it and make another, in one command each. The day-two runbook: status, restore, upgrade, teardown. |
| Session 4 | talk, one demo, Q&A | What it costs on a cloud server against a dedicated box. What it takes to run. What is not built yet. When not to do this at all. |
What you leave with
Section titled “What you leave with”A running Gardener landscape in your project, or a torn-down one if you prefer. The CLI and a values file that recreates it. A GitOps repository for it. A cluster you created, upgraded, hibernated, restored and deleted from your own control plane. The day-two runbook. A cost sheet for cloud against dedicated. A clear answer to whether you should run this at all.
€890 net per seat, €1,059 including 19 % VAT. The first cohort runs as a paid beta at €690 net.
Agentic DevOps
Section titled “Agentic DevOps”This project is built by one person with coding agents, and most of it was never read line by line by a human. The question is how that can be trusted, and the answer is not “the spec” and not “Kubernetes”. It is four artefacts, produced in a fixed order, with a rule about what each may claim:
| Artefact | What it is | What a non-reader can check |
|---|---|---|
| The spec | a numbered design document with dated decisions | that the decisions were made before the code, and by whom |
| The fake | a stateful fake of the whole substrate that the real code runs against, with one executable invariant per lesson, each written as a sentence that names the incident behind it | the invariant messages, an hour’s reading instead of thousands of lines of code |
| The drill | a paid run on real hardware that can prove the fake wrong | that it was run, when, at what cost, and what it disproved |
| The record | one report per paid run: what was measured, what broke, what the code did not encode before | the list of defects and the commits that closed each one |
The lesson of every record is written back into the fake. The fake runs on every push and costs nothing. The drill runs when a human decides to spend money, and it is the only step where reality gets to disagree. In this course you build each of the four for your own project.
Who it is for
Section titled “Who it is for”Engineers and engineering leads who already own infrastructure, have started using coding agents on it, and are being asked whether what the agent built can be trusted. You have a CI system, a cloud account, something declarative such as Kubernetes, Flux, Terraform or Ansible, and at least one incident behind you.
Who it is not for
Section titled “Who it is not for”Beginners in Kubernetes or in agents; both are prerequisites. Teams without a disposable cloud project, because half of the method needs one. Anyone who wants a certificate.
What you bring
Section titled “What you bring”- Experience running
kubectland a CI pipeline. - A coding-agent subscription that runs in a terminal, such as Claude Code.
- Enough Python to read a test; the fake is Python.
- A fresh cloud project with nothing else in it. Hetzner is recommended; a small server bills cents per hour, and the fortnight costs about €5 to €15.
- macOS, Linux or WSL2.
Curriculum
Section titled “Curriculum”Every session ends in something you built and a gate that proved it. You work in your own fork of a small kit built for the course: a bootstrap of a few hundred lines with five stages, a fake with a dozen invariants and one deliberate blind spot, a render gate, a CI file, a tripwire, one drill script and one record template.
| Content | You leave the session with | |
|---|---|---|
| Week 0 | Fork the kit, run the fake, read one real drill record, create the disposable project, run the preflight against it. | A green fake and a project the tripwire lesson can be taught on. |
| Session 1 | The loop and the fake. Build the fake’s state model for the kit’s five stages, with the agent driving and you specifying. Encode three invariants from a seeded incident list. | A fake that fails on real sequencing bugs and passes on the fix. |
| Session 2 | Gates that cost nothing. A render gate that refuses an undefined variable, an unsubstituted placeholder and a non-string secret. Three negative tests in CI, each seen red first, then green. A tripwire tested against a real wrong token. | A CI that proves three refusals fire. |
| Session 3 | The drill and the record. Write the drill plan and its expected cost. Run it, fake first, then paid, on your disposable project; the blind spot fires. Write the record, commit one fix per root cause, and write the blind spot back into the fake. | A paid drill you ran, its record, and a clean project. |
| Session 4 | Agents in the loop. An instruction file for your own project that a fresh agent session obeys, including the tripwires by name. One event-triggered routine wired into your own CI. A definition-of-done table for your change classes. | An agent contract, one working trigger, a definition of done. |
The last half hour is the argument against the whole method, made by you against me, and the honest answer to it.
€1,290 net per seat, €1,535 including VAT. The first cohort runs as a paid beta at €990 net.
Team edition: the same four sessions compressed into two days, private, for four to eight people, with sessions three and four run on your own repository and your own incident list. €8,900 net, plus a half-day preparation call.
How the two relate
Section titled “How the two relate”The first course teaches a product: a Gardener landscape on Hetzner. The second teaches a method, and uses this project’s repositories as the specimen. Someone who kept their landscape from the first course and now wants to evolve it with agents is a natural participant in the second.
Asking for a seat
Section titled “Asking for a seat”Write to me with the course, whether you would prefer German or English, and which describes you best: agency, platform team, k3s by hand, or curious. You will hear from me when a cohort is confirmed, and not before.