GET/blog · rss.xml

Writing

60 articles on backend engineering, payments, DevOps and security, written from real projects.

60 articles

Oct 22, 2026

Node.js October 2026 Security Release: 10 CVEs and How to Mitigate Them

Node.js 22.23.4, 24.22.1 and 26.12.1 fix 10 CVEs, including a Brotli RCE and TLS hostname bypasses. What changed and how to update.

Oct 22, 2026

PHP RCE CVE-2026-109618 and CVE-2026-109619: Patch Now

PHP 8.5.12, 8.4.27, 8.3.36 and 8.2.35 fix two critical RCE bugs that are already under attack. What they are, who is affected and how to patch.

Oct 19, 2026

NestJS Locks: Run a Cron Job on One Instance Only

The new official @nestjs/locks package explained: why cron jobs run once per replica, then @OnOneInstance, @WithoutOverlapping, @LeaderElection, withLock and fencing tokens.

Oct 18, 2026

Don't Store Invoice Status: Derive It from Payments in TypeScript

Why a stored invoice status drifts out of sync, and how to derive paid, partial and past due from payments with small TypeScript functions and integer cents.

Oct 18, 2026

Outbox Pattern: Save Data and Publish Events Reliably

How to save to the database and publish an event without losing either: the outbox pattern, a polling relay, idempotent consumers, with diagrams and code.

Oct 18, 2026

PostgreSQL vs MySQL: How They Really Differ and How to Choose

A hands-on comparison of PostgreSQL and MySQL: connections, MVCC and VACUUM vs undo logs, heap vs clustered storage, indexes, JSON, replication, migration gotchas and a decision flow, with animated diagrams.

Oct 18, 2026

Receiving Email in a Node App with Amazon SES and SNS Webhooks

How I built a threaded email inbox on Amazon SES: verify SNS webhook signatures, parse raw mail, sanitize HTML and thread replies, with the real code.

Oct 18, 2026

S3 and CloudFront CDN: Serve Files Fast, Safe and Cheap

Set up S3 and CloudFront the right way: a private bucket, origin access control, cache rules, a CI deploy workflow, HTTPS and uploads, with full diagrams.

Oct 18, 2026

A Sale as One Database Transaction in NestJS and TypeORM

How a point-of-sale checkout stays consistent: customer, stock, totals and invoice in one TypeORM transaction, plus the race condition most examples miss.

Oct 18, 2026

System Design for Backend Engineers: From One Server to Millions of Users

Learn system design by scaling one server step by step: estimates, caching, queues, replicas, sharding, failure handling and a worked URL shortener.

Aug 26, 2026

Config Malware in ESLint & PostCSS: How It Spreads, How We Scanned It, and How to Stop Reinfection

A full incident walkthrough of obfuscated JavaScript malware in ESLint/PostCSS configs — plus public NestJS and Next.js golden templates with CI scanners and PR-only main.

Aug 24, 2026

Instant Failover Between Two Servers: Cloudflare Tunnel + a Real-IP Backup

A practical high-availability setup where a main server hides behind Cloudflare Tunnel with nothing else in front of the app, and a secondary server on a real public IP runs Caddy or Nginx — with Cloudflare Load Balancing doing edge-side, near-instant failover between the two.

↑↓ navigate↵ openesc closeCtrl K toggles this menu