index.projects.writing.contact.

writing · 2025 — 2026

Thinkingout loud.

Architecture notes from systems I actually ship — ingest vs process, model output vs facts, and workers that survive retries.

RSS feed · 6 essays

Full-Stack · 2 Apr 2026 · 4 min read

Making a MERN app fast without rewriting it

The wins that actually moved the needle on a production MERN app: indexes before microservices, route-level code splitting, pagination defaults, and stopping the N+1 populate spiral.

read essay →
Architecture · 18 Mar 2026 · 3 min read

Accept the invoice. Process it later.

Why invoice ingest should return in tens of milliseconds, how SQS plus an idempotency key beats a heroic HTTP handler, and when Kafka is the wrong default.

read essay →
AI / ML · 12 Feb 2026 · 3 min read

Invoice extraction is a validation problem

GPT-4 Vision proposes fields. Arithmetic, schema, and a human queue decide what is true. OCR is the fallback, not the strategy.

read essay →
Serverless · 20 Jan 2026 · 3 min read

Cold start is a pool-sizing problem

Self-hosted functions feel fast when you keep warm containers and measure spawn time. They feel like Lambda's worst days when you boot Docker per request.

read essay →
Engineering · 8 Dec 2025 · 3 min read

Write workers you can replay

Retries, poison messages, and 3am debugging all get easier when a job is a pure function of stored inputs — not of whatever the process happened to remember.

read essay →
Observability · 3 Nov 2025 · 2 min read

Watch the queue, not the CPU

Pretty Grafana boards do not wake you for the right outage. Queue age, DLQ depth, and validation fail rate do — here is the small set we actually page on.

read essay →

new essays

A note when I publish. No drip campaign.

This sends your address to me — the same inbox as abhijeet4rana@gmail.com. I won't sell it. You can also use the RSS feed.