Daniel Meier

Infrastructure, Linux, automation, and operational engineering

Topics

Browse The Archive

Topics I write about regularly

This page groups the blog into a smaller set of consistent topics so it is easier to find practical guides, Linux notes, infrastructure writeups, and the occasional AI or security deep dive.

8 posts

Tutorials

Step-by-step walkthroughs, tooling guides, and hands-on setup articles.

8 posts

Linux

Distribution notes, operating system opinions, and practical platform work.

2 posts

AI

Local AI, model-serving experiments, and applied assistant workflows.

2 posts

Ansible

Automation patterns, dynamic inventory ideas, and real operations glue.

4 posts

Security

Operational security, secrets handling, and defensive workflow improvements.

1 post

macOS

Apple platform workflows, networking, and the tradeoffs of the ecosystem.

1 post

Gentoo

Focused Gentoo notes and distro-specific installation or packaging details.

2 posts

CentOS

CentOS Stream commentary and production-oriented Linux platform discussion.

2 posts

Architecture

Additional writing collected under this tag.

3 posts

Automation

Additional writing collected under this tag.

7 posts

CI/CD

Additional writing collected under this tag.

2 posts

CLI

Additional writing collected under this tag.

1 post

Cloud

Additional writing collected under this tag.

1 post

Dependency Management

Additional writing collected under this tag.

10 posts

DevOps

Additional writing collected under this tag.

4 posts

Developer Experience

Additional writing collected under this tag.

2 posts

Development

Additional writing collected under this tag.

2 posts

Docker

Additional writing collected under this tag.

1 post

Engineering

Additional writing collected under this tag.

1 post

Filesystems

Additional writing collected under this tag.

1 post

Fish

Additional writing collected under this tag.

3 posts

Flux

Additional writing collected under this tag.

4 posts

Git

Additional writing collected under this tag.

5 posts

GitOps

Additional writing collected under this tag.

5 posts

Kubernetes

Additional writing collected under this tag.

1 post

Maintainability

Additional writing collected under this tag.

1 post

Make

Additional writing collected under this tag.

1 post

Metrics

Additional writing collected under this tag.

4 posts

Platform Engineering

Additional writing collected under this tag.

3 posts

Productivity

Additional writing collected under this tag.

1 post

Renovate

Additional writing collected under this tag.

1 post

Shell

Additional writing collected under this tag.

1 post

Software Engineering

Additional writing collected under this tag.

1 post

Tooling

Additional writing collected under this tag.

1 post

asdf

Additional writing collected under this tag.

8 posts

Tutorials

Step-by-step guides that prioritize practical outcomes over theory.

Routing All macOS Traffic Through the Tor Network

For certain tasks, I need to use macOS and sometimes prefer to route all my traffic through the Tor network. In this tutorial, I will guide you through the process. While you ca...

Simple Load Balancer Tutorial with k3d

Local Kubernetes clusters are useful when an application needs more than a single container. They provide a realistic environment for testing Deployments, Services, routing, hea...

Why I Switched from cd to zoxide

cd is one of the simplest and most reliable Unix commands. It does exactly what it should, is available everywhere, and requires no explanation. Replacing it is therefore not ab...

k9s Tutorial

I am excited to introduce an article about k9s, a powerful tool designed for efficient management of kubernetes clusters, whether it be on platforms like EKS or k3s. This tool h...

Lazygit Tutorial

This is my Lazygit tutorial, which will help you get an overview of the most important features. It will speed up your git workflow and make it easier for you.

Advanced (CLI) tools for coders & hackers

This article is aimed at the advanced coder/hacker and exclusively includes tools that go far beyond the standards such as “bash”, “nano”, or “git”. I am writing this text becau...

8 posts

Linux

Linux opinions, distro notes, and day-to-day systems work.

Why Fish Is My Favorite Interactive Shell

The shell is one of my most frequently used interfaces. It sits between me and source code, Git, Kubernetes, package managers, remote systems, build tools, and almost every oper...

Lines of Code Tells You Where to Look, Not What to Think

The current discussion about the Linux kernel reaching another milestone measured in tens of millions of lines of code follows a familiar pattern. Some people treat the number a...

BTRFS, Subvolumes, Snapshots, and Snapper

