Projects

Selected projects demonstrating infrastructure automation, containerization, and cloud architecture.

Self-Hosted DevOps Platform

A home lab run like a small platform team: Proxmox, four K3s clusters (one public on DigitalOcean), Jenkins pipelines as code, Ansible, Terraform and AWS-backed secrets.

Proxmox K3s Jenkins Ansible Terraform AWS CoreDNS nginx Cloudflare Tunnel DigitalOcean

Automated Multi-Site Deployment

Jenkins pipelines that build Wagtail CMS sites into container images, push them to Amazon ECR and roll them out to K3s on DigitalOcean behind nginx and Let's Encrypt.

Wagtail Django PostgreSQL Docker Jenkins Amazon ECR K3s DigitalOcean nginx Let's Encrypt

Observability & Alerting Platform

Phone-first monitoring: Prometheus and blackbox probes, Loki logging with per-host heartbeats, and Alertmanager routing Nagios-style alerts to self-hosted ntfy topics.

Prometheus Alertmanager Grafana Loki Vector node_exporter blackbox_exporter ntfy Ansible Jenkins Kubernetes Helm

Media Ingestion & Curation Pipeline

A web form queues downloads, Jenkins runs containerized fetch-and-tag jobs with automatic retry queues, and a PostgreSQL catalog syncs curated metadata back to Plex.

Jenkins Docker Python FastAPI yt-dlp FFmpeg AtomicParsley PostgreSQL Plex API ErsatzTV

Automated Internet Radio Station

A personal 24/7 streaming station on the home network: scheduled genre shows, text-to-speech DJs and play-history-aware playlists driven by PostgreSQL.

Liquidsoap Icecast Piper TTS PostgreSQL Python ffmpeg Flask Ansible Jenkins

Containerized Infrastructure Toolchain

A dozen containerized ops toolkits, one per cluster and platform, that fetch credentials from AWS Secrets Manager at runtime, publish to ECR and plug into Jenkins.

Docker AWS Secrets Manager Amazon ECR Bash kubectl Terraform Ansible Jenkins Job DSL Alpine Linux Proxmox API

Real-Time Telemetry Analytics Pipeline

Binary UDP telemetry decoded into InfluxDB and Grafana, with an hourly Jenkins job that builds a permanent PostgreSQL record and publishes analysis to Confluence.

Python InfluxDB Grafana PostgreSQL Docker Compose Jenkins Confluence API UDP

Browser-Based Remote Desktop Streaming

A containerized Linux desktop streamed to the browser over WebRTC with in-band audio, built and smoke-tested by Jenkins, deployed by Ansible and published behind zero-trust access.

Docker Selkies WebRTC Jenkins Ansible nginx Cloudflare Tunnel Cloudflare Access Amazon ECR Wine PulseAudio Linux

Reusable AWS Terraform Library

A library of 57 AWS Terraform modules with shared conventions and secure defaults, so a client environment is assembled from pinned, reviewed modules instead of hand-written resources.

Terraform AWS IAM KMS Secrets Manager EKS CloudWatch VPC S3 RDS Lambda

AWS Curriculum, 2026 Edition

A 29-module hands-on AWS curriculum rewritten for AWS as it is in 2026, with ten new modules, per-module exam objectives and lab costs, and a linting pipeline on every pull request.

AWS GitHub Actions CloudFormation IAM EKS CloudWatch Lambda Terraform CDK Step Functions

Web Page Change Alerts

A watcher that turns pages with no feed or API into email alerts: it reduces each page to comparable lines, diffs them against the last run and mails only real changes, sent from a DKIM-signed SES domain built with Terraform.

Python Terraform AWS SES Route 53 IAM Amazon S3 DynamoDB Proxmox LXC Jenkins cron SMTP DKIM/SPF/DMARC

Self-Hosted File Browser

Browser-based access to a 10TB NFS estate, running on Kubernetes behind TLS with credentials in AWS Secrets Manager.

Kubernetes k3s NFS Docker nginx Terraform Jenkins AWS Secrets Manager CoreDNS

Certifications

AWS Certified Cloud Practitioner

Amazon Web Services Training and Certification

Recertifying, 2026

AWS Certified Solutions Architect - Associate

Amazon Web Services Training and Certification

Recertifying, 2026

AWS Partner Accreditations: Technical, Cloud Economics, Business

Amazon Web Services