Engineering in practice

DevOps

From infrastructure to incident response.
Built, operated and improved in production.

Make the problem visible.

Monitoring is useful when it helps someone understand what broke and what to do next.

15+production & security incidents led
  1. 01CollectZabbix · Prometheus
  2. 02UnderstandGrafana · Graylog
  3. 03RespondInvestigation · recovery
  4. 04ImproveWritten incident reports

Selected production work

The challenge

A mixed cloud estate needs a consistent operational picture, especially during an incident.

ZabbixPrometheusGrafanaGraylog

What I delivered

Rebuilt monitoring at UNEP-WCMC, replacing Nagios with Zabbix alongside Prometheus, Grafana and Graylog. Led responses to production and security incidents, including a botnet attack.

Introduced written incident reports so the team could learn from each response.

Build it once. Make it repeatable.

Infrastructure defined in code, secrets managed centrally, and environments the team can reproduce.

Almost 60cloud hosts across AWS, Azure & Linode
  1. 01DefineTerraform · Bicep
  2. 02ConfigureAnsible · AWX
  3. 03ProtectVault-backed secrets
  4. 04OperateInventory · scheduled runs

Selected production work

The challenge

An inherited estate had inconsistent configuration and servers missing from the inventory.

TerraformBicepAnsibleAWXVaultProxmox

What I delivered

Introduced fleet-wide Ansible with AWX on Linode LKE and Vault-backed secrets. Rebuilt UN Biodiversity Lab on Azure with Terraform and Bicep, including staging, production, backup and restore.

The first complete inventory uncovered untracked servers. A separate Species+ stack was provisioned alongside live production without downtime.

Give every team a reliable release path.

Reusable delivery workflows that reduce repeated setup and make production deployments easier to maintain.

8+production projects using shared workflows
  1. 01CommitGitHub
  2. 02RunKubernetes runners
  3. 03DeployKamal 2
  4. 04ReuseShared workflow library

Selected production work

The challenge

Multiple production projects needed a common deployment approach and resilient runner infrastructure.

GitHub ActionsKubernetesKamal 2DockerGitLab CI

What I delivered

Wrote the organisation-wide GitHub Actions library for Kamal 2 deployments, hardened against CI injection. Built custom Ruby and Kamal images for two redundant sets of four self-hosted runners on Kubernetes.

A shared deployment library used by 8+ production projects, alongside a one-command developer setup.

Make access deliberate and auditable.

Identity, secrets and isolation built into the way infrastructure is operated.

5 accountscovered by my read-only AWS audit tool
  1. 01IdentifyActive Directory
  2. 02ConnectTeleport · NetBird
  3. 03IsolateVPC boundaries
  4. 04AuditAccess · data disposal

Selected production work

The challenge

Engineers need practical access to systems while sensitive data and credentials remain controlled.

TeleportNetBirdVaultAWS IAMActive Directory

What I delivered

Introduced auditable zero-trust access with Teleport and NetBird. Built isolated AWS environments at Agile Analog and led a UK-GDPR disposal audit of a legacy account holding approximately 444 TB.

Read-only audit tooling across five AWS accounts, plus self-service Proxmox VMs using Active Directory sign-in.

Give agents tools. Keep people in control.

Production operations experience applied to AI: private inference, useful tools and explicit approval.

82 toolsexposed through OpenUniverse’s MCP server
  1. 01InvestigateIncident · ticket
  2. 02DecideAllow · ask · deny
  3. 03ApproveHuman review in Slack
  4. 04Act & recordInfrastructure tools · audit log

OpenUniverse · Personal project

The challenge

An agent needs enough access to investigate a real incident, with clear limits on the actions it can take.

GoMCPSelf-hosted LLMsllama.cppRAG

What I delivered

Built OpenUniverse with provider-agnostic agents, SSH, Ansible and OpenTofu tools, logged calls and secret redaction. Deployed it at UNEP-WCMC with permission, using self-hosted models.

Human-in-the-loop operational workflows, backed by 1,000+ automated tests. Also built an on-premises inference platform and a RAG prototype over UNBL’s catalogue.

On your team

Build the platform. Support the people.

The work extends beyond infrastructure: helping colleagues get started, taking responsibility for change and giving teams tools they can use independently.

Help engineers grow.

Mentored a junior engineer, created the team’s hiring test and onboarded a new colleague at UNEP-WCMC. Previously line-managed the Platform team at Agile Analog.

Mentoring · Hiring · Team leadership

Own the difficult transitions.

Ran the estate between hires, kept public URLs working through a major GIS re-platform, and upgraded Proxmox and GitLab across major versions without data loss.

Continuity · Migrations · Operational ownership

Make other teams more effective.

Built a one-command developer setup, shared deployment workflows used by 8+ production projects, and self-service virtual machines with Active Directory sign-in.

Developer experience · Reusable tools · Self-service

What does your team need next?

A more reliable platform, a better developer experience, or a practical route into AI operations—these are the problems I work on.

Tell me about your team

Ely, Cambridgeshire · UK Indefinite Leave to Remain · No sponsorship required