Most Linux installations still treat the filesystem as an afterthought. You make one root partition, maybe one home partition, format everything as ext4, and move on. That works...

Your .env File Does Not Belong in Plaintext

In an earlier article, AES‑256 Is Enough. Your Secrets Workflow Isn’t, I argued that the cipher is usually not the weak point. The weak point is the workflow around it. One of t...

AES‑256 Is Enough. Your Secrets Workflow Isn’t

There is a strange little ritual in engineering teams. Someone mentions encryption, someone else says “AES‑256,” and for a brief second the room relaxes. The magic number has be...

The Philosophical Dichotomy Between macOS and Linux

In the ongoing discourse surrounding operating systems, macOS and Linux occupy distinct philosophical and practical niches. Linux, with its open-source ethos, exemplifies adapta...

Gentoo goes Binary

I was genuinely excited as I read the latest Gentoo news regarding their commitment to providing more binary packages for Gentoo stable. Gentoo is often referred to as the non-b...

2 posts

AI

Applied AI work, local model experiments, and assistant-oriented projects.

Running Your Own AI on Your Local Machine - A Guide

In another article, I talked about utilizing GPT’s API to write a Telegram Chat-Bot. Now, I will write about using an LLM like GPT but on your local machine and for free. You ca...

Write Your Own GPT based Telegram Assistent

In this article, I will teach you how to write a GPT-based Telegram Bot in Go using OpenAI’s API. This bot is just an example of how easy it is to utilize GPT’s API. There are w...

2 posts

Ansible

Automation patterns and inventory ideas from practical operations work.

GitOps: From Tribal Knowledge to Auditable Infrastructure

Infrastructure used to be full of stories that began with, “Ask Alex, they know how that server works.” Someone had installed a package over SSH, changed a configuration file du...

Running a Tor Exit Node on CentOS Stream 9 with Ansible

If you want to operate a Tor exit node properly, you should avoid doing it by hand. You need a repeatable bootstrap, a hardened SSH configuration, a firewall that only exposes w...

4 posts

Security

Security workflows, secrets handling, and operational hardening.

Renovate Is Not the Problem. Your Pipeline Is.

Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...

Installing Kyverno and Capsule with Flux

A local Flux setup becomes much more interesting once it manages more than demo applications. In the previous article, Learning GitOps with Flux, k3d, and the Flux CLI, I used a...

Your .env File Does Not Belong in Plaintext

In an earlier article, AES‑256 Is Enough. Your Secrets Workflow Isn’t, I argued that the cipher is usually not the weak point. The weak point is the workflow around it. One of t...

AES‑256 Is Enough. Your Secrets Workflow Isn’t

There is a strange little ritual in engineering teams. Someone mentions encryption, someone else says “AES‑256,” and for a brief second the room relaxes. The magic number has be...

1 post

macOS

macOS workflows, networking details, and ecosystem tradeoffs.

The Philosophical Dichotomy Between macOS and Linux

In the ongoing discourse surrounding operating systems, macOS and Linux occupy distinct philosophical and practical niches. Linux, with its open-source ethos, exemplifies adapta...

1 post

Gentoo

Gentoo-specific installation notes and packaging details.

Gentoo goes Binary

I was genuinely excited as I read the latest Gentoo news regarding their commitment to providing more binary packages for Gentoo stable. Gentoo is often referred to as the non-b...

2 posts

CentOS

CentOS Stream discussion with a production and platform lens.

Running a Tor Exit Node on CentOS Stream 9 with Ansible

If you want to operate a Tor exit node properly, you should avoid doing it by hand. You need a repeatable bootstrap, a hardened SSH configuration, a firewall that only exposes w...

2 posts

Architecture

Everything currently filed under this topic.

Lines of Code Tells You Where to Look, Not What to Think

The current discussion about the Linux kernel reaching another milestone measured in tens of millions of lines of code follows a familiar pattern. Some people treat the number a...

3 posts

Automation

Everything currently filed under this topic.

Why Every Repository Should Have a Makefile

Every repository develops a collection of commands. There is a command to install dependencies, another to run tests, one for formatting, one for building an artifact, and sever...

Why I Recommend pre-commit to Every Engineering Team

Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...

