Project showcase
Upstream open source 2020 to present Maintained upstream
Contributed · Substantial contributor
Version Checker
I contributed extensively to Jetstack's Kubernetes controller for tracking the container image versions used by workloads.
Checking a tag sounds simple until private registries, authentication, pagination and inconsistent version formats get involved. Much of my work was in those less tidy parts of the problem.
The result was broader registry support and better test coverage around behaviour that had previously been easy to break or difficult to reproduce.
Work included
- Registry clients for Docker Hub, GHCR, GCR, ECR, ACR and self-hosted registries
- SemVer handling, caching and error paths
- Controller and client tests based on real registry behaviour
- Go
- Kubernetes
- Container registries
- AWS
- Azure
- GCP
Internal platform 2021 to 2025 Delivered
Led · Architect and hands-on builder
Ephemeral Training Platform
I designed and built Kubernetes-based environments for repeatable technical workshops delivered to internal teams and customers.
Preparing shared workshop environments repeatedly was slow, and small differences between deliveries caused avoidable problems for instructors and attendees. We moved that setup into a reusable platform that could be provisioned and reset consistently.
Work included
- Kubernetes environments with RBAC-based attendee access and isolation
- Automated preparation, reset and recurring delivery tasks
- Kubernetes
- Go
- Argo Workflows
- RBAC
- GitOps
Developer platform 2014 to 2017 Delivered
Built · Software engineer and platform contributor
WH Cloud
WH Cloud was an internal platform built on existing on-premises and VMware infrastructure.
Provisioning an environment crossed development, infrastructure, networking, security and approval teams. A typical request took between three and six weeks.
I built software and integrations around the platform, including work on network and security workflows. For important applications, delivery and scaling came down to roughly one or two hours.
Work included
- Containerised infrastructure using Mesos and Marathon
- Software to make firewall and approval workflows visible and repeatable
- Proofs of concept across Kubernetes, Docker Swarm and public cloud platforms
- Ruby
- VMware vSphere
- Mesos
- Marathon
- Docker
- Kubernetes
Open source 2024 to present Active
Created · Creator and maintainer
Kubernetes SSH Router
A small Go service that maps SSH users to controlled Kubernetes exec sessions without distributing kubeconfig files.
I built it to explore a Kubernetes-native alternative to another static bastion configuration. User definitions live in Secrets and routing changes are picked up by resource watchers.
It includes Prometheus metrics, horizontally scalable deployment support and unit-testable packages. It remains an active engineering project rather than a finished product.
Work included
- Kubernetes exec routing with client-go
- Secret-backed users
- Resource watchers and Prometheus metrics
- Scaling support and unit tests
- Go
- client-go
- Kubernetes
- SSH
- Prometheus
Open source testing Current Active
Created · Creator and maintainer
Terratest Utils
Go helpers for Terratest-style E2E tests of Kubernetes custom resources and operators.
The harness covers the repeated parts of operator testing, especially setup and assertions around resources managed by Argo CD, Rollouts, Workflows, cert-manager, Flux and External Secrets.
Work included
- Reusable Go packages for Kubernetes E2E test suites
- Helpers for custom resources and operator behaviour
- Test coverage aimed at real cluster interactions
- Go
- Kubernetes
- Terratest
- Argo CD
- cert-manager
- Flux
Open source tooling Current Active
Created · Creator and maintainer
Komodor Klaudia Sync
A Go-based sync tool that sends local Klaudia documentation into Komodor from GitHub Actions or another CI job.
I built it so Klaudia.md files can live with the code they document, while a containerised sync step keeps Komodor updated with create, update and delete behaviour.
Work included
- GitHub Action and Docker image for CI-based sync
- CRUD sync between local documentation and Komodor
- Example repository for wiring it into a workflow
- Go
- Docker
- GitHub Actions
- Komodor
- Klaudia
Open source tooling Current Active
Created · Creator and maintainer
Komodor Security Reporter
A Go service that connects running Kubernetes workloads, scanner findings from Trivy, Snyk or Wiz, and Komodor.
The aim is low-noise reporting: match scanner output to workloads and send the useful parts into Komodor without turning every scan into more manual triage.
Work included
- Kubernetes workload discovery
- Security scanner report ingestion
- Komodor reporting from matched findings
- Go
- Kubernetes
- Trivy
- Snyk
- Wiz
- Komodor
Personal tooling Current Active
Created · Creator and maintainer
Zwift iCal
A Go service that publishes upcoming Zwift events as iCal feeds for calendar apps.
It turns Zwift events into subscribable feeds for Google Calendar, Apple Calendar, Outlook and other clients that understand .ics files.
Work included
- Zwift event collection
- Auto-updating iCal feed generation
- Containerised deployment
- Go
- Docker
- iCalendar
- Zwift
- Prometheus
Kubernetes operations Current Active
Created · Creator and maintainer
Stuck Pod Reaper
A Kubernetes cleanup tool for Pending pods stuck in ContainerCreating or PodInitializing beyond a chosen threshold.
It can run in dry-run mode, scan one namespace or all namespaces, and only targets pods with owners so controllers can recreate them.
Work included
- Pending pod detection through client-go
- Namespace-scoped or cluster-wide scans
- Dry-run and delete modes for safer rollout
- Go
- Kubernetes
- client-go
- Docker
Kubernetes operations Current Active
Created · Creator and maintainer
System Upgrade OS Patch
A small image for Rancher System Upgrade Controller that gives weekly node patch jobs a changing version endpoint.
The controller can use the generated year, month and week value to trigger regular node upgrades, keeping operating system patches on a predictable cadence.
Work included
- Weekly version endpoint for upgrade plans
- Container image for scheduled OS patch workflows
- Integration point for Rancher System Upgrade Controller
- Go
- Docker
- Kubernetes
- Rancher
Homelab tooling Current Active
Created · Creator and maintainer
UniFi Cert Updater
A Kubernetes-aware updater that reads a TLS secret and deploys that certificate to a UniFi gateway or controller.
I use it for a Let's Encrypt wildcard certificate from my k8s/k3s cluster and a UniFi Dream Machine Pro. It checks fingerprints, activates the new certificate and trims older certificates.
Work included
- TLS material loading from Kubernetes Secrets
- UniFi certificate upload and activation
- Old certificate cleanup with a configurable limit
- Go
- Kubernetes
- UniFi
- Let's Encrypt
- Docker
Homelab observability Current Active
Created · Creator and maintainer
VM Hub 5 Exporter
A Prometheus exporter for Virgin Media Hub 5 router metrics.
It polls the Hub 5 local API and exposes provisioning and PON status metrics, with a Grafana dashboard kept alongside the container build.
Work included
- Prometheus metrics endpoint
- Hub 5 provisioning and PON status polling
- Grafana dashboard and container image
- Go
- Prometheus
- Grafana
- Docker
- Virgin Media Hub 5
Platform engineering 2017 to 2019 Delivered
Contributed · Infrastructure platform engineer
On-premises Kubernetes Platform
Platform engineering for Kubernetes clusters running across private infrastructure and AWS.
The private clusters needed some of the lifecycle behaviour people expect from public cloud, but had to work with physical failure domains and the organisation's existing provisioning systems. I worked on that gap through availability zones, a custom cloud controller and maintenance automation.
Work included
- Availability-zone support and a custom cloud controller for node provisioning
- Automated patching, health checks, reporting and infrastructure deployment
- Go
- Kubernetes
- Terraform
- Prometheus
- On-premises infrastructure