Mitch's Blog

Using systemd as Docker replacement

Docker systemd DevOps

For a recent customer project, I migrated a Docker and Compose based project to use SquashFS images supervisored by systemd. In this post I'm writing down the process and learnings.

Embedding SPAs into Go webservices

DevOps Go

Recently I've become quite a fan of Go, a pragmatic and flexible programming language that has opened up new ways for me to build applications.

In this post, I wanna show how to embed an entire JavaScript/TypeScript SPA (Single Page Application) directly into your go binary to simplify the deployment of small applications. I've used this approach already in multiple smaller projects to streamline the build and deployment pipeline.

Farewell, Windows!

10 years ago, in 2015, I built a new gaming PC. Back then I thought: "That's gonna be my last gaming PC", as I wasn't sure if I'd stay being an avid gamer for another decade. Therefore, I invested in high-tier components to ensure it will endure for a long time. And it served me well.

Docker build on IPv6-only systems

Linux Docker

A quick post about a problem I faced while building a Docker container on a VM without IPv6 and how I solved it.

Learnings from being a GCP DevOps

DevOps Google Cloud Platform

Over the last 2 years, I worked as DevOps Engineer for companies hosting on Google Cloud Platform. During this time I consulted many developers and learned a few things where I hoped someone would've told me already when I started. In this post, I'm describing some Best Practices that helped me and the organizations I worked for.

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

macOS

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.