My Famous Formula: Speed = Process + Automation

Engineers spend a remarkable amount of time arguing about tools. Should we use Renovate or Dependabot? Kubernetes or a simpler container platform? Flux or Argo CD? Terraform or ...

7 posts

CI/CD

Everything currently filed under this topic.

Why Every Repository Should Have a Makefile

Every repository develops a collection of commands. There is a command to install dependencies, another to run tests, one for formatting, one for building an artifact, and sever...

Why I Recommend pre-commit to Every Engineering Team

Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...

My Famous Formula: Speed = Process + Automation

Engineers spend a remarkable amount of time arguing about tools. Should we use Renovate or Dependabot? Kubernetes or a simpler container platform? Flux or Argo CD? Terraform or ...

Renovate Is Not the Problem. Your Pipeline Is.

Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...

Why I Recommend Trunk-Based Development

Using branches as environments sounds attractive at first. A dev branch, a test branch, a staging branch, and a prod branch feel simple, visible, and comfortable. Developers mer...

Why Docker Buildx Bake Is More Interesting Than It Looks

If you only ever build one image with one Dockerfile, Docker Bake can look a bit underwhelming. You move a docker build command into a docker-bake.hcl file, type docker buildx b...

You Probably Want a Monorepo for Your Base Images

Most engineering teams do not start with an image governance problem. They start with something humble: one Dockerfile for Python, one for Node.js, one for kubectl, maybe one fo...

2 posts

CLI

Everything currently filed under this topic.

Why I Recommend asdf for Every Repository

Every software repository depends on tools. Even a small project may require one particular version of Go, Node.js, Python, or another runtime. Larger repositories often add Ter...

Why Fish Is My Favorite Interactive Shell

The shell is one of my most frequently used interfaces. It sits between me and source code, Git, Kubernetes, package managers, remote systems, build tools, and almost every oper...

1 post

Cloud

Everything currently filed under this topic.

1 post

Dependency Management

Everything currently filed under this topic.

Renovate Is Not the Problem. Your Pipeline Is.

Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...

10 posts

DevOps

Everything currently filed under this topic.

Why Every Repository Should Have a Makefile

Every repository develops a collection of commands. There is a command to install dependencies, another to run tests, one for formatting, one for building an artifact, and sever...

Why I Recommend asdf for Every Repository

Every software repository depends on tools. Even a small project may require one particular version of Go, Node.js, Python, or another runtime. Larger repositories often add Ter...

Why I Recommend pre-commit to Every Engineering Team

Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...

My Famous Formula: Speed = Process + Automation

Engineers spend a remarkable amount of time arguing about tools. Should we use Renovate or Dependabot? Kubernetes or a simpler container platform? Flux or Argo CD? Terraform or ...

Renovate Is Not the Problem. Your Pipeline Is.

Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...

Why I Recommend Trunk-Based Development

Using branches as environments sounds attractive at first. A dev branch, a test branch, a staging branch, and a prod branch feel simple, visible, and comfortable. Developers mer...

GitOps: From Tribal Knowledge to Auditable Infrastructure

Infrastructure used to be full of stories that began with, “Ask Alex, they know how that server works.” Someone had installed a package over SSH, changed a configuration file du...

What You as a Dev Should Know About Kubernetes

Silos have a bad reputation in software organizations. They are blamed for slow delivery, poor communication, and tickets being thrown from one team to another. But silos are no...

Your .env File Does Not Belong in Plaintext

In an earlier article, AES‑256 Is Enough. Your Secrets Workflow Isn’t, I argued that the cipher is usually not the weak point. The weak point is the workflow around it. One of t...

4 posts

Developer Experience

Everything currently filed under this topic.

Why Git Worktrees Are Awesome for Parallel Development

Git branches isolate history, but a normal clone gives us only one working directory. That mismatch creates friction as soon as more than one task matters. I may have an unfinis...

Why Every Repository Should Have a Makefile

Every repository develops a collection of commands. There is a command to install dependencies, another to run tests, one for formatting, one for building an artifact, and sever...

Why I Recommend asdf for Every Repository

Every software repository depends on tools. Even a small project may require one particular version of Go, Node.js, Python, or another runtime. Larger repositories often add Ter...

Why I Recommend pre-commit to Every Engineering Team

Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...

2 posts

Development

Everything currently filed under this topic.

Why Git Worktrees Are Awesome for Parallel Development

Git branches isolate history, but a normal clone gives us only one working directory. That mismatch creates friction as soon as more than one task matters. I may have an unfinis...

Git Worktree: A Practical Tutorial

You are halfway through a feature when another branch suddenly needs your attention. Perhaps a pull request needs reviewing, a hotfix needs testing, main has moved, or you need ...

2 posts

Docker

Everything currently filed under this topic.

Why Docker Buildx Bake Is More Interesting Than It Looks

If you only ever build one image with one Dockerfile, Docker Bake can look a bit underwhelming. You move a docker build command into a docker-bake.hcl file, type docker buildx b...

You Probably Want a Monorepo for Your Base Images

Most engineering teams do not start with an image governance problem. They start with something humble: one Dockerfile for Python, one for Node.js, one for kubectl, maybe one fo...

1 post

Engineering

Everything currently filed under this topic.

My Famous Formula: Speed = Process + Automation

Engineers spend a remarkable amount of time arguing about tools. Should we use Renovate or Dependabot? Kubernetes or a simpler container platform? Flux or Argo CD? Terraform or ...

1 post

Filesystems

Everything currently filed under this topic.

BTRFS, Subvolumes, Snapshots, and Snapper

Most Linux installations still treat the filesystem as an afterthought. You make one root partition, maybe one home partition, format everything as ext4, and move on. That works...

1 post

Fish

Everything currently filed under this topic.

Why Fish Is My Favorite Interactive Shell

The shell is one of my most frequently used interfaces. It sits between me and source code, Git, Kubernetes, package managers, remote systems, build tools, and almost every oper...

3 posts

Flux

Everything currently filed under this topic.

Managing Multiple Kubernetes Clusters with Flux

Running one Flux-managed cluster is useful. Running three Flux-managed clusters from the same repository is where the repository structure starts to matter. The moment you have ...

Installing Kyverno and Capsule with Flux

A local Flux setup becomes much more interesting once it manages more than demo applications. In the previous article, Learning GitOps with Flux, k3d, and the Flux CLI, I used a...

Learning GitOps with Flux, k3d, and the Flux CLI

GitOps is one of those ideas that sounds more complicated than it has to be. The useful version is simple: Git becomes the desired state for your cluster, and a controller insid...

4 posts

Git

Everything currently filed under this topic.

Why Git Worktrees Are Awesome for Parallel Development

Git branches isolate history, but a normal clone gives us only one working directory. That mismatch creates friction as soon as more than one task matters. I may have an unfinis...

Why I Recommend pre-commit to Every Engineering Team

Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...

Git Worktree: A Practical Tutorial

You are halfway through a feature when another branch suddenly needs your attention. Perhaps a pull request needs reviewing, a hotfix needs testing, main has moved, or you need ...

Why I Recommend Trunk-Based Development

Using branches as environments sounds attractive at first. A dev branch, a test branch, a staging branch, and a prod branch feel simple, visible, and comfortable. Developers mer...

5 posts

GitOps

Everything currently filed under this topic.

Why I Recommend Trunk-Based Development

Using branches as environments sounds attractive at first. A dev branch, a test branch, a staging branch, and a prod branch feel simple, visible, and comfortable. Developers mer...

GitOps: From Tribal Knowledge to Auditable Infrastructure

Infrastructure used to be full of stories that began with, “Ask Alex, they know how that server works.” Someone had installed a package over SSH, changed a configuration file du...

Managing Multiple Kubernetes Clusters with Flux

Running one Flux-managed cluster is useful. Running three Flux-managed clusters from the same repository is where the repository structure starts to matter. The moment you have ...

Installing Kyverno and Capsule with Flux

A local Flux setup becomes much more interesting once it manages more than demo applications. In the previous article, Learning GitOps with Flux, k3d, and the Flux CLI, I used a...

Learning GitOps with Flux, k3d, and the Flux CLI

GitOps is one of those ideas that sounds more complicated than it has to be. The useful version is simple: Git becomes the desired state for your cluster, and a controller insid...

5 posts

Kubernetes

Everything currently filed under this topic.

GitOps: From Tribal Knowledge to Auditable Infrastructure

Infrastructure used to be full of stories that began with, “Ask Alex, they know how that server works.” Someone had installed a package over SSH, changed a configuration file du...

What You as a Dev Should Know About Kubernetes

Silos have a bad reputation in software organizations. They are blamed for slow delivery, poor communication, and tickets being thrown from one team to another. But silos are no...

Managing Multiple Kubernetes Clusters with Flux

Running one Flux-managed cluster is useful. Running three Flux-managed clusters from the same repository is where the repository structure starts to matter. The moment you have ...

Installing Kyverno and Capsule with Flux

A local Flux setup becomes much more interesting once it manages more than demo applications. In the previous article, Learning GitOps with Flux, k3d, and the Flux CLI, I used a...

Learning GitOps with Flux, k3d, and the Flux CLI

GitOps is one of those ideas that sounds more complicated than it has to be. The useful version is simple: Git becomes the desired state for your cluster, and a controller insid...

1 post

Maintainability

Everything currently filed under this topic.

Lines of Code Tells You Where to Look, Not What to Think

The current discussion about the Linux kernel reaching another milestone measured in tens of millions of lines of code follows a familiar pattern. Some people treat the number a...

1 post

Make

Everything currently filed under this topic.

Why Every Repository Should Have a Makefile

Every repository develops a collection of commands. There is a command to install dependencies, another to run tests, one for formatting, one for building an artifact, and sever...

1 post

Metrics

Everything currently filed under this topic.

Lines of Code Tells You Where to Look, Not What to Think

The current discussion about the Linux kernel reaching another milestone measured in tens of millions of lines of code follows a familiar pattern. Some people treat the number a...

4 posts

Platform Engineering

Everything currently filed under this topic.

My Famous Formula: Speed = Process + Automation

Engineers spend a remarkable amount of time arguing about tools. Should we use Renovate or Dependabot? Kubernetes or a simpler container platform? Flux or Argo CD? Terraform or ...

Why I Recommend Trunk-Based Development

Using branches as environments sounds attractive at first. A dev branch, a test branch, a staging branch, and a prod branch feel simple, visible, and comfortable. Developers mer...

GitOps: From Tribal Knowledge to Auditable Infrastructure

Infrastructure used to be full of stories that began with, “Ask Alex, they know how that server works.” Someone had installed a package over SSH, changed a configuration file du...

3 posts

Productivity

Everything currently filed under this topic.

Why Git Worktrees Are Awesome for Parallel Development

Git branches isolate history, but a normal clone gives us only one working directory. That mismatch creates friction as soon as more than one task matters. I may have an unfinis...

Why Fish Is My Favorite Interactive Shell

The shell is one of my most frequently used interfaces. It sits between me and source code, Git, Kubernetes, package managers, remote systems, build tools, and almost every oper...

Git Worktree: A Practical Tutorial

You are halfway through a feature when another branch suddenly needs your attention. Perhaps a pull request needs reviewing, a hotfix needs testing, main has moved, or you need ...

1 post

Renovate

Everything currently filed under this topic.

Renovate Is Not the Problem. Your Pipeline Is.

Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...

1 post

Shell

Everything currently filed under this topic.

Why Fish Is My Favorite Interactive Shell

The shell is one of my most frequently used interfaces. It sits between me and source code, Git, Kubernetes, package managers, remote systems, build tools, and almost every oper...

1 post

Software Engineering

Everything currently filed under this topic.

Lines of Code Tells You Where to Look, Not What to Think

The current discussion about the Linux kernel reaching another milestone measured in tens of millions of lines of code follows a familiar pattern. Some people treat the number a...

1 post

Tooling

Everything currently filed under this topic.

Why I Recommend asdf for Every Repository

Every software repository depends on tools. Even a small project may require one particular version of Go, Node.js, Python, or another runtime. Larger repositories often add Ter...

1 post

asdf

Everything currently filed under this topic.

Why I Recommend asdf for Every Repository

Every software repository depends on tools. Even a small project may require one particular version of Go, Node.js, Python, or another runtime. Larger repositories often add Ter...