ENGINEERING EXPERIENCE / SELECTED WORKHardware to software. Build it. Run it. Automate it.
Cloud infrastructure & platform foundations
TERRAFORM / OPENTOFUTERRAGRUNTGCP / GKE
- Built and maintained Terraform/OpenTofu modules and Terragrunt environment blueprints for cloud networking, Kubernetes clusters, and shared platform services.
- Composed environment configuration and Helm-based service deployments with explicit boundaries between shared infrastructure and workload-specific settings.
- Built inventory and workload-discovery utilities to make cloud and Kubernetes resources easier to inspect.
Application delivery & release automation
GITHUB ACTIONSHELM / OCIGOCDOCTOPUS DEPLOYJENKINS
- Built and documented container delivery workflows connecting semantic releases, image builds, artifact publication, and independently versioned Helm charts.
- Work across GoCD, Octopus Deploy, Jenkins, and GitHub Actions for build and deployment automation, including containerized applications and Linux/Windows operational workflows.
- Developed Packer image blueprints and provisioning automation for shared base images and role-specific Linux and Windows builds.
Browser verification & release confidence
PLAYWRIGHTBROWSER AUTOMATIONRESPONSIVE QA
- Use Playwright browser automation to exercise navigation, forms, access boundaries, and interactive application behavior.
- Verify layouts at desktop, tablet, and mobile widths, including overflow checks and screenshots for visual review.
- Check deployed public routes, HTTPS sign-in behavior, keyboard controls, and browser errors alongside application-level tests.
Windows, packaging & cross-platform operations
POWERSHELL / IISJFROG ARTIFACTORYPACKER / ANSIBLE
- Work with Windows/IIS and PowerShell operational tooling alongside Linux, Bash, Python, and Ansible automation.
- Connect versioned application artifacts and Helm OCI packaging with artifact-registry workflows and environment-specific deployment configuration.
- Maintain repeatable machine-build and provisioning patterns, keeping application delivery and machine configuration explicit.
Secrets, security & operational change
VAULT / OPENBAOTLSLINUX / ANSIBLE
- Built secrets and transit-encrypted data migration tooling with dry-run support, existing authentication methods, PostgreSQL workflows, and visible job progress.
- Created TLS audit tooling and declarative remediation artifacts that account for Kubernetes ownership of cloud load balancers.
- Developed fleet assessment, patch orchestration, verification scripts, and operational runbooks with controlled disruption and explicit follow-up steps.
Observability & infrastructure interfaces
GRAFANA / LGTMOPENTELEMETRYPYTHON / APIs
- Worked on metrics, logs, traces, and deployment configuration across Grafana, Prometheus, Loki, Tempo, Mimir, and OpenTelemetry.
- Built DNS management APIs and operational utilities to turn repeatable cloud tasks into explicit, inspectable workflows.
- Connected dashboards, service inventories, and supporting documentation so systems are easier to understand and investigate.
INDEPENDENT ENGINEERING / HOMELAB & SELF-HOSTINGMy lab. My problems. My fixes.
I run the services, deal with the failures, and write down what it took to get them working. The lab is where I try things properly: source control, storage, observability, automation, and the occasional piece of hardware that has opinions.
Self-hosted GitLab & developer tooling
GITLAB CEDOCKER COMPOSEZFS
- Operate my own GitLab CE instance for personal repositories, infrastructure code, and development projects.
- Deployed GitLab as a TrueNAS-managed Compose application with separate ZFS-backed configuration, application data, and log storage.
- Worked through reverse-proxy and Puma port collisions, startup behavior, memory pressure, and container resource sizing rather than treating every failed request as the same problem.
- Documented version-aware upgrades, readiness checks, background migration checks, and the distinction between repository/database backups and configuration/secrets backups.
Virtualization, containers & workload migrations
PROXMOX VETRUENASLINUXDOCKER
- Built and operated a mixed homelab using Proxmox virtual machines and Linux containers alongside TrueNAS-hosted applications.
- Migrated selected workloads between hosts and deployment models, separating application state from replaceable runtime containers.
- Worked through storage mounts, service port conflicts, startup dependencies, and the differences between host health and application readiness.
- Consolidated services onto the storage host where it made sense, retained source workloads during migration, and documented recovery and repurposing options.
Storage, application state & recovery
TRUENASZFSPERSISTENT STORAGE
- Manage ZFS-backed storage and application datasets, with separate locations for service configuration, persistent data, and logs.
- Worked through dataset layout, permissions, ACL behavior, and storage mappings during application moves and host consolidation.
- Created recovery notes, configuration exports, and migration records so the way back does not depend on remembering a late-night terminal session.
- Built consistent SQLite backup and integrity-verification workflows for the web platform. Treat storage redundancy, a backup file, and a verified restore as separate things.
Homelab observability & service health
GRAFANAPROMETHEUSUPTIME KUMANODE EXPORTER
- Built a coordinated service directory, availability view, and Grafana dashboards from a curated inventory of self-hosted services.
- Connected Prometheus, host metrics, authenticated service-monitoring metrics, and a read-only MQTT collector.
- Built views for CPU, memory, ZFS cache, physical network interfaces, storage activity, response times, and service history.
- Accounted for planned server sleep, maintenance windows, stale readings, and missing samples. A sleeping host is not magically available, and an HTTP response is not proof that every application feature works.
Always-on infrastructure & remote management
RASPBERRY PIPI-HOLETAILSCALEiDRAC
- Deployed Pi-hole and Tailscale on Raspberry Pi systems so lightweight network services and remote management do not depend on keeping the larger servers awake.
- Configured persistent container state, explicit service bindings, and rotating logs; investigated address-binding failures when moving configuration between hosts.
- Built and tested SSH-key-based iDRAC status and power-on workflows, with a secondary status-checked startup path.
- Rebuilt a Pi after storage corruption and documented the recovery steps. Treat installed schedules and observed scheduled execution as different evidence.
Self-hosted web platform & community publishing
CADDYDJANGOCLOUDFLARE TUNNELCI/CD
- Built a modular web host with separate portfolio and community applications behind a shared Caddy reverse proxy.
- Created a local deployment workflow with immutable source releases, versioned container images, pre-deployment checks, health verification, and independent application updates.
- Added application rollback, consistent database backups, and off-host backup integrity checks.
- Built a community publishing application with public news and pages, labeled sponsor placements, administrator-created resident accounts, and server-enforced private content access.
- Implemented authentication checks covering private and draft content, inactive accounts, CSRF, escaped content, and repeated failed logins; published the portfolio through Cloudflare Tunnel.
Local AI & voice integration
OLLAMALLAMA.CPPHOME ASSISTANTWYOMING
- Built local model and browser-chat deployments, keeping separate hosts’ conversation state and runtime configuration independent.
- Integrated Home Assistant command handling with local language-model responses, speech recognition, speech synthesis, and fallback paths.
- Worked on routing between device-control requests and informational responses, with explicit resource limits for smaller systems.
- Preserved application data during changes and retired experiments when the hardware had a better job to do. These projects include previous deployments, not a claim that every experiment is still running.
Energy telemetry & solar-aware charging
MQTTOCPPNODE.JSPROMETHEUS
- Built a local controller connecting inverter telemetry to an EV charger through MQTT and OCPP.
- Implemented charging policy based on solar availability and household demand, with persistent session tracking and dashboard views.
- Wrote tests around invalid readings, policy boundaries, command failures, and recovery after lost telemetry or restarts.
- Built a separate read-only energy collector and Grafana views for power, battery state, connection status, and sample age. Missing measurements stay missing instead of being replaced with reassuring zeros.
Self-hosted collaboration & service operations
NEXTCLOUDPORTAINERSSHLINUX
- Operate self-hosted collaboration and file services alongside source control, dashboards, and developer tools.
- Use container administration, service inventories, SSH access, and written operating notes to manage changes across different hosts.
- Keep persistent application state separate from container lifecycle changes, and distinguish a service being listed as running from its actual application behavior.
Independent games & automated publishing
GODOT / GDSCRIPTGITHUB ACTIONSAZURE SIGNING
- Develop game projects through CacoPhonic Game Studios, including Caps Lock, Regrove, Arcanomaly, and EchoBound.
- Automate game build and publishing workflows with GitHub Actions, release-please versioning, separate playtest/release tracks, and butler uploads to itch.io.
- Integrate Azure Windows code signing into the release path. Keep platform exports, signing, and published artifacts distinct.
CacoPhonic Game Studios on itch.io ↗Embedded projects & practical hardware work
ESP32PLATFORMIOAPI INTEGRATION
- Adapted an ESP32 weather-display project for my own needs, working with a Heltec board, weather API integration, and a PlatformIO sketch.
- Experimented with Wi-Fi antenna improvements and the hardware side of making a small connected device useful.
- Use the lab to connect software behavior to physical constraints: power, storage, network reachability, device startup, and recovery.
Amateur radio & RF projects
Amateur Extra · W5QJM
RADIO CONSTRUCTIONANTENNA BUILDINGRF
- Hold an Amateur Extra amateur radio license, callsign W5QJM.
- Build my own radios and antennas, extending hands-on hardware work into radio-frequency systems.
- Have made amateur radio contacts around the world running barefoot, without an external amplifier.
Music production & instruments
Echyøn · Music producer
ABLETONAKAI MPC ONEHARDWARE SYNTHS
- Produce music as Echyøn, available on Spotify, YouTube Music, Apple Music, and other streaming platforms.
- Use Ableton as my DAW alongside an Akai MPC One and a collection of Roland synthesizers.
- Play acoustic and electric guitar, own two handpans and didgeridoos, and have recently started exploring drone flutes.
Listen to Echyøn on Spotify ↗How I work
Understand the system before changing it. Put the fix where the resource is actually owned. Test the behavior, keep a way back, and write down what future me will need. Good platform work makes the next change easier to reason about.
A skills-based résumé focused on engineering work. Employer names, internal systems, and private deployment details are omitted.