Blogs
Technical writings and thoughts
Inside the Event Loop: Why Your Node Server Stalls Under Load
Jun 29, 2026
• 6 min read
Express Middleware That Actually Scales: The Error Handling Playbook
Jun 26, 2026
• 6 min read
Streaming Files in Node Without Blowing Your Memory Budget
Jun 23, 2026
• 6 min read
Killing Node Servers Politely: Graceful Shutdown and Zero-Downtime Deploys
Jun 20, 2026
• 6 min read
From console.log to Observability: Structured Logging That Pays Off
Jun 17, 2026
• 7 min read
Why Your React App Re-Renders and How to Stop It
Jun 14, 2026
• 6 min read
Choosing the Right State Management Pattern in React
Jun 11, 2026
• 6 min read
Stop Fetching Data in useEffect: A Better Approach
Jun 8, 2026
• 6 min read
Building a Secure MERN Authentication Flow With JWT
Jun 5, 2026
• 6 min read
Taming React Forms: From Controlled Inputs to Schema Validation
Jun 2, 2026
• 6 min read
Modeling Mongoose Schemas Without Regret
May 30, 2026
• 6 min read
Why Your MongoDB Query Is Slow And How To Tell
May 27, 2026
• 6 min read
The Aggregation Pipeline Is Just Unix Pipes For Data
May 24, 2026
• 6 min read
Choosing Between SQL And NoSQL Without The Dogma
May 21, 2026
• 6 min read
Connection Pooling Is The Setting That Saves Your Database
May 18, 2026
• 6 min read
Stop Guessing: Reading Postgres Query Plans Like a Pro
May 15, 2026
• 6 min read
Postgres Isolation Levels Explained Through Real Race Conditions
May 12, 2026
• 6 min read
Designing Postgres Schemas in Prisma Without Painting Yourself Into a Corner
May 9, 2026
• 6 min read
Caching With Redis When Cache Invalidation Is the Hard Part
May 6, 2026
• 6 min read
Redis Is Not Just a Key-Value Store: The Data Structures You Are Ignoring
May 3, 2026
• 6 min read
What Actually Happens When You Produce a Kafka Message
Apr 30, 2026
• 6 min read
Splitting Work Without Losing Order: Consumer Groups Demystified
Apr 27, 2026
• 6 min read
At-Least-Once Is Lying To You: Kafka Delivery Guarantees
Apr 24, 2026
• 6 min read
Designing Services That Talk Through Events, Not Calls
Apr 21, 2026
• 6 min read
Storing the Story, Not Just the State: Event Sourcing in Practice
Apr 18, 2026
• 6 min read
Routing Messages the RabbitMQ Way: Exchanges, Queues, and Bindings
Apr 15, 2026
• 6 min read
RabbitMQ or Kafka? Picking the Broker That Fits Your Workload
Apr 12, 2026
• 6 min read
When Messages Go Bad: Dead Letter Queues and Poison Handling
Apr 9, 2026
• 6 min read
Running Background Jobs in Node with BullMQ and Smart Retries
Apr 6, 2026
• 6 min read
Process Once, Receive Many: Building Idempotent Consumers
Apr 3, 2026
• 6 min read
What the TCP Three-Way Handshake Actually Negotiates
Mar 31, 2026
• 6 min read
When Throwing Away Reliability Is the Right Call: UDP in Practice
Mar 28, 2026
• 6 min read
How HTTP/2 Multiplexing Killed Head-of-Line Blocking at the App Layer
Mar 25, 2026
• 6 min read
Inside the TLS Handshake: How HTTPS Earns Your Trust
Mar 22, 2026
• 6 min read
From Hostname to IP: What Really Happens When You Resolve a Domain
Mar 19, 2026
• 6 min read
Pushing Bytes in Real Time: Socket.IO Beyond the Echo Demo
Mar 16, 2026
• 6 min read
When JSON Is Too Slow: A Backend Engineer's Tour of gRPC
Mar 13, 2026
• 6 min read
Spreading the Load: How Backends Decide Which Server Gets Your Request
Mar 10, 2026
• 6 min read
Nginx in Front: Turning One Public Port Into Many Services
Mar 7, 2026
• 6 min read
The Front Door and the Phone Book: API Gateways and Service Discovery
Mar 4, 2026
• 6 min read
Shrinking Your Node Image From 1GB to 80MB
Mar 1, 2026
• 6 min read
Your Whole Stack in One Command With Compose
Feb 26, 2026
• 6 min read
From Git Push to Live Server Without Touching SSH
Feb 23, 2026
• 6 min read
Stop Committing .env Files: A Saner Way to Handle Secrets
Feb 20, 2026
• 6 min read
Why Your Server Breaks at Two Instances and How to Fix It
Feb 17, 2026
• 6 min read
Why Your Webhook Endpoint Trusts Forged Payloads (And How HMAC Fixes It)
Feb 14, 2026
• 6 min read
Rate Limiting Is Not a Feature, It Is Your First Line of Defense
Feb 11, 2026
• 6 min read
bcrypt or argon2: Picking the Right Password Hash in 2026
Feb 8, 2026
• 6 min read
The Monolith You Have Beats the Microservices You Can't Operate Yet
Feb 5, 2026
• 6 min read
Stop Stuffing the Prompt: How RAG and Vector Search Actually Work
Feb 2, 2026
• 6 min read