Writingthoughts on shipping

archive

I Built a Private AI Assistant That Runs Entirely on My Own Hardware

The concern with cloud AI is usually framed as paranoia. It is not. There is a specific category of work where sending prompts to an…Continue reading on Medium »

Read on Medium →

AI Won’t Replace Developers. But This Skill Gap Will Get You Replaced.

The engineers most at risk from AI are not the ones who ignored it. They are the ones who adopted it without understanding what it shifted…Continue reading on Medium »

Read on Medium →

Firebase killed your deep links. Here’s how to own them forever.

FDL died on Aug 25, 2025. Here’s the full migration: Android, iOS, Flutter.Firebase Dynamic Links quietly shut down mid-year. No migration wizard, no grace period, just links returning 403 and users l...

Read on Medium →

How to ship real software with AI in 4 loops: a non-coder’s playbook

You have probably seen the demo by now. Someone opens a chat box, types “build me a notes app with login”, and thirty minutes later there is a working app on screen. Buttons work. The login page looks...

Read on Medium →

Your Node.js CLI Deserves a Better Spinner; Meet unicode-spinner

If you’ve ever built a CLI tool or an async-heavy Node.js script, you know the moment: your process is running, nothing is printing, and you have no idea if it’s working or hung. A spinner fixes that...

Read on Medium →

Stop Building Spinners From Scratch in Flutter; Use unicode_spinner

Every Flutter app eventually needs a loading indicator. And every Flutter developer eventually writes the same 30-line AnimationController boilerplate, tweaks it, copies it to the next project, tweaks...

Read on Medium →

The 10ms trick that makes your webhook endpoint unkillable

Every backend engineer eventually writes a handler that does “too much” in the request path — and then watches it fall over at 2am when traffic spikes. The fix is a pattern so common it’s practically...

Read on Medium →

I turned my gaming PC into a private AI coding server, and it actually works

Most developers hear “run your own LLM locally” and picture a research lab, a rack of A100s, and a cooling bill that needs its own line item. My setup is a Ryzen 5 5600, 16 GB of RAM, and an RTX 3060...

Read on Medium →

Production SQS Consumer Patterns in Node.js: Lessons from Processing Media at Scale

Most SQS consumer tutorials show you how to poll a queue and process messages. They don’t show you what happens when a message fails halfway through a 10-minute media processing job. They don’t show y...

Read on Medium →

Cross-Cloud Serverless: Connecting Firebase, AWS SQS, and GCP Vertex AI in One Pipeline

Cloud providers want you to stay inside their ecosystem. Their documentation assumes it. Their pricing models reward it. Their SDKs are designed for it.But in practice, the best solution to a problem...

Read on Medium →