Featured · Backend

Internal admin panels start as “just a page to refund that order” and become the highest-privilege service you run—often with weaker auth than customer login. Attackers know this. So do bored employees. A minimal admin can be safe if you treat it as production security work, n...

All articles

Backend · Security

Building a minimal internal admin without becoming the next breach headline

Internal admin panels start as “just a page to refund that order” and become the highest-privilege service you run—often with weaker auth than customer login. Attackers know this. So do bored employees. A minimal admin can be safe if you treat it as production security work, n...

Security · Backend

Rotating secrets without downtime: dual-read, dual-write, and cutover

Secret rotation fails when only one value is valid at a time and instances roll slowly. The safe pattern is **overlap**: accept old and new during a window, then drop old. This article shows that dual-read pattern with a tiny lab and a deploy order you can reuse for API keys,...

Databases · Migrations

Schema changes that do not lock production tables

Schema changes on hot tables fail in two popular ways: a blocking `ALTER` that stalls writes, or a deploy that reads a column the database does not have yet. Online-safe migrations are mostly **ordering discipline**—expand, dual-write or backfill, contract—not clever one-liners.

Backend · Release

Feature flags as kill switches: ownership, defaults, and cleanup

Feature flags are often sold as experimentation. In production backend systems their highest value is a **kill switch**: turn off a dangerous path without rebuilding binaries under stress. That only works if evaluation order is correct, defaults are safe, and someone owns clea...

Databases · Migrations

The database cutover checklist I actually run before flipping traffic

Database cutovers fail for social reasons as often as technical ones: unclear ownership, no rollback criteria, and “we will watch dashboards” without a written abort line. This article is a **checklist you can paste into a runbook** for moving traffic between database endpoint...

Backend · Observability

Debugging a production timeout when there is no stack trace

Timeouts often arrive without a stack trace. The client sees 504, the load balancer says upstream timed out, and your process is still healthy enough to answer `/healthz`. Local CPU flame graphs look fine. The useful question is not “why is Node broken?” but **which hop spent...

Backend · APIs

Idempotent callbacks for payments and webhooks without a magic framework

Payment providers and internal webhooks retry. They retry because your endpoint timed out, because their network blipped, or because their policy says “at least once.” If your handler charges, ships, or emails on every delivery, duplicates become customer-facing bugs. Idempote...

Backend · Caching

When not to cache: three times caching made the system worse

Caching is a performance tool, not a default layer for every read. Used in the wrong place it serves stale prices, stampedes the database when TTLs align, or hides an unaffordable query until the day the cache is cold. This article walks three failure modes with a small Node l...

Library topics

15/15 published · calendar

Original essays by Cole and Jerry. Each topic aims for first-hand evidence—labs, plans, configs, or checklists. See the updates log for what shipped and what is scheduled next.

  1. 01

    Backend · Observability · published

    Debugging a production timeout when there is no stack trace

    Walk one real incident from first alert to root cause using logs, metrics, and a narrow reproduction—not a generic debugging checklist.

  2. 02

    Databases · Migrations · published

    The database cutover checklist I actually run before flipping traffic

    A field checklist from a real cutover (or dry-run on a copy), including rollback and data-diff steps—not a vendor migration brochure.

  3. 03

    Backend · Kubernetes · published

    Your health check is lying: making readiness mean something

    Show a service that returned 200 while unable to serve traffic, and the readiness design that fixed it.

  4. 04

    Backend · APIs · published

    Idempotent callbacks for payments and webhooks without a magic framework

    Design and implement idempotency for one concrete callback flow you own, including duplicate delivery tests.

  5. 05

    Databases · Performance · published

    Connection pool math that keeps databases alive under load

    Derive pool size from real concurrency, not blog defaults. Include a near-miss or outage where pools exhausted the DB.

  6. 06

    Observability · Backend · published

    Structured logging that shortens on-call instead of filling disks

    Before/after log samples from a service you run, and the fields that made an incident diagnosable in minutes.

  7. 07

    Backend · Release · published

    Feature flags as kill switches: ownership, defaults, and cleanup

    How you use flags to ship and abort safely, including a flag that saved a release—or one that caused confusion.

  8. 08

    Backend · Distributed systems · published

    Backpressure in practice: queues, 429s, and client retries that do not stampede

    One pipeline or API where load exceeded capacity, and the concrete backpressure path you implemented.

  9. 09

    Databases · Migrations · published

    Schema changes that do not lock production tables

    One migration you shipped online (expand/contract or tool-assisted), with timing and lock risks called out.

  10. 10

    Backend · Caching · published

    When not to cache: three times caching made the system worse

    Counter-intuitive cases from your systems where removing or narrowing cache fixed correctness or latency.

  11. 11

    Databases · MySQL · published

    Reading EXPLAIN for one slow query until the plan matches the business path

    Single slow query, full EXPLAIN (or EXPLAIN ANALYZE) walkthrough, index or rewrite that fixed it, with before/after timings.

  12. 12

    Incidents · Operations · published

    A postmortem template engineers will actually fill out

    Template shaped by real postmortems you ran; show one anonymized filled example.

  13. 13

    Security · Backend · published

    Rotating secrets without downtime: dual-read, dual-write, and cutover

    Rotate one real secret class (DB password, API key, JWT signing key) with overlapping validity.

  14. 14

    Performance · Reliability · published

    Load testing the right question: capacity, soak, and the failure you care about

    One load test you designed around a business risk, not a vanity RPS number.

  15. 15

    Backend · Security · published

    Building a minimal internal admin without becoming the next breach headline

    Ship a small internal tool with authz, audit log, and dangerous-action guards from day one.