Posts
Thomas Stringer
Cancel

Collect Custom Metrics in AKS

Part of running a production-quality Kubernetes cluster is being able to monitor it. One of the nice things about having your Kubernetes cluster in Azure is that many things are easy to setup and w...

Debug a Python Application Running in Kubernetes

Software breaks. It stops doing what we think it should be doing. It throws errors, and it fails in unexpected ways. This is the reality that we live in. As a software programmer, it is absolutely...

Create a Quick and Easy Prometheus Exporter

Prometheus is a clear leader in the cloud native world for metrics. Prometheus follows an HTTP pull model: It scrapes Prometheus metrics from endpoints routinely. Typically the abstraction layer be...

Why You Should Typically Use Named Arguments in Python

When invoking functions in Python, you can usually pass your arguments either by position or name. There are advantages (and disadvantages) to each approach. This blog post will discuss why you wo...

Change a Function's Output Based on Input Parameter Value in a Python Unit Test

When writing unit tests you always want to make sure you’re testing the smallest unit possible. Oftentimes the code that we want to test is reaching out beyond the software itself: The two common o...

Find the systemd Unit that Owns a Process

Recently I had to do a little troubleshooting and I was able to pinpoint a particular process ID from ps that I was interested in. In particular, I wanted to know which systemd unit was responsible...

Sorting Algorithm Stability - What it is and When it Matters

There are many sorting algorithms out there that are widely accepted: Insertion sort, quick sort, heap sort, merge sort, bucket sort… and so on and so forth. There are a lot of qualities of each so...

Be Good at Referencing, Not Remembering

My memory is awful. In all aspects of life. But as a software engineer, I don’t rely on my memory. In fact, it’s the opposite. I rely on my lack of memory. We live in a world where there is too muc...

Go's append Behavior and Potentially Unintended Side Effects

When working with Go, a very common operation is to add an element (or multiple elements) to a slice with append. But if you don’t know the true nature of append, it could surprise you! Appending ...

Find Which apiVersion to Use for Kubernetes Resources

When creating Kubernetes resource manifests, one of the first things that we need to specify for the resource is the apiVersion. For many of the common resources, you might be able to “guess” accur...