Mitch's Blog

Django templates: How to iterate over defaultdicts

Django Python

In this post, I show a small fix to an issue that I encountered while building a Django-based application.

The dangers of silent variable expansion

DevOps Bash

This is a small story about a shell feature that broke the CI.

Applying for jobs in IT - do's and don'ts

IT Career

I'm currently in the process of switching jobs, and because of some internal reasons, I was tasked to interview my potential successors. While it's debatable to give this task to someone who is unhappy and has resigned, I take this challenge as a learning opportunity.

In this post, I'm collecting various things I noticed while interviewing people for a Senior DevOps Engineer / Cloud Architect position - and what the candidates could've done better.

macOS: Auto-switch to a different microphone when using AirPods


I work fully remote and spend a lot of my day in videocalls. Over the time, I've created a setup that works quite well for me:

While it works quite well, there is a slight annoyance: Every time macOS connects the AirPods, they automatically become the microphone as well, even though they have a worse quality. Also, using AirPods as pure speakers also increases their sound quality.

In this post, I'd like to show the small solution I built to solve this for me.

Integrating Python-based daemons with systemd (Part 1)

Linux Python Code

systemd is a wonderful piece of software, that has liberated us from writing ugly bash-based init scripts and has given us features like a structured and unified log and one of the best local DNS resolvers on Linux.

In this post, I'm demonstrating how to integrate a service (also known as daemons on UNIX-like systems) written in Python into systemd to leverage some advanced features of the service manager.

Leveling up as Software Engineer

IT Career

In this post I'd like to reflect over some things I've learned in my 10+ years working in Information Technology, and the things that helped me becoming the (DevOps) engineer I am today.

Python: Split up iterable into evenly-sized chunks

Python Code

In a recent tool I developed, I had the need to split up a list (or any iterable) into equal-sized lists of values. In this post, I document the process on how I reached my goal, what steps it took and the decisions behind them.

Implementing the Argo CD GitOps Flow

Kubernetes DevOps Argo CD Bash

In this post, I'd like to document the approach I've developed for a highly automated application development and deploment process, based on various online sources and self-built bash glue.

Tales from by LinkedIn inbox (part 2)


Last year I wrote a bit about my frustation with tech recruiters. Around September 2020 I started looking for new jobs again (as my team was falling apart), so I changed my status to "Open for Work" again.

While I quickly found a new position, but still had quite a share of weird and annoying requests again.

I've been employed again for nearly a year now, and yet the stream of LinkedIn messages and requests seems to never run dry.

Here's my best-of from the last 1.5 years:

IT-Sicherheit - Made in Germany

IT-Security Rants

Dieser Post ist ein Rant.

Vor einigen Monaten habe ich mit einem Kollegen länger geplaudert, dessen Fokus in der IT-Sicherheit liegt. Wir haben Geschichen darüber ausgetauscht, wie traurig und fast unlösbar kaputt der allgemeine Zustand der Sicherheit unserer Branche ist. In diesem und (vielleicht irgendwann) folgenden Beiträge möchte ich verschiedene Beispiele zeigen, die ich in der Praxis in Unternehmen gesehen habe.