/blog · long-form notes

blog .

~/blog ● 24 posts ● 24 external ● last shipped: 2026-08-24

Notes from the
control plane.

Deep-dives on DevOps, Kubernetes, Go, and the unglamorous parts of running real systems. Written when I have something genuinely useful to say.

/latest

AUG 24, 2026

Why an AI Agent Session Is More Than a JSONL File

How Infai evolved its AI agent session store from a simple JSONL log into a durable, branchable, lazy-loaded, and compactable timeline.

Read post →

All posts

[24 entries]
Why an AI Agent Session Is More Than a JSONL File

Why an AI Agent Session Is More Than a JSONL File

↗

How Infai evolved its AI agent session store from a simple JSONL log into a durable, branchable, lazy-loaded, and compactable timeline.

I Switched My Local Copilot From llama.cpp to vLLM — 2× VRAM for 50% Faster Completions

I Switched My Local Copilot From llama.cpp to vLLM — 2× VRAM for 50% Faster Completions

↗

I swapped llama.cpp for vLLM on my local code completion setup. 49% faster generation, 36% lower latency — but 2× the VRAM. Here's what I gained, what it cost, and the gritty install details.

I Built a Copilot Clone in Neovim With a 1.5B Model on a Laptop GPU

I Built a Copilot Clone in Neovim With a 1.5B Model on a Laptop GPU

↗

Using Qwen2.5-Coder-1.5B with llama.cpp and Minuet AI to get Fill-in-the-Middle code completions in Neovim — no subscription, no telemetry, running on a laptop GPU.

Building My First SaaS: Kubmin in the AI Agent Era

Building My First SaaS: Kubmin in the AI Agent Era

↗

What building Kubmin taught me about SaaS system design, observability, deployment, queues, auth, and using AI agents without losing ownership.

You Probably Don't Need mariadb-backup

You Probably Don't Need mariadb-backup

↗

How re-questioning assumptions turned a complicated MariaDB backup pipeline into a simple disk-snapshot workflow on Azure.

CrowdSec: The Free Bouncer Watching Your Servers While You Sleep

CrowdSec: The Free Bouncer Watching Your Servers While You Sleep

↗

Skip the paid WAF. CrowdSec gives one VPS — or a whole fleet — crowd-sourced intrusion prevention with a single decision pane. Plus the multi-server trap that costs people an afternoon.

Containers Are Tarballs in a Thinpool

Containers Are Tarballs in a Thinpool

↗

A fly.io take-home gave me an excuse to go deep on what containers actually are. What I learned about devicemapper thinpools, copy-on-write snapshots, and why a real orchestrator is just an FSM walking a state diff.

Why I Finally Upgraded to Neovim 0.12 (And Why You Should Too)

Why I Finally Upgraded to Neovim 0.12 (And Why You Should Too)

↗

The upgrade that broke everything — then revealed how much simpler config can be.

Local LLMs: I Went Deep So You Don't Have To

Local LLMs: I Went Deep So You Don't Have To

↗

GGUF vs safetensors, quantization, distillation, VRAM math, and Ollama vs vLLM vs llama.cpp — one post to save you the weekend I lost.

Why Your Laptop GPU Will Never Work with Proxmox Passthrough

Why Your Laptop GPU Will Never Work with Proxmox Passthrough

↗

Six attempts, three days, one stubborn MX330. A post-mortem on laptop GPU passthrough in Proxmox — what failed, why it's architecturally impossible, and exactly what to buy instead.

Your Old Laptop Is a Linux Server: A Complete Proxmox Home Lab Setup Guide

Your Old Laptop Is a Linux Server: A Complete Proxmox Home Lab Setup Guide

↗

Turn an old laptop into a full Proxmox home server — Wi-Fi NAT routing, DHCP, MTU fixes, and every gotcha you'll actually hit. A practical guide that also teaches you how AWS works.

Quantum Computing for the Curious Developer: Building Your First Circuits with Qiskit

Quantum Computing for the Curious Developer: Building Your First Circuits with Qiskit

↗

A developer's hands-on guide to quantum computing fundamentals — from qubits and gates to building a quantum teleportation circuit, no physics degree required.

When localhost Lied to Me: Debugging Playwright in a Containerized CI Runner

When localhost Lied to Me: Debugging Playwright in a Containerized CI Runner

↗

A Docker networking war story — why localhost lies inside containers, how --add-host gets you close, and how socat bridges the final gap for Playwright E2E tests.

Merkle Hash Chain Audit Logs: When You Actually Need Tamper-Proof Logging

Merkle Hash Chain Audit Logs: When You Actually Need Tamper-Proof Logging

↗

A practical guide to Merkle hash chain audit logs — what they are, how they work, and the honest question most teams skip: do you actually need one?

The 2-Hour Trap: Why chmod 666 on Docker Socket Will Haunt You

The 2-Hour Trap: Why chmod 666 on Docker Socket Will Haunt You

↗

A cautionary tale for DevOps engineers about the dangerous shortcut of chmod 666 on Docker sockets, and the proper GID-based approach for Docker-in-Docker setups.

Your Secrets Survive in Memory: Go's runtime/secret Changes That

Your Secrets Survive in Memory: Go's runtime/secret Changes That

↗

Go's new runtime/secret package addresses a blind spot in secret management — what happens to sensitive data after it's loaded into memory. A deep dive into when and how to use it.

The Kubelet Config Rabbit Hole That Changed How I Size Kubernetes Nodes

The Kubelet Config Rabbit Hole That Changed How I Size Kubernetes Nodes

↗

I went down a rabbit hole figuring out why my nodes had less resources than expected. Here's everything I learned about kubelet reservations, the allocatable formula, and drop-in configs.

PostgreSQL and Caching: Key Learnings for Scalable Systems

PostgreSQL and Caching: Key Learnings for Scalable Systems

↗

Practical insights and best practices for managing PostgreSQL databases and implementing effective caching strategies.

Frappe Framework: The Technical Autopsy of a Low-Code Dream

Frappe Framework: The Technical Autopsy of a Low-Code Dream

↗

A technical autopsy of Frappe's architectural patterns — ORM string-stitching, permission sprawl, memory leaks, and no-rollback migrations — backed by development experience of more than 1 year and maintainer admissions.

My First Two Months with OpenTelemetry: A Practical Guide

My First Two Months with OpenTelemetry: A Practical Guide

↗

A developer's practical guide to instrumenting applications with OpenTelemetry, sharing key learnings on spans, context propagation, and sampling.

When Docker's Firewall Blocks Your Virt-Manager VM

When Docker's Firewall Blocks Your Virt-Manager VM

↗

How to resolve network connectivity issues between Docker and virt-manager VMs

My Experience with September 2025

My Experience with September 2025

↗

A recap of my exciting tech journey in September 2025

Confiuration for making Delve work with neovim

Confiuration for making Delve work with neovim

↗

Configuration for making Delve work with neovim

My Experience with WASI Preview 2

My Experience with WASI Preview 2

↗

Created a working project using the wasi's new composition feature

/external · syndicated

Posts elsewhere

Articles published on Hashnode, WordPress, and Kubesimplify.