I’m a Senior Software Engineer at Weaveworks, bringing GitOps to the masses with the Open Source Flux continuous deployment solution for Kubernetes which I’m also a core maintainer of. Since 2019 I’ve been mostly focussed on work around Kubernetes, building operators and controllers, complex multi-cluster management solutions and developer experience enhancements.

In the many years I’ve been working on software now, both professionally and on private projects, I’ve used many different programming languages, frameworks, process models and runtime technologies. My technology stack of choice has naturally evolved over time depending on my experience, the particular challenge to be solved and the technological landscape at the time. Here’s the list of my current preferred tech stack:

Runtime of choice: Kubernetes
  1. It’s model of desired state makes it the most user-friendly deployment environment I’ve ever seen. Yes, it’s very complex but being able to have your desired state on your local filesystem in the form of YAML files helps reasoning about your deployments in a way not possible before.
  2. It’s very extensible: You can create Custom Resource Definitions to define a model of your business requirements and write operators to implement business logic in a clearly-defined way.
  3. The ecosystem is HUGE. This is not always a good thing but knowing that there are tools out there for most of the business needs of a complex IT organization is definitely an advantage.
  4. It’s RESTful API is one of the cleanest implementations of a resource-based web API I’ve ever seen.

Deployment model of choice: GitOps
I started looking into GitOps at the start of 2021 and it just felt as the logical next step after ramping up on Kubernetes. I led an initiative integrating Flux into D2iQ’s Kubernetes offering at the time and became a Flux maintainer soon after. Take a look at the OpenGitOps project’s website for further information on what GitOps entails.

Programming Language of choice: Go

When I first stumbled upon this new programming language called Go I was immediately hooked. I loved its simplicity and ease of application deployment: At that time, around 2015, I was working at Just Software on social business software that was mostly run on-premise at our customers’ sites. Most of our microservices were based on Java, some on Node.js and rolling them out was a pretty heavy process. We needed to have the right JRE version on the hosts alongside the right Node.js version as well as all the library dependencies. I took a stab at migrating one microservice to Go and it was a huge success, rolling the single binary out was a breeze.

From then on I continued basing many more services and tools on Go where it made sense (it rarely did not). Now with most of my work surrounding Kubernetes and Flux I write Go code almost exclusively.

I received my Master’s degree in Computer Science from Hamburg University in 2014, love working on Distributed Systems, preferably in Go and I’m a passionate supporter of Free and Open Source Software. If time permits I like to catch up on recent developments in the areas of Network Protocols, User Networks and Peer-to-Peer Networks. I occasionally give talks and have a past as an editor at Linux Magazine and other magazines. Other than that, I’m combining my passions for everything microcontrollers/electronics and carpentry to build “smart” furniture and toys for my children.

Contact Me

You can see most of what I’m currently working on over at GitHub.