Home

All DevLogs

2026
May
Apr
May 2026
n8n

Replacing the Autoscaler with a CPU Gate

The autoscaler scaled up into failures. The fix was stopping execution before it started.

python

Hardening the Admin Panel: Auth, Security, and a Real Build Pipeline

sqladmin gives you a CRUD interface. It doesn't give you auth, a real dashboard, XSS protection, or a reproducible asset pipeline. Here's what it took to add all of that.

AI

Wrapping the Video Pipeline in a Queue Service

The pipeline works on GPU in ~5 minutes. Synchronous generation still doesn't. How a Redis queue, FastAPI, and persistent workers turn a video pipeline into a usable service.

n8n

Replacing n8n's Deprecated Execute Command Node

When n8n deprecated the Execute Command node, I needed another way to run shell scripts from workflows. FastAPI already had the right permissions — so I built a custom node that routes execution through it.

AI

Three Models, One Face: Finding What Actually Works on MPS

Why the first output looked right and felt wrong — and how evaluating Wav2Lip, SadTalker, and LivePortrait in sequence led to splitting the problem in two.

advi-ui

Building a Year Dot Navigator

A fixed right-side dot navigation for year-grouped content — inspired by a timeline component I built at Google for the Sustainability Refresh project. Five-pixel dots, hover labels, and a scroll that centers the year in the viewport.

AI

Building an AI Agent That Knows My Blog

How I wired up a RAG-powered chat agent using n8n, Supabase vector store, and Gemini — so visitors can ask questions and get answers directly from my writing.

n8n

Automating Blog Ingestion into the Vector Store

How I built an n8n pipeline that reads my RSS feed, checks what's new or updated, and syncs only the changed content into Supabase for the RAG agent to use.

advi-ui

Redesigning PageAside: From Wrapper to Real Sidebar

The original PageAside was a styled shell with no behaviour. Getting collapse-to-icon-rail working required rethinking the API, moving from children to an items array, and solving a gap timing problem in pure CSS.

n8n

Building a CPU-Aware Autoscaler

Why static concurrency doesn't work for CPU-bound workloads, and how asymmetric EWMA — fast to react to load spikes, slow to forget them — solves the oscillation problem that naive autoscalers always hit.

🚧

More on the way

This is a living record of what I'm building — new entries added as projects evolve.