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.
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.
21.01.2023 updated 23.10.2023 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.
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:
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.
11.01.2022
Lately I've become quite a fan of PlantUML, a tool to automatically generate (technical) diagrams from text files. PlantUML takes care of the layout and allows putting your documents into version control like git. I even added support in my blog engine, to properly render and link PlantUML documents in posts (including their source code).
In this post, I'm collecting useful resources that have helped me writing PlantUML documents.
05.12.2021 updated 15.09.2023 Gaming Linux This post shows how to setup a full dedicated TF2 multiplayer server on a modern Linux system (including process supervising and some privilege separation). Additionally we install some addons and plugins to increase the functionality and comfort.
When I started this blog in 2017, I had to decide on a system to use. A long time ago I used Wordpress, but because of the high maintenance required, as well the constant security issues, I decided to go with a static site generator instead: Hugo.
30.09.2021 updated 01.01.2022 E-Mail When it comes to email hosting, I'm quite old school. Instead of using cloud services like GMail, I like plain IMAP and SMTP. It allows me to take my emails anywhere, without being locked-in. This has served me quite well over the last 15 years.
But lately, one of my providers had quite often network issues, leaving me without access for sometimes hours. As this hoster is a small shop with just a few people running it, I've wondered: What happens if the service goes down, and never up again? What happens to my archive? Hosting my own email server is an absolute no-go, as I don't want to constantly fight against waves of spam or other providers discriminating against unknown IPs. Life is too short to fight too many battles at the same time.
I've been researching this topic for quite a while, and in this post I describe the middle ground I settled on: Run my own backups, and have them in a simple readable format, that allows to search and process them using basic tools.
Lately I've become quite a fan of Rust, a modern programming language with a focus on memory safety. I'm using it in different projects, mostly for it's great speed and low resource usage compared to e.g. Python or Node.
In contrast to scripting languages, all Rust applications have to be compiled before they can be executed. This is a process that takes some time, depending on the size of the app and the number of dependencies.
During development, this isn't an issue thanks to local caching and incremental compilation, which allows the compiler to only re-compile what has changed since the last run.
For my web applications, I use Kubernetes and Docker images for deployment, which means I have to build my applications using Docker as well. In this case, these tricks won't help us.