Building This Blog: an MDX‑powered Next.js blog
This blog is a small, opinionated setup for writing long‑form content that feels good to read and fun to build on.
Under the hood it uses static generation, MDX, and a theme‑aware UI that works in both ...
S3 has three overlapping access control systems — bucket policies, IAM policies, and ACLs — and the interaction between them confuses most people the first time. Here's how each one works, when to use which, and the JSON to copy for the most common s...
The Mechanics of Compression: How 100GB Becomes 25GB
In an era of 4K streaming and massive cloud databases, we often take for granted that a 100GB backup can be shrunk down to 25GB. It isn’t magic—and it isn’t just “squeezing” bits. It’s a careful pr...
Five Caching Strategies Every Backend Dev Should Know
If you build backend systems, you eventually run into caching.
Someone says “just put Redis in front of it” and suddenly your app is faster… until you start seeing stale data, cache misses, and we...
A ride-sharing app needs to match riders with drivers in real-time, track locations, process payments, and handle all of this at scale across a city. This is my take on how to architect such a system using microservices — and where a simpler approach...
cursor-claude-personas: Give Your AI Coding Assistant a Domain Expert Brain in 30 Seconds
TL;DR — cursor-claude-personas is a free, open-source collection of 38 role-based AI persona packs for Claude Code, Cursor, and VS Code. Copy one folder into y...
Reorder the fields in a Go struct and the size changes — without changing the data it holds. A bool next to an int64 wastes 7 bytes of padding. Across 10 million allocations, that's 67MB of memory you're paying for but never using.
This matters in hi...
How Files Are Stored, Deleted, and Copied Inside Your Computer
Have you ever noticed something interesting?
Deleting a file happens instantly.
Copying a file takes time.
Moving a file is sometimes instant and sometimes slow.
Why does this happen?
I...
Most startups need to send notifications — order confirmations, alerts, password resets — but don't want to run their own messaging infrastructure. Amazon Simple Notification Service (SNS) solves this: a fully managed pub/sub service where you pay pe...
Deploying a static site to S3 manually means running aws s3 sync from your laptop every time you make a change. That gets old fast. GitHub Actions can automate the entire flow: push to main, and the site builds and deploys itself.
This guide walks th...
Chrome 144 Introduces the <geolocation> Element: Declarative Location Access for Modern Web Apps
Chrome 144 introduces a new declarative <geolocation> HTML element that changes how web applications request location access. Instead of callin...
Go 1.26.2 Released: Security Fixes, Regression Patches, and an Upgrade Playbook
Go 1.26.2 was released on 2026-04-07 as a patch release focused on security and stability.
If you are running Go 1.26.x in production, this is the kind of release you sho...