How USB-C Power Negotiation Works: Inside the CC PinTL;DR: USB-C devices don't melt when connected to high-wattage chargers because of dynamic negotiation over a dedicated Configuration Channel (CC) pin. Using the USB Power Delivery (PD) protocol, the Jul 26, 2026·5 min read
How to Fix the Thundering Herd (Cache Stampede) ProblemThe thundering herd problem happens when a highly cached data item expires, forcing millions of concurrent requests to bypass the cache and slam your database at once. You can solve this by implementiJul 20, 2026·4 min read
Automate Video Editing with Whisper, LLMs, and FFmpegTL;DR: To stop viewers from getting bored staring at my face during short technical videos, I built a system that parses my transcripts, generates relevant illustrations using AI, and splices them intJul 19, 2026·4 min read
How Quorum Prevents Split-Brain in Distributed SystemsQuick Answer: A split-brain scenario occurs when a network partition isolates server nodes, leading multiple nodes to assume the "leader" role and accept conflicting writes. To prevent this data corruJul 19, 2026·6 min read
Why You Should Never Use a Database as an APITL;DR: Sharing databases across team boundaries bypasses service interfaces, turning database schemas into public APIs. This tightly couples services, halts schema migrations, and stalls development. Jul 19, 2026·5 min read
Should You Use Custom ID Types or Plain Strings?Should you use a custom ID type or just stick to strings? Sticking to raw strings is simpler and faster to write, but wrapping your IDs in a custom domain type prevents developer mistakes—like runningJul 19, 2026·5 min read
When to Use an ORM vs SQL and Query BuildersORMs like Prisma and Hibernate are excellent for simplifying basic CRUD operations. However, for complex queries involving window functions, CTEs, or deep joins, ORMs often get in the way. For advanceJul 19, 2026·5 min read