Writing & Ideas
Thoughts on AI engineering, LLM systems, and building software that scales.

FastAPI BackgroundTasks vs Celery: Picking the Right One
BackgroundTasks looks like it solves the same problem Celery does — run some work after the response goes out, without making the user wait for it. …

FastAPI Dependency Injection: Patterns and Anti-Patterns
Depends gets introduced in every FastAPI tutorial as “how you get the current user,” and most developers never look past that one use …

FastAPI Project Structure That Survives Growth
Every FastAPI project starts the same way: one main.py file with a handful of routes, a Pydantic model or two, and a database call inline in the …

Why Your FastAPI Endpoint Blocks the Event Loop
“Just make it async def” is the advice every FastAPI developer hears first, and it’s the reason so many production incidents start …

ai-memory: Persistent, Cross-Tool Memory for AI Agents
You quit Claude Code mid-task after four hours of back-and-forth — architecture decisions made, three approaches tried and abandoned, one open …

Inside X's Bot Detection: botmaker, scarecrow, bdsm
On August 13, 2026, X pushed an update to its open-source x-algorithm repository that most coverage reduced to one headline: the exact ranking weights …

Needle: Function-Calling AI on Tiny Devices
A post about a 26-million-parameter open-source model has been circulating on LinkedIn: Needle, from Cactus Compute, distilled from Gemini for …

Understanding QUIC: How HTTP/3's Transport Works
Most backend developers can still sketch TCP’s three-way handshake from memory, but ask about QUIC and the conversation stalls out at …

Open Knowledge Format (OKF): A Self-Updating Graph
Point a coding agent at a real repository and watch what actually happens before it writes a single line: it reads files, greps for callers, opens a …

Twilio Telephony Terms: SIP Trunking, DIDs, A2P
The first time you open Twilio’s console to wire up voice or SMS for a real product, the terminology hits you all at once — SIP trunk, DID, …

UUIDs Explained: Versions, Collisions, Performance
Ask most backend developers what a UUID is and you’ll get the same answer: “a random string that’s basically unique, so I …

Ruff in Python: Replace Your Lint and Format Stack
Most Python projects don’t have one code-quality tool — they have five. Flake8 for style, Black for formatting, isort for imports, pyupgrade for …