Blog
4xx Error Guide
While troubleshooting an error, my coworker said, "Oh, that's 4xx, so that's a client error". I never approached troubleshooting like this. I just knew that 200s were good, and 500s were bad 😅. Knowing that 400 relates to the client eliminates much troubleshooting and saves
How To Keep Track Of New Releases
Whether it’s in my homelab or at work, I interact with Docker containers on a daily basis. Part of that responsibility is keeping images up to date—staying current with new releases, security fixes, and general improvements. At one point, this started to feel overwhelming, and I found myself
I Didn't Know What TLS Termination Was...Until Now
A coworker was recently helping me with a project when he asked, “Where is the TLS termination happen?” I was immediately confused. I knew the words individually, but I didn’t really understand what he was asking. After some clarification, it started to make sense...but not completely. To fully
Load Balancers VS Proxies
Load balancers and proxies shape how traffic is routed through modern systems—deciding where requests go, how they get there, and how services stay reliable and secure. In this post, I’ll break down what each one is using with simple, digestible analogies. What Is A Load Balancer? A load
A Bitbucket Migration Didn't Go According to Plan
I was tasked with containerizing our Bitbucket instance at my job. The migration went well, but what followed wasn’t quite as smooth. A sneaky, unexpected issue popped up—here’s what happened. Bitbucket and its underlying infrastructure needed an upgrade. We wanted to get the VM to an up-to-date
5 Lessons Learned as a DevSecOps Engineer in 2025
Between learning new tools, drinking from the proverbial fire-hose, and figuring things out as I went, this year in my role as a DevSecOps Engineer was packed with challenges (more than a few 😅) and meaningful growth. What I didn’t expect was how much the role would teach me beyond
Argo CD and the Power of GitOps
Scenario: You’ve just deployed an app using helm install. A few months pass, and you realize it’s time for an upgrade. You check the version history and see you’re a few releases behind. As you scan the release notes, you find a long list of upgrade instructions—
Breaking Things (Slightly) with a Nexus Upgrade: A Retrospective
Pre-Upgrade Last night, I upgraded Nexus Repository Manager at my job. Nexus acts as a central hub for storing and distributing binaries, serving as a proxy for remote repositories, and hosting private artifacts. It sits behind Traefik, both of which are defined in a Docker Compose file. Since Traefik also
How I Set Up a 3 Node Kubernetes Cluster
Six months ago, I started a new job as a DevSecOps engineer. During the interview process, the team gave me a heads up about what tools they used. I was excited to learn Kubernetes was one of them. I thought to myself, “Cool, I’ll be ready. I’ve done
Understanding __init__.py
When working through a tutorial, or working on an inherited project at work, have you ever noticed that empty __init__.py file? You may have asked yourself, "What is this file, and why is it empty?" In this article, I'll shed light on this mysterious file