Skip to content
Open to DevOps / platform / SRE roles

Darren Maverick

DevOps Engineer · CKA Certified

I automate infrastructure, and I like knowing exactly what's happening underneath it.

I'm a DevOps engineer. Most of my day is CI/CD, infrastructure-as-code, and observability: the plumbing that lets a team deploy without holding their breath. What I actually enjoy is the layer below the tools: what happens after `kubectl apply`, why a node went NotReady, where a request goes after it leaves the load balancer. I find systems a lot easier to run once I understand them down to that level, so that's where I tend to spend my time.

Darren Maverick, head and shoulders, in a dark suit and navy tie.
Track record

Business impact

Money saved, apps moved, people taught — the six results I can put a number against. Hover, drag or arrow-key a statue to read its plaque.

Drag to spin · ◀ ▶ to step through

Statue I

The Cost Saver

Cut a service's recurring AWS bill from ~$200/mo to $3/mo by tracing the cost to needless payload transfers and redesigning the integration.

Statue II

Keeper of the Helm

Certified Kubernetes Administrator (CKA), The Linux Foundation / CNCF — issued June 2025, valid to June 2027.

Statue III

The Migrator

Migrated 50+ internal apps from Docker Compose to production Kubernetes, with GitOps delivery behind it.

Statue IV

The Coin Warden

Built an in-house XenAPI backup tool that replaced a paid product, saving $1,000+ a year in license fees.

Statue V

The Mentor

Taught Linux administration, networking, big data and deep learning to 1,200+ students as a university laboratory assistant.

Statue VI

The Architect

Built reproducible Kubernetes-on-libvirt infrastructure from code — Terraform, Ansible and Kube-VIP, hypervisor layer included — and published both the write-up and the source.

Terraform + Ansible source for The Architect

The same six statues, in a dungeon you can walk around.

Credentials

Certifications

Kubernetes, Terraform and AWS. The certificate and credential ID are on each card, so you can check them at the source.

Experience

Where I've worked

What I did in each role, and what changed because of it. Hover or tap a scroll to unroll it.

I'm based in the Indonesia office on a hybrid setup, working with a local team under an Austrian manager, on platform work for products that mostly serve Europe. I own that platform layer (provisioning, CI/CD, and observability), so the product teams can deploy on their own instead of routing every release through me.

  • Technical owner of the monitoring platform for Wero, a European product: designed the monitoring architecture, rules engine, customer-side agents, and alert routing.
  • Cut a service's recurring AWS bill from ~$200/mo to $3/mo after tracing the cost to needless payload transfers and redesigning the integration.
  • Migrated application file storage to S3, with a structured object hierarchy and IAM role-based presigned-URL access to tighten who can read what.
  • Built the observability stack (Grafana, Prometheus, Loki, Alloy, Healthchecks.io) with zero-touch onboarding: a new service is scraped, logged, and on a dashboard without anyone wiring it up by hand.
  • Standardized delivery with Gitea Actions pipelines, PR validation, conventional commits, and semantic versioning, plus IaC in Terraform and Ansible.
Operational impact
$200→$3
monthly AWS cost
recurring spend, cut ~98%
Inventory
Pick an item to see what I did with it.
Promotion pipeline
ValidatePR · lint
Buildsemver tag
Testgates
StagingGitOps sync
Productionpromoted

Moved the internal apps off Docker Compose onto a production Kubernetes setup with GitOps delivery, sitting behind an API gateway with proper auth in front of it.

  • Migrated 50+ internal apps from Docker Compose to production Kubernetes and built the GitOps delivery workflow behind it.
  • Deployed APIMAN API Gateway secured via Keycloak IAM and LDAP, with Traefik as reverse proxy managing ingress and traffic routing.
  • Built a React-based backup system on XenAPI, replacing XCP-ng Pro and saving $1,000+ in annual license fees.
  • Migrated 10+ VMs from VMware to XCP-ng, including HA setup, recovery testing, and first-layer troubleshooting.
Operational impact
50+
apps migrated
Docker Compose to Kubernetes
10+
VMs migrated
VMware to XCP-ng with HA
$1,000+
license savings
XenAPI backup tooling
Inventory
Pick an item to see what I did with it.
Compose
50+ apps
GitOps
Kubernetes

Taught Linux, networking, and the systems basics the rest of my work builds on to a bit over a thousand students, and kept the lab machines running while I was at it.

  • Delivered hands-on instruction to 1,200+ students across Linux Administration, Networking, Big Data, and Deep Learning.
  • Designed troubleshooting-focused case studies and maintained lab VM environments (Docker, Ansible, Proxmox, Cisco).
  • Completed infrastructure projects spanning network automation, full-stack development, and applied computing.
Operational impact
1,200+
students taught
across 4 technical tracks
4
course tracks
Linux · Net · Big Data · DL
Inventory
Pick an item to see what I did with it.
Featured project

Reproducible Libvirt Infrastructure for Kubernetes

A whole Kubernetes cluster built from code, hypervisor and all, so I can tear it down and get the exact same one back.

Reproducible Libvirt Infrastructure for Kubernetes Clusters

Going from a bare hypervisor to an HA Kubernetes control plane entirely from code. No clicking through UIs, no nodes I configured once and could never reproduce.

Problem

