Platform engineer in Amsterdam. Posts about running Kubernetes fleets, GitOps, observability and the numbers behind them. Measured, attributed, with the cost stated next to the win.
The hard part of an SLO is deciding what does not count
The query behind an availability SLO is a one-liner. The decisions about what to leave out of it are the design, and the denominator I chose let a dead service drop out of the number instead of hurting it.
The economics that make cryptojacking work
A miner that schedules itself onto any GPU node is a workload like any other, and its economics come down to one subtraction. Drive the cost term to zero and the answer is always yes, which is the whole reason cryptojacking exists. A qualitative argument: the original never recorded the figures.
Mining ETH in a homelab, and the day it stopped being about mining
The goal was to make idle hardware pay the electricity bill. The route ran through IOMMU passthrough into a Windows VM, then out again into containers, and what survived the mining was the scheduling pattern underneath it. I never measured whether it paid.
Five dollars a month instead of an open port
The honest reason the homelab exists. Port forwarding accumulates: one internet-reachable service per forward, several of them on hardware nobody will patch. A 5 USD virtual server does not make the listener disappear - it moves it somewhere you control.
Merklision: composing two Merkle bugs into 2048 collisions
The challenge wanted 2020 distinct strings colliding on one Merkle root. A second-preimage attack gives about ten. An odd-length duplication bug gives about a thousand. Alternating the two gives one answer per length up to 2048. My 2020 solver reported 2047, and the one it missed took five years to notice.