Welcome to the AugmentedMind

Your resource for articles about technology, self-improvement & more

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 //

Ansible introduction: the definitive guide to provisioning with Ansible

This Ansible introduction explains what Ansible is and how it works. I explain the most important concepts and demonstrate them by example. I go into common pitfalls, such as installing Ansible, handling secrets, or getting reproducible projects. Ansible introduction Ansible is a CLI tool that provisions other machines. Here, provisioning refers to installing and configuring software on other machines. A…

Container-based development environments

In this article I discuss container-based development, where you not only run but also develop and debug software inside a locally-running Docker container. I explain the advantages and disadvantages of this approach, and look at VS Code’s development container feature, various features of IntelliJ-based IDEs, and how to implement an IDE-independent approach. Introduction to container-based development For many years, developers…

Book recommendation: Designing Data-Intensive Applications

In this book recommendation, I review the book Designing Data-Intensive Applications by Martin Kleppmann, released in 2017. I also offer my 46 page summary of the book as free download. What are data-intensive applications? This book targets software engineers and architects interested in building distributed systems. In contrast to compute-intensive applications, where CPU cycles are the primary concern, the term data-intensive applications…

Google Docs for code: the best collaborative code editors in 2022

Collaborative code editors let developers write code together in real time, just like Google Docs. This article compares Microsoft Live Share, Code with me, and CodeTogether. I clearly demonstrate the limitations and benefits of each tool, including how it integrates into existing IDEs, end-to-end encryption and pricing. I’ll conclude with recommendations for different use cases, such as coding interviews, or…

Kubernetes Development tools – the best 10 tools to speed up your daily development

In this article I discuss three types of Kubernetes development tools that speed up your daily development and debugging tasks: tools like Tilt that speed up development iteration cycles, general approaches for remote debugging with a debugger, and tools like Inspektor Gadget that help you diagnose problems in production. Introduction The increasing complexity of Kubernetes has made software development more…

Kubernetes cluster introspection – the 5 best tools to better understand your cluster

Cluster introspection tools help you better understand what is going on in your Kubernetes cluster, by presenting the workloads visually. In this article I present a taxonomy of available tools and briefly present the tools Lens, k9s, kubenav, Octant, Headlamp, Kubernetes dashboard, Skooner and Portainer. I conclude by giving general recommendations. Introduction A very common task for developers, operations and…

Local Kubernetes development clusters: the 5 best local cluster compared

If you develop software that runs on Kubernetes, a local development cluster can significantly speed up your development iteration speed, because everything happens locally. I discuss the pros and cons of local clusters and then present the tools Docker for Desktop, Rancher Desktop, kind, k3d and Minikube, and how they compare. I finish with details regarding how to get locally-built…

Speed up GitLab CI – the 5 best tips for fast pipelines

Starting from an overview of frequent causes for slow pipelines, I derive 5 tips to speed up GitLab CI pipelines. These include choosing the appropriate runner infrastructure, choosing the right caching approach (Docker vs. GitLab), DAG pipelines, mixing GitLab’s caches and artifacts, and optimizing individual jobs (e.g. via parallelization). Introduction As I already explained in the CI/CD Basics article, the…

GitLab CI/CD: GitLab vs. Docker caching – how to get insanely fast CI/CD pipelines

Using a Node.js example project I demonstrate how Docker-based caching can speed up your GitLab CI/CD pipelines even more than GitLab’s built-in caching mechanism. I explain how each approach works, and what the technical prerequisites are. I also list tools that support you with setting up a Docker-based CI pipeline. Introduction Caching of files between CI jobs is a very…