- 🇬🇷 Greek, based in the Netherlands 🇳🇱
- ☸️ Principal DevOps Engineer, taming Kubernetes for a living
- 🔐 Security & Compliance Engineering — ISO 27001 and SOC 2
- 👧 Dad of 2 wonderful girls
- 🐾 Hooman of 2 dogs and a cat — Loki, Liza and Mozzarella 🐱
- 💬 Ask me about Kubernetes/Helm, ArgoCD, Crossplane/Terraform, Docker, CI/CD, PHP/Laravel & Go
- 🤖 Lately building AI agent tooling — plan canvases, routers and other coding-agent plumbing
- 📫 Reach me on Twitter or Medium
| Project | Description |
|---|---|
| valsenv | CLI that resolves ref+ secret references in dotenv files via helmfile/vals |
| evicted-pod-reaper | Kubernetes operator that deletes evicted pods after a configurable TTL |
| action-assign-milestone | GitHub Action to assign a milestone to pull requests |
| action-s3-upload-artifact | GitHub Action to upload a build artifact to an S3 bucket |
| go-python-runner | Runs Python code inside a virtual environment, from Go |
| dotbot-krew | Dotbot plugin adding a krewfile directive to install kubectl krew plugins |
| omniroute-tray | macOS menu-bar app supervising the OmniRoute AI router |
| opencode-plan-canvas | Live HTML canvas for opencode plans, with a plugin that auto-renders as Prometheus plans and Atlas executes |
| .dotfiles | My dotfiles, managed with dotbot |
AMKA validator — the same Greek social security number validator, written five times over: Rust · Go · Python · Kotlin · Nim






