Welcome to my home page
This is the place where I publish articles about my findings and progress in the awesome world of technology and beyond! Also, check out my projects or get in touch.
My latest articles //
Benchmark series part 3: Automated hardware benchmarks in Kubernetes
I present my own hardware benchmark automation framework that creates a Kubernetes cluster with different VM types of your choice, schedules a containerized benchmark container on each node, and collects+processes the result. The framework is open source and available on GitHub. I also provide hints for how to visualize the results. Introduction A hardware benchmark answers the question: “Given a…
Benchmark series part 2: Hardware benchmarks with Phoronix Test Suite
Phoronix Test Suite (PTS) is a benchmark orchestration tool which runs multiple configurable benchmark CLIs and extracts their results. This article explains the two most important core concepts of PTS, test profiles and test suites, and how to build them yourself. The detailed steps of installing and running tests are also explained, as well as how to build your own…
Benchmark series part 1: Benchmarking virtual cloud hardware using 6 great tools
This article discusses virtual cloud hardware benchmarks, which help you choose the best performing virtual cloud-based CPU/disk/memory hardware for your needs. I go into the cost-benefit ratio of benchmarking, and provide many good practices for hardware benchmarking, such as ensuring proper reproducibility. Finally, I explore 6 off-the-shelf benchmark tools that measure CPU, memory or disk performance: CoreMark, OpenSSL, 7-zip, Sysbench,…
Performance benchmark of over 30 Azure VMs in AKS
This article uses my fully-automated benchmark suite which creates a temporary Azure Kubernetes cluster (AKS) with over 30 different Azure VM sizes, schedules a container-based benchmark on each VM (which measures CPU and disk performance), and collects + visualizes the results. I share the raw results and an Excel sheet with various meta-information and graphs, as well as my interpretation…
Synchronize Google calendar with Outlook with Microsoft Power Automate
Having multiple calendars that are not synchronized often causes scheduling issues. To solve this problem, I built a Microsoft Power Automate flow that synchronize Google calendar with Outlook. The flow is free / open-source, and here I explain how to set it up, configure and use it. Originally posted on 2024-01-14, updated on 2024-03-02 to reflect the changes made in…
Year 2023 in review – statistics and introspection on this blog, work and side projects
The year 2023 has come to an end, so I took some time to reflect on my activities. Website / Blogging – who is reading this anyway? In 2020, I relaunched my personal website, using WordPress with the GeneratePress theme, which has been a good choice so far. In general, WordPress is quite good, except for the horrendously slow Gutenberg…
Auto-scaling Azure Pipelines Agents in Kubernetes
This article explores my Kubernetes operator that provisions Azure Pipelines agents as Kubernetes Pods. It comes with an in-depth tutorial for how to use my operator. I also explore all alternative options for running Azure Pipeline agents, and explain why using a Kubernetes-based option beats all other options. Introduction CI/CD pipelines are a cornerstone to improve the efficiency of software…
Advanced Docker / BuildKit Caching with 5 tricks to speed up your image builds
This article explains BuildKit caching in detail. First you learn background knowledge, e.g. how the local and remote cache differs, and what kinds of cache items BuildKit can store where. Then, BuildKit’s garbage collection is explained in detail. Finally, I present 5 tricks to speed up your image builds, e.g. tuning the garbage collection policies, or how to efficiently use…
Docker and BuildKit: how building images really works
This article explains how Docker builds images with BuildKit, via buildx. It discusses the advantages of BuildKit over Docker’s legacy image builder, and then elaborates on three approaches for calling BuildKit in Docker: 1) using the embedded BuildKit library managed by the Docker daemon, 2) using a BuildKit container managed by buildx, and 3) using a containerized BuildKit instance directly…
Focus tools – tool support to get more work done and silence the noise
In this post I demonstrate how I increased my productivity with the help of focus tools. They automatically reserve focus time periods in my calendar and automatically trigger my operating system’s focus mode on and off, based on the calendar events. Introduction In my daily work life, it is difficult to allocate time slots where I can get coding work…