mind-the-gap dashboard: 63% demand-weighted coverage, skill radar with proven/claimed/in-progress/gap states

Mind the gap: I pointed monitoring at my own skill set

A rejection isn’t actionable data. So an n8n workflow now extracts skill demand from live job listings, diffs it against what I can prove, and renders the gap as a dashboard — deployed like everything else here: via git push.

the robot holding up a lamp on a pole over a strawberry bed at night under a crescent moon and stars, lighting up two grumpy mildew blobs on the leaves, while the boy in the cap holds a stopwatch

🌙 Killing Mildew in the Dark

A farm robot is replacing pesticides with UV light at night. The clever part isn’t the robot — it’s the darkness. Here’s the home version, and the honest scope of what it can and can’t do.

Audiobookshelf library: the same tale with stock narrator and the cloned dad voice

🎙️ Cloning My Own Voice for My Kid's Audiobooks

Zero-shot voice cloning with XTTS-v2 on a CPU-only k3s node: 26 seconds of phone audio in, a cloned-voice audiobook out — and an honest verdict from the bedtime jury. Every manual step, including the ones that went wrong.

the boy in the cap with a watering can and the robot with a pair of shears tending a garden bed made of stacked books and rolled scrolls, with vines growing out of them and a pile of cut trimmings on the ground

🌱 My Second Brain Weeds Itself Now

I gave my markdown knowledge base a nightly gardener — an AI that finds orphan notes and missing links and fixes them, every change a reviewable git commit. The fun part was the Kubernetes wall I hit on the way.

The ATS job poller workflow in n8n: schedule and manual triggers feeding config, fetch & normalize, filter, dedup, per-job LLM scoring via NVIDIA, then digest, email, and mark-seen

🎯 Know the Market Without Job-Hunting: An LLM-Scored Job Poller in n8n

You don’t have to be job-hunting to want to know your market — what’s out there, what it pays, where you’d fit. So I built an n8n workflow: it polls the public ATS APIs (Greenhouse/Lever/Ashby) plus a broad remote-jobs feed, filters for remote-EU infra roles, scores each posting against my CV with an LLM, and emails me only the 80%+ matches. No database, no scraping.

The exocortex knowledge base rendered as a 3D force-directed graph — 36 notes, 165 edges

🧠 A Second Brain You Can `git clone`

My first second brain died the way most do — on multi-device sync. The rebuild: plain markdown as the source of truth, every clever layer derived and disposable, and an AI that tends it through reviewable git diffs.

Brew Buddy batch detail with fermentation log

🫙 I Built a Tracker for My Kombucha. The Data Model Was the Hard Part.

Brewing kombucha looks simple until you try to model it: one batch splits into many flavored bottles, every jar generates a stream of pH and taste readings, and a SCOBY has a lineage. Here’s the little app I built to keep track — and why the schema, not the code, was the real work.

n8n workflow canvas

🍵 I A/B-Tested Cloud vs Local LLMs in One n8n Agent. The Local One Faked It.

I built an AI agent in self-hosted n8n over my kombucha-tracking app, then gave it two brains — NVIDIA’s 70B and a local Phi-3.5 — sharing the same tools. The cloud model called the tools and answered from real data. The local one couldn’t, so it made things up.

the boy in the cap holding a wrench and a blueprint scroll of stacked layers, the robot beside him pointing toward an open chest of neatly filed gear-marked folders; on the ground a heap of loose scattered blocks leads into a single tidy line of blocks

📦 Five Ways to Manage Kubernetes Manifests (and Why They're Not All Equal)

Raw YAML, Kustomize, Helm, Jsonnet — there’s more than one way to describe what you want running in a cluster. Here’s what each actually looks like in practice and where each one breaks.

the little robot stands guard at a doorway like a friendly bouncer, holding up a hand to check a stack of papers, while the boy in the cap watches; a shield symbol floats above them, protective and watchful

🔒 Building a PII Guardrail Proxy for Cloud LLM Calls

A local model classifies every prompt before it leaves the cluster. If it’s sensitive, it’s blocked. If it’s clean, it goes to NVIDIA NIM. 150 lines of FastAPI, deployed on k3s.