Skip to main content

Posts

2026
Apr 08 Leadership 4 min read

RRE: the weekly reflection framework I built for my team

Engineers care deeply about observability. We instrument systems, build dashboards, define SLOs, and set up alerts. Because a system you can’t see is a system you can’t improve. We’d never run production infrastructure without telemetry.

Then we run teams with no telemetry at all.

No signal on whether the week moved things forward. No structured way to surface blockers early. No feedback loop that converts experience into better execution. Just meetings, Slack noise, and the vague sense that things are either fine or not fine.

Apr 07 Leadership 6 min read

One month into management: all theory, no answers yet

I’ve been an engineering manager for about a month. Everything I think I know about this job comes from books, talks, and watching other managers. Not from doing it.

That’s an uncomfortable thing to write. But it’s accurate, and I’d rather be honest about where I’m starting than write a post that performs experience I don’t have.

I’ve had a personal north star for a while that’s shaped why I wanted this role in the first place:

Apr 05 Platform Engineering 5 min read

Secrets management is still a mess in 2026

It is 2026. There are .env files committed to private repositories right now. There are passwords in Kubernetes Secret objects encoded as base64, which is not encryption, and someone on that team thinks it is. There are production credentials in a shared Bitwarden folder with twelve people’s access that nobody has audited since the last two people left.

Secrets management is a solved problem in the sense that we know what good looks like. It’s an unsolved problem in the sense that most teams aren’t doing it.

Apr 01 Tools 5 min read

stackd: GitOps for Docker Compose without the Kubernetes tax

Not everything needs to run on Kubernetes.

stackd is a GitOps daemon for Docker Compose, built for people who don’t want cloud platform complexity just to keep a few self-hosted services running. It sits between your Git repo and your Docker host, watches for changes, pulls updates, and applies them automatically with docker compose up -d. The point is to make Compose feel operationally mature without turning it into Kubernetes.

2023
May 05 Kubernetes 5 min read

Simplifying Reverse Proxy Management with Kubernetes Ingress Controller and Cert-Manager

Introduction #

While discussing reverse proxies with a colleague who was building out his home lab with Docker, the topic of SSL certificates and proxies came up. I mentioned that I use Kubernetes, cert-manager, and Let’s Encrypt to manage these components. However, this made me consider the fact that although most of my services are hosted within Kubernetes, there are still some that run on other platforms, including bare-metal.

Jan 08 Tutorial 8 min read

Hosting a blog with hugo on Azure - For Free!

Introduction #

Hugo #

Hugo is a popular open-source static site generator that allows you to create fast and flexible websites. It is built with performance in mind and uses Go templates to generate static HTML files from templates and content files.

One of the key benefits of using Hugo is its simplicity and ease of use. It has a minimal learning curve and allows you to quickly create and publish content using simple markdown files. It also has a large number of customizable themes and options, allowing you to tailor the appearance and functionality of your website to your specific needs.

Jan 06 Post 4 min read

Maximizing Productivity and Collaboration with Github

Introduction #

As a DevOps engineer, managing code repositories and collaborating on projects is a critical part of my day-to-day job.

Both GitHub and Azure DevOps are popular platforms that offer a range of tools and features for managing code repositories and collaborating on projects. However, for me, GitHub stands out as the better choice for several reasons.

In this post, I’ll be discussing some of the key features and benefits of using GitHub, as well as how it compares to Azure DevOps, and why I ultimately decided to go with GitHub.

2022
Dec 28 Terraform 6 min read

Loops with Terraform

Introduction #

Loops are a powerful tool in any programming language, and Terraform is no exception. They allow you to repeat a set of instructions multiple times, potentially with different values each time. This can be very useful for creating multiple similar resources in Terraform, such as a set of identical EC2 instances or S3 buckets.

To use loops in Terraform, you can use the count argument, which allows you to specify the number of times a resource should be created. You can also use the for_each argument to iterate over a list or map of values.