Every time I wanted a Kubernetes cluster to test something, I'd end up clicking through the hypervisor UI, wiring up networks and storage by hand, and bootstrapping nodes one at a time. It worked, but no two clusters were ever quite the same, and with a single control-plane node, one bad reboot could take the whole thing down. I wanted a cluster I could destroy and rebuild from code and get the exact same thing back.

Outcomes
  • One command brings up the networking, storage, and a bootstrapped cluster, then tears it all down and rebuilds it the same way the next time.
  • Kube-VIP gives the control plane a virtual IP with automatic failover, so losing a node doesn't take the API down with it.
  • I wrote the whole thing up end to end, so next time I (or anyone reading along) can follow the same path instead of rediscovering it.
Lessons learned
  • The cluster isn't really reproducible until the hypervisor layer is code too, not just Kubernetes on top of it.
  • Control-plane HA is cheap to add up front with Kube-VIP and a pain to retrofit later.
  • Writing the docs while building, instead of after, is the only way they end up matching what the code actually does.
Architecture
Provision → Configure → Orchestrate → Stabilize
TerraformProvision

Declares libvirt domains, networks & storage pools

AnsibleConfigure

Bootstraps OS, container runtime & kubeadm

Libvirt NodesCompute

Reproducible VMs from a single golden image

Kubernetes ClusterOrchestrate

kubeadm-joined control plane + workers

Kube-VIP HA Control PlaneStabilize

Virtual IP with load-balanced failover

Technologies
Provisioning
Terraformlibvirt providercloud-init
Configuration
Ansiblekubeadm
Platform
KubernetesKube-VIPcontainerd
Networking & Storage
Bridged networksStorage poolsVirtual IP
Armory

The things I built before I ran things

Coursework and side projects, older than everything above. I was writing software before I was running it, and this is the software.

The TraveloHI hotel page for Grand Asrilia Hotel Convention & Restaurant: a 9.2 score over a photo of the pool and building, a grid of room photos beside it, and a Select Room button under the nightly price.

TraveloHI

Web

A Traveloka clone: fuzzy search across flights and hotels, bookings, transaction history, and then a WebSocket multiplayer layer and an image-location classifier I added because I wanted to know whether I could.

  • React
  • Go
  • Flask
  • PostgreSQL
Source
The Adventures of TPA title screen: three low-poly characters on a green hill — a dog knight, a human knight with sword and shield, and a purple wizard — with Play Game, Settings and Exit listed beside them.

The Adventures of TPA

Game

An arena RPG where three characters defend a crystal from golems. You control one and swap between them mid-fight; the two you are not driving run A* to intercept whatever is closing in. Each map is generated from Prim's algorithm crossed with binary space partitioning, so the obstacles land somewhere different every run.

  • Unity
Source
The Recall app banner: a purple origami bird folded out of flat triangles, next to the words Review, Respond, Recall.

Recall

Mobile

A flashcard app built around SM-2. Every review session gets summarised and handed back to the algorithm, which reshuffles the deck for the next pass instead of showing you the same cards in the same order forever. Decks are shared, so you can search and study someone else's.

  • Kotlin
  • Spring
  • Firebase
Source
A YouTube Studio analytics page: 74.4K views and 462 watch hours over a 28-day window, 327 subscribers, a daily views graph, and a top-content list of Valorant clips.

VCTClipper

CLI

An automated clipping server I wrote because I got deep into the Valorant Champions Tour. It pulls highlights out of the live streams while they are still running, funnels them through the file system to a pool of worker nodes, and cuts them into something short-form that YouTube will take. The worker pool is switched off these days.

  • Flask
Source
The LinKasa admin screen: a sidebar listing Airplanes, Passenger and Notes beside a table of aircraft, each row carrying a registration code, an airline, a manufacturer and an Unused status.

LinKasa

Desktop

An airline operations desktop app covering planes, flights, logistics, finance and HR. Twenty-two roles is where the work actually was: every screen has to know who is looking at it before it decides what they are allowed to do to the record.

  • Electron
  • Firebase
Source
The SuaraBersih home page: the heading Search and Discover Threads about Corruption over a search box, with four thread cards below showing upvote, downvote and comment counts.

SuaraBersih

Web

A forum for corruption cases: anyone can open a thread and the votes decide what rises. Behind it sits a Black Box that keeps those records immutable, so what gets posted stays on the record.

  • Next.js
  • Flask
  • Firebase
Source
Toolkit

Skills & technologies

The tools I reach for to provision, ship, monitor and secure things.

Cloud & Infrastructure

Provisioning and codifying cloud and on-prem estates.

AWSEC2 · EKS · S3 · IAM · VPCTerraformAnsible

Containers & Orchestration

Running workloads reliably at scale.

KubernetesCKADockerKube-VIP

CI/CD & GitOps

Automated, auditable paths to production.

Gitea ActionsGitHub ActionsArgoCD

Observability

Metrics, logs, and uptime in one place.

GrafanaPrometheusLokiAlloyHealthchecks.io

Networking & Security

Ingress, identity, and access control.

KeycloakIAMLDAPNginxTraefik

Programming

Automation, tooling, and services.

GoPythonBashTypeScriptJava
Platforms
Linux (Admin)
XCP-ng
Proxmox
VMware
Git
Open to DevOps / platform / SRE roles

Want to talk infrastructure?

A platform to stand up, a pipeline to fix, monitoring to wire in, or just a problem you're stuck on. I'm happy to dig into it. Easiest to reach me by email.

Tangerang, Indonesia · darrenmaverickz@gmail.com