Book: TypeScript Essentials — From Working Developer to Confident TS, Across Node, Bun, Deno, and the Browser Also by me: The TypeScript Library — the 5-book collection My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub You add a new status to your app. The string "archived" goes Two days later a teammate
Book: RAG Pocket Guide: Retrieval, Chunking, and Reranking Patterns for Production Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub When the embedding API itself collapses, the moments-based detec
Book: Prompt Engineering Pocket Guide: Techniques for Getting the Most from LLMs Also by me: Thinking in Go (2-book series) — Complete Guide to Go Programming + Hexagonal Architecture in Go My project: Hermes IDE | GitHub — an IDE for developers who ship with Claude Code and other AI coding tools Me: xgabriel.com | GitHub A finance team at a mid-sized SaaS feeds 40,000 expense receipts a
Most dev teams I've worked with communicate updates through a Slack message or a Notion doc that clients never open. Stack: Next.js 14 App Router Supabase (auth + DB + RLS) Tiptap (rich text editor) Tailwind CSS + shadcn/ui The cherry on top was the bug that kept me up at night. Tiptap's getHTML() was saving content to Supabase as escaped HTML entities, so <strong> became <strong> and render
Cuando una aplicación necesita leer un archivo, escribir en una conexión TCP o esperar datos de un disco, el kernel de Linux ofrece tradicionalmente dos caminos: bloquear el proceso hasta que la operación termine, o usar interfaces como epoll y Linux AIO para manejar múltiples operaciones concurrentes. Durante casi tres décadas, esas fueron las opciones dominantes. Pero desde la versión 5.1 del ke
When Google announced the Manifest V3 deadline, the developer community had a lot to say — most of it negative. The service worker model was rightly criticized as a regression for ad blockers and complex extensions. I've now migrated 18 extensions from MV2 to MV3, or built them MV3-native from the start. The commonly documented issues (no persistent background pages, limited webRequest) are real.
The Autonomous Paradox In 2026, we’ve moved past simple chatbots. We are building Production-Grade RAG pipelines and autonomous agents that can plan, execute, and iterate. But as an architect, I’ve noticed a glaring hole in our "Agentic" future: Identity Sprawl. We are giving agents non-human identities (NHI) with "Full Admin" permissions just to ensure the RAG works smoothly. We are effectively
Most "online ruler" pages look simple: draw a rectangle, add centimeter ticks, add inch ticks, done. That works only if every screen maps CSS pixels to real-world size in the same way. They do not. A 13-inch laptop, a 27-inch external monitor, a phone, a tablet, and a 4K display can all render the same CSS width with different physical sizes. Browser zoom, operating-system scaling, Retina-style di