Managing Kubernetes from Neovim: Installing kubectl.nvim on Ubuntu 24

kubectl.nvim is a Neovim plugin that lets you browse and manage Kubernetes clusters directly from your editor — without leaving your coding environment. This guide covers a complete setup from scratch on Ubuntu 24, including Neovim, lazy.nvim as the plugin manager, and kubectl.nvim itself with true color support.

Read More

Git-Crypt: Secure Secrets in Git Repos

Git-crypt provides transparent encryption for sensitive files within Git repositories, allowing teams to store secrets like API keys alongside public code without exposing them.

Read More

Claude Code for Infrastructure as Code: Six Months In

I have been using Claude Code as my primary coding environment for infrastructure work for six months. This is not a getting-started tutorial — there are plenty of those. This is a practical guide to the workflow patterns that actually work for Terraform and Python DevOps tooling, and an honest account of where the friction still lives.


The IaC workflow

The diagram below shows the session loop I have settled on for Terraform work:

Read More

Resetting asciinema with Scroll Stacking

Your asciinema recording looks broken: newlines don’t work, old text gets overwritten, or the screen fills with garbage. This simple tutorial shows how to reset the terminal screen mid-recording using scroll stacking. Fix messy casts without starting over - just edit the file!

Read More

Disabling Auto Leveling on Creality Ender 3 S1 Pro with PrusaSlicer and OctoPrint

This tutorial provides step-by-step instructions to disable auto bed leveling (G29 commands) on the Creality Ender 3 S1 Pro when using PrusaSlicer with OctoPrint integration. Newer versions of PrusaSlicer automatically insert G29 commands into the start G-code for printers with bed leveling capabilities, which can cause unwanted auto leveling cycles during prints. By switching to Expert mode and editing the Custom G-code in printer settings, you can remove these commands entirely while maintaining compatibility with OctoPrint for seamless print uploads and monitoring.

Read More

How to Forward MySQL Port 3306 from Ubuntu Host to LXD/LXC Container

Learn step-by-step how to expose your MySQL server running inside an LXD/LXC container on Ubuntu by creating a dedicated profile with a proxy device. This setup forwards traffic from the host’s port 3306 to the container’s MySQL instance, making it accessible externally without direct network bridging. Ideal for secure, isolated database hosting on any Ubuntu system.

Read More

LangChain Agents for Infrastructure Automation

Most infrastructure automation is written as linear scripts: do this, then that, handle this error, exit. That model works fine for well-defined, predictable tasks. But when the task requires judgement — “figure out why this deployment is failing and fix it” — a linear script hits a wall.

LangChain agents offer a different model: a reasoning loop that can call tools, observe results, and decide what to do next. This tutorial builds a read-only Kubernetes diagnostic agent backed by Claude.

Read More