Platform & Cluster Engineering
I’ve stood up clusters everywhere from bare metal to managed cloud: Talos Linux, Red Hat
OpenShift, AWS EKS, Azure AKS, and k3d/k3s locally. My default layer cake is Cilium for CNI,
Rook Ceph for storage classes, cert-manager for certificates, and PTP where clocks have to agree.
My test: if I can’t rebuild the whole cluster from the repo, it isn’t finished.
GitOps Delivery with Flux
I treat Git as the only interface to the cluster. Flux’s source, kustomize, helm, and
image-automation controllers do the applying: new images get noticed in ECR/ACR, tags get committed
back to the repo, and drift heals itself on the next reconcile. I stopped letting
kubectl apply from a laptop touch anything long ago — and I’ve never missed it.
CI/CD & Environment Promotion
My pipelines build, test, and package OCI images — then they stop. Promotion through dev →
staging → production is a Git merge against branch-mapped Kustomize overlays, not a deploy script.
That’s why I rarely hear “but it works in dev” anymore: prod is rendered from the
identical declarative source.
Observability & Day-2 Ops
I wire Grafana, Prometheus, and Loki/Alloy into every pod before the first real workload lands,
because I’ve debugged blind once and won’t do it again. I write the NATS and Postgres
runbooks myself, run the failover drills, and hunt down the OOM kills and log-shipping bugs in
rehearsal — not while the system is live.
Stateful Workloads & Data
I run the stateful pieces most teams keep off-cluster: high-availability PostgreSQL, NATS JetStream
on persistent volumes, Valkey, with Rook Ceph underneath as a real storage class. Everything is
Helm-packaged, Flux-deployed, and failover-tested, and Flyway migrates schemas automatically on
push — so the database is versioned exactly like the code.
Autoscaling & Distributed Compute
I scale on events, not guesses. KEDA watches queue depth and takes workers from zero to hundreds
of pods when a billion-calculation job lands; Ray fans the ML work out across the cluster; replica
strategies keep the always-on services highly available. When the queue drains, it all folds back
to zero.