Terraform Provider for pfSense
Configure pfSense firewall/router devices with Terraform. Written in Go with the Terraform Plugin Framework.


Before I was a platform engineer, I worked as a full-stack web developer using React, Node.js, and a touch of Java. I spent my time building application features, shaping the user experience, and writing backend services. Even so, I kept gravitating toward the DevOps side of the house: automating infrastructure, packaging applications, and wiring up deployments. The pull never let up, so I made the jump to platform engineering!
My start in software development still shapes how I architect platforms: I treat each one as a product developers actually want to use, not a pile of tools they’re required to adopt. I’m partial to solving problems at the intersection of software and infrastructure. In practice, I prove out new ideas with working prototypes and turn the ones that hold up into standards across every layer of the platform. The goal is always the same: simplify how teams ship, run, and observe their applications.
I like getting into the weeds of:
When a platform is missing a piece, I build it:
What my Saturdays look like:
Have a question or want to compare notes? Looking for my resume? Shoot me an email. I’m always up for talking about platform engineering, open source, interesting problems, or anything on the lists above.
Configure pfSense firewall/router devices with Terraform. Written in Go with the Terraform Plugin Framework.
Run Ansible playbooks using Terraform, without the local-exec provisioner. Supports execution environments and jq queries against playbook artifacts, among other features. Written in Go, with acceptance tests and published coverage reports. GitHub Actions is used for CI/CD.
Provision and operate a Kubernetes cluster with the convenience of a managed offering. Targets Fedora CoreOS, with SELinux support and Butane submodules for machine configuration. Highly available control plane via HAProxy and Keepalived. Supports air-gapped installs, upgrades, and certificate rotation. Built on my Ansible provider and used for my homelab clusters.
Fedora CoreOS VM provisioned on Proxmox with Terraform and configured with Ansible. All workloads run as Podman Quadlets. Zigbee2MQTT bridges devices from an SLZB-MR2 network-attached coordinator to Home Assistant over Mosquitto. Caddy runs rootless with systemd socket activation and terminates HTTPS with certificates from lego.
Measured whether two USB fans actually helped. Uses an OpenTelemetry Collector, Prometheus, and Grafana, with dashboards generated from Jsonnet. Scripts mark changes and compare the windows on either side.
This very website. Rendered with Hugo and styled with Tailwind CSS. Pages are precompressed with Brotli and served by Caddy from a reproducible, signed container image with an SBOM. Deployed to GCP Cloud Run with Terraform. CI/CD with GitHub Actions includes Lighthouse audits and security scans.