What I write about
Recent writing
Stop Guessing How JavaScript Parses Numbers Here's What Actually Happens
A deep dive into JavaScript's Number(), parseInt(), and parseFloat() functions, explaining how they handle strings, whitespace, and the special NaN value.
Why My Node.js API Calls Randomly Failed — And My Code Was Fine
A real debugging story about intermittent ETIMEDOUT errors, Cloudflare DNS, and a fix that took 5 minutes once I knew what to look for.
Deploying a Full-Stack App on a VPS — The Right Way
If you're deploying your first real project, or you've deployed before but never felt confident about why you're doing what you're doing — this is for you
Row Level Security in PostgreSQL: Multi-Tenant Data Isolation Done Right
How to implement per-tenant data isolation at the database layer using PostgreSQL RLS — without leaking data across tenants or killing performance.
OAuth 2.0 Flows Explained Without the Hand-Waving
A clear breakdown of Authorization Code, Client Credentials, and PKCE flows — when to use which, what the tokens actually mean, and where implementations go wrong.