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.
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.
23.02.2025
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.
A quick post about a problem I faced while building a Docker container on a VM without IPv6 and how I solved it.
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.
In this post, I show a small fix to an issue that I encountered while building a Django-based application.
This is a small story about a shell feature that broke the CI.
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.
08.06.2023 updated 23.07.2023 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:
- Apple AirPods as headphones, which allow me to concentrate better on calls than speakers
- A proper boom microphone for great voice quality
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.
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.