-
๐ญ Iโm a Platform Engineer focused on building and managing CI/CD pipelines, internal tooling, and scalable infrastructure. Day to day that means everything from writing automation to bench-testing hardware and making sure software gets from dev to production reliably. Currently that includes ROS 2 (Jazzy) pipeline infrastructure in the subsea/marine robotics space โ Debian packaging with bloom and debhelper, Aptly-managed package repositories with GPG signing and environment promotion, and Fast-DDS discovery server configuration for distributed development teams.
-
๐ง I work across the full stack of infrastructure โ containers, virtualisation (ESXi, Proxmox, vSphere), IaC (Ansible, Terraform, Packer), and GitOps โ with a strong lean towards automating anything that shouldnโt be done by hand. Prior to my current role I was a Linux Sysadmin, so Iโm just as comfortable racking servers and hardening systems as I am writing pipelines.
-
๐ฅ I collaborate closely with software and engineering teams, and have worked across vendors, procurement, and SoC teams to keep projects moving. Happy switching between writing technical docs on Confluence, reviewing pipelines, or configuring switches and firewalls depending on what the day calls for. I also integrate AI tooling (Claude, GitLab Duo, Microsoft Copilot) into engineering workflows โ pipeline automation, code review assistance, documentation, changelog generation, and infrastructure work. A force multiplier, not a substitute for understanding what's actually going on.
-
๐ I've worked my way up through infrastructure roles across high-stakes sectors like defence, energy, transport, and telecoms โ picking up everything from large-scale VDI environments to Linux systems engineering along the way. I'm also a fluent Brazilian Portuguese speaker, which has come in handy supporting global and multilingual teams throughout.
-
โก Outside of work I run a two-node Proxmox cluster (Samwise + Frodo) with 20+ VMs and LXC containers, ZFS storage, a dedicated Proxmox Backup Server, and a self-hosted GitHub Actions runner that ties it all into real CI/CD pipelines. IaC VMs for Packer, Ansible, and Terraform are spun up on demand from cloud-init templates I build and maintain myself. Ansible is my go-to for automating it all โ I've also picked up both the Ansible Essential and Advanced Playbooks certifications to back that up.
-
๐ง For nearly a decade I helped organise World Zombie Day โ a global charity event that raised money for food banks through city-wide zombie walks. Coordinating sponsors, volunteers, routes, and day-of logistics across London, UK was genuinely great experience, and a lot of fun.
-
๐งโ๐คโ๐ง I'm active in the open source community โ opening PRs, contributing commits, reviewing code, and raising issues and bug reports across projects I use and care about. Not just a consumer.
-
โ๏ธ I write up what I learn over on OmegaWiki โ mostly Linux, Docker, and homelab guides.
|
Operating Systems Shell Editors |
Containers & CI/CD Robotics Virtualisation Source Control |
Hardware & Other Enterprise Systems Project Management AI Tooling |
| Project | Description | Stars |
|---|---|---|
| public_scripts | A collection of practical scripts covering Proxmox automation, Docker management, server administration, and media processing โ built for real use and shared publicly with sensitive values scrubbed | |
| docker-borgmatic (co-maintainer) | Multiarch Docker container packaging Borg, Borgmatic, and Apprise for automated backup orchestration with container stop/start hook support โ part of the official borgmatic-collective. 7.2M+ pulls on Docker Hub | |
| docker-borgmatic (personal fork) | Self-maintained fork of the above with custom builds and personal modifications running on S6 Overlay, supporting amd64 and arm64 |
|
| cibuildwheel | CI pipeline that builds Python wheels for packages missing from PyPI, used to supply dependencies for the docker-borgmatic image โ packages published to Cloudsmith |
๐ฑ My GitHub Data
๐ฆ 4.8 MB Used in GitHub's Storage
๐ 83 Contributions in the Year 2026
๐ซ Not Opted to Hire
๐ 55 Public Repositories
๐ 8 Private Repositories
I'm a Night ๐ฆ
๐ Morning 2109 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 09.06 %
๐ Daytime 6133 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 26.35 %
๐ Evening 7990 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 34.33 %
๐ Night 7040 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 30.25 %
๐ I'm Most Productive on Wednesday
Monday 3405 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 14.63 %
Tuesday 4200 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 18.05 %
Wednesday 4695 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 20.17 %
Thursday 2901 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 12.47 %
Friday 3594 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 15.44 %
Saturday 2562 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 11.01 %
Sunday 1915 commits โโโโโโโโโโโโโโโโโโโโโโโโโ 08.23 %
๐ This Week I Spent My Time On
๐๏ธ Time Zone: Europe/London
๐ฌ Programming Languages:
Bash 2 hrs 24 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 79.68 %
sh 14 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 08.06 %
Text 9 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 05.40 %
YAML 5 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 03.25 %
Other 2 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 01.44 %
๐ฅ Editors:
VS Code 1 hr 58 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 65.68 %
Notepad++ 47 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 26.26 %
Zsh 14 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 08.06 %
๐ฑโ๐ป Projects:
public_scripts 1 hr 52 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 62.42 %
Unknown Project 52 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 28.96 %
dotfiles 9 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 05.02 %
Docker 5 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 03.25 %
project_work 0 secs โโโโโโโโโโโโโโโโโโโโโโโโโ 00.35 %
๐ป Operating System:
Windows 2 hrs 46 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 91.94 %
Linux 14 mins โโโโโโโโโโโโโโโโโโโโโโโโโ 08.06 %
I Mostly Code in Shell
Shell 12 repos โโโโโโโโโโโโโโโโโโโโโโโโโ 22.64 %
Dockerfile 11 repos โโโโโโโโโโโโโโโโโโโโโโโโโ 20.75 %
Python 8 repos โโโโโโโโโโโโโโโโโโโโโโโโโ 15.09 %
JavaScript 4 repos โโโโโโโโโโโโโโโโโโโโโโโโโ 07.55 %
HCL 1 repo โโโโโโโโโโโโโโโโโโโโโโโโโ 01.89 %
Last Updated on 27/06/2026 01:50:10 UTC
๐ฎ Steam playtime leaderboard
โ๏ธ Dota 2 ๐ 2293 hrs 14 mins
๐ฎ HELLDIVERSโข 2 ๐ 1044 hrs 10 mins
๐ฎ Creeper World 4 ๐ 882 hrs 51 mins
๐ Sid Meier's Civilization V ๐ 226 hrs 21 mins
๐ฎ Overwatchยฎ ๐ 209 hrs 25 mins
Two-node Proxmox cluster backed by a dedicated Proxmox Backup Server, ZFS on both nodes, and an Unraid NAS for secondary storage. The PBS doubles as a QDevice โ third vote in the quorum, keeping the cluster clean in a node failure without split-brain.
Everything is managed as code. Cloud-init templates are built with a custom script (multi-backend storage detection, SHA256 image verification, reusable config profiles) and kept current by a template update pipeline that patches source VMs concurrently via QEMU Guest Agent, handles reboots, then clones and converts to templates automatically.
Network infrastructure managed with Terraform, services provisioned with Ansible.
Samwise (primary โ 20c / 256GB / ~1TB ZFS | IPMI for out-of-band management)
| Service | Type | Role |
|---|---|---|
| DNS + NTP (primary) | VM | Pihole + Unbound โ full recursive DNS with DNSSEC validation, qname minimisation, DNS rebinding protection, and rate limiting. No upstream DNS dependency. Chrony NTP. HA primary โ adlists synced to replica via Nebula-Sync |
| Home Automation | VM | Home automation |
| Cloud Storage | VM | Self-hosted cloud storage |
| Docker Server | VM | 50+ container Docker stack โ media, productivity, security, and monitoring |
| NAS | VM | Network attached storage |
| IaC Server | VM | Ansible / Packer / Terraform (on-demand) |
| Backup Server | VM | Backup orchestration (on-demand) |
| HA-Proxy | LXC | SNI-based TCP routing to Proxmox UI + SPICE console proxy |
| CI/CD Runner | LXC | Self-hosted GitHub Actions runner |
Frodo (secondary โ 4c / 32GB / ~100GB ZFS)
| Service | Type | Role |
|---|---|---|
| DNS + NTP (replica) | VM | Pihole + Unbound + Chrony NTP โ HA replica, gravity and adlists synced from primary |
| Transcoding Node | VM | Automated media transcoding |
| APT Cache | LXC | Local APT package cache |
| Bastion | LXC | SSH jump host |
| Netboot | LXC | PXE / network boot server |
| Patch Management | LXC | Tracks and reports pending updates across all systems |
| IoT Builder | LXC | ESPHome firmware builds |
| HA-Proxy | LXC | SNI-based TCP routing to Proxmox UI + SPICE console proxy |
| Push Notifications | LXC | Self-hosted push notifications |
| Network Monitor | LXC | Network device tracking and new device detection |
Network (because the lab doesn't stop at the hypervisor)
Managed via a UniFi stack โ everything named after Lord of the Rings characters because of course it is.
| Device | Model | Role |
|---|---|---|
| Gandalf | UDM Pro | Gateway / firewall โ WireGuard VPN |
| Gimli | USW Pro Max 24 PoE | Core switch โ 10GbE backbone |
| Faramir | USW Flex 2.5G 5 | 2.5G distribution switch |
| Morgoth | USW Lite 8 PoE | Access switch |
| Legolas / Aragorn | U6 Pro ร2 | Wi-Fi APs |
| Sauron | UNVR | Network video recorder |
| Category | Detail |
|---|---|
| Protect | IP camera system โ isolated on a dedicated camera VLAN |
| IoT | SLZB-MR1u (PoE) โ standalone Zigbee + Thread/Matter coordinator for Home Assistant |
| VLANs | Default ยท IoT ยท Guest ยท VM ยท Camera |
| Clients | Large number of devices spread across multiple VLANs |
Self-Hosted Services (running on the Docker server)
The Docker server runs a 50+ container stack across three isolated networks โ a main bridge, an outbound-only network, and a fully internal network with no external routing. All services sit behind Traefik (HTTP/3, dual internal/external entrypoints, Cloudflare wildcard TLS), with Authentik as the SSO layer and CrowdSec handling threat intelligence via both a Traefik bouncer and a Cloudflare Worker bouncer.
|
Media
Security & Access
|
Productivity
Monitoring & Management
Backup & CI/CD
|




