Building a Personal NOC: I Needed to Know If Anyone Actually Uses My Shit
I built three sites. All on GitHub Pages. All costing $0 to run. And I had absolutely no idea if anyone was actually using them. BETA (beta.trenigma.dev) - Cascade climbing conditions tool Blog (blog.trenigma.dev) - This thing you’re reading littlelink (littlelink.trenigma.dev) - Link-in-bio page They all worked. GitHub Actions deployed them. DNS resolved. SSL certs were valid. Cool. But like… were people visiting? Which pages? From where? Was the site actually fast or just fast for me on my gigabit connection in Seattle? ...
Ghost → Hugo: My EC2 Box Died and I'm Not Going Back
So my Ghost blog died. Not like gracefully-sunsetting died. Like can’t SSH in anymore died. I’d been running Ghost on an EC2 instance for about a year. Docker, Traefik, MariaDB, the whole self-hosted stack. It was beautiful when it worked. When it didn’t work, I’d spend Friday nights debugging why the database ate all the RAM again or why SSL certs didn’t renew properly. The Free Tier year ended. AWS started charging me. And the instance just… got slower. And slower. Until one day I tried to SSH in and it just hung there. Connection timeout. ...
BETA Part 1: Why I Built a Climbing Conditions Pipeline
Okay so lemme tell you how this started. I was sitting in an NWAC avalanche awareness class — one my climbing community Rising Roots organized at The Mountaineers in Seattle — and I asked out loud: “how come something like NWAC avalanche forecasting doesn’t exist for climbers? Some kind of tool that helps us decide when conditions are solid without having to cross-reference a shitload of resources?” I had a quick conversation with a PhD student about weather data infrastructure, and then I sat with that question a little harder. WTF — why doesn’t this exist? ...
BETA Part 2: Wiring in a USGS River Gauge (and the Dead One I Almost Used)
Let me tell you about the gauge that looked alive but wasn’t. I was building BETA — a climbing conditions tool for Cascade crags — and I wanted river data for the Skykomish corridor. Index Town Wall and Miller River Boulders both sit in that drainage. When the Skykomish is running high and angry, the approaches are a mess regardless of what the weather’s doing. That’s useful signal. USGS publishes real-time streamflow data through their National Water Information System, free, no API key. I found a gauge right near Miller River — 12132000 — that showed up on the map with an active status. Perfect location, exactly what I needed. ...
BETA Part 3: Adding PurpleAir AQI (and the Wood Stove Surprise)
I added air quality data to BETA for wildfire smoke season. What I did not expect was to immediately discover a wood stove problem in the Skykomish valley. More on that in a minute. Why AQI for a climbing tool PNW wildfire season has gotten worse every year. Driving an hour to the crag only to spend the day breathing 180 AQI air is a real thing that happens, especially on the east side of the Cascades. I’d personally forgotten to check AQI before a trip more than once, so I wanted it surfaced automatically alongside the weather data. ...
Building a Production-Ready GitOps Platform on AWS EKS
After successfully building my ECS + Terraform project, I knew I needed to fill a gap in my portfolio: Kubernetes on AWS. While ECS is great for straightforward containerized workloads, most enterprise environments I’m targeting use Kubernetes. I needed to prove I could work with both. So I built a production-ready EKS cluster with a full GitOps workflow using ArgoCD, complete with RDS for persistence, multi-AZ networking, and automated deployments. Here’s the story of how it came together - including the 8 debugging issues that taught me the most. ...
How I Built a Production-Ready AWS Project to Reboot My DevOps Career
After a career gap, I needed a portfolio project that would prove I could still build production-grade infrastructure. Here’s the story of deploying a multi-AZ ECS application with Terraform - including the 7 real debugging issues I solved along the way. After taking time away from DevOps work, I knew I needed more than just an updated resume to get back into the field. I needed to prove I could still build real infrastructure, solve real problems, and think like a production engineer. ...
How I Self-Hosted a Ghost Blog Using Docker, Traefik & AWS
Because why not make your blog about blogging also be your DevOps playground? Why I Did This Like many devs, I hit that moment where I wanted a personal blog — but I didn’t just want to spin up a platform. I wanted to build the infrastructure myself, to make it a fun project that was part learning, part feeding the enjoyment of building things. I chose Ghost for the blog engine (modern, fast, beautiful). I chose Docker for containerization, Traefik for reverse proxy & TLS, and AWS for the hosting playground. ...
Welcome to Views From the Treehouse đź’š
For some time now, I’ve batted around the idea of creating a blog. But of course analysis paralysis got in the way. What would I write about? Would it be interesting to anyone? Should I try to separate it by topics? Interests? And on and on. And then I finally decided, “just do it for me.” Let it be random, eclectic, sometimes silly. Let it reflect all of me. So here it is 🥰. Welcome to Views From the Treehouse 🏕️ 🌄. Grab your fav beverage, a snack, and let’s hang out. Thanks for coming 🫶🏽.