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...
Browse The Archive
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.
Step-by-step walkthroughs, tooling guides, and hands-on setup articles.
8 postsDistribution notes, operating system opinions, and practical platform work.
2 postsLocal AI, model-serving experiments, and applied assistant workflows.
2 postsAutomation patterns, dynamic inventory ideas, and real operations glue.
4 postsOperational security, secrets handling, and defensive workflow improvements.
1 postApple platform workflows, networking, and the tradeoffs of the ecosystem.
1 postFocused Gentoo notes and distro-specific installation or packaging details.
2 postsCentOS Stream commentary and production-oriented Linux platform discussion.
2 postsAdditional writing collected under this tag.
3 postsAdditional writing collected under this tag.
7 postsAdditional writing collected under this tag.
2 postsAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
10 postsAdditional writing collected under this tag.
4 postsAdditional writing collected under this tag.
2 postsAdditional writing collected under this tag.
2 postsAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
3 postsAdditional writing collected under this tag.
4 postsAdditional writing collected under this tag.
5 postsAdditional writing collected under this tag.
5 postsAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
4 postsAdditional writing collected under this tag.
3 postsAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
1 postAdditional writing collected under this tag.
8 posts
Step-by-step guides that prioritize practical outcomes over theory.
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...
When developing AI applications in Python, leveraging Go for model serving in the backend can offer significant performance advantages. While Python excels in machine learning m...
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...
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...
What I appreciate in software is when it scales efficiently. I dislike overstretched goals and under-delivering on value. In recent years, GitLab, for example, made numerous pro...
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...
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.
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 opinions, distro notes, and day-to-day systems work.
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...
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...
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...
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...
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...
In the ongoing discourse surrounding operating systems, macOS and Linux occupy distinct philosophical and practical niches. Linux, with its open-source ethos, exemplifies adapta...
A few years ago, there was considerable discussion surrounding Red Hat’s transition of CentOS, which, according to insights shared by “industry experts” on platforms such as Red...
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
Applied AI work, local model experiments, and assistant-oriented projects.
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...
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
Automation patterns and inventory ideas from practical operations work.
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...
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 workflows, secrets handling, and operational hardening.
Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...
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...
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...
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 workflows, networking details, and ecosystem tradeoffs.
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-specific installation notes and packaging details.
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 Stream discussion with a production and platform lens.
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...
A few years ago, there was considerable discussion surrounding Red Hat’s transition of CentOS, which, according to insights shared by “industry experts” on platforms such as Red...
2 posts
Everything currently filed under this topic.
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...
Vendor lock-in is not about using a vendor. It is about losing room to move. A company does not become trapped merely because it runs workloads on AWS, buys a SaaS product, uses...
3 posts
Everything currently filed under this topic.
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...
Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...
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
Everything currently filed under this topic.
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...
Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...
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 ...
Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...
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...
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...
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
Everything currently filed under this topic.
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...
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
Everything currently filed under this topic.
Vendor lock-in is not about using a vendor. It is about losing room to move. A company does not become trapped merely because it runs workloads on AWS, buys a SaaS product, uses...
1 post
Everything currently filed under this topic.
Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...
10 posts
Everything currently filed under this topic.
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...
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...
Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...
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 ...
Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...
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...
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...
Vendor lock-in is not about using a vendor. It is about losing room to move. A company does not become trapped merely because it runs workloads on AWS, buys a SaaS product, uses...
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...
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
Everything currently filed under this topic.
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...
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...
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...
Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...
2 posts
Everything currently filed under this topic.
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...
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
Everything currently filed under this topic.
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...
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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 ...
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...
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
Everything currently filed under this topic.
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...
Many code-review comments should never have required a reviewer. Trailing whitespace, malformed YAML, forgotten generated files, unresolved merge markers, inconsistent formattin...
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 ...
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
Everything currently filed under this topic.
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...
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 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 ...
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...
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
Everything currently filed under this topic.
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...
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...
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 ...
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...
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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 ...
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...
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...
Vendor lock-in is not about using a vendor. It is about losing room to move. A company does not become trapped merely because it runs workloads on AWS, buys a SaaS product, uses...
3 posts
Everything currently filed under this topic.
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...
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...
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
Everything currently filed under this topic.
Keeping dependencies current is healthy engineering. Old dependencies accumulate security issues, compatibility problems, unsupported APIs, and migration work. Small updates tha...
1 post
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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
Everything currently filed under this topic.
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...