JJS
Jatin Jain Saraf

Jatin Jain Saraf

Senior Software Engineer · SupraScan Architect

I build the systems that make blockchains queryable. Written from the pager alerts, not the docs — every course module and article here cost an incident first; these are the notes I wish I'd had before it did.

Credentials

Senior Software Engineer, Supra (via CodeZeros)

Lead architect of SupraScan — Supra Blockchain's native explorer and indexer, running PostgreSQL at 20–30 TB scale.

6+ years in production engineering

From enterprise B2B platforms (Rapidops — Kroger, Salesmate CRM) to high-throughput Web3 indexing infrastructure.

Author, In-Depth course series

PostgreSQL, Node.js, Next.js, Redis, Docker, and Data Structures & Algorithms — free, documentation-style courses built from production incidents.

B.E. in Information Technology

Truba Institute of Engineering and Information Technology, Bhopal — 7.76 CGPA.

Courses I've written

All courses

Recent articles

All articles
Your ORM Isn't Lying to You. It's Just Not Telling You Everything.ORMs like Prisma and TypeORM don't lie to you about your database, they just don't tell you everything. Here's where that gap shows up in production: N+1 queries, migrations that silently drop columns, connection pool exhaustion in serverless, and the SQL your ORM actually generates versus what you think it's running.The Dual-Write Problem: Why "Update the DB, Then Publish an Event" Is BrokenAn order gets saved to Postgres. The event that's supposed to tell payments, shipping, and notifications never goes out, because the process crashed one line later. Here's why that gap exists, and the two real patterns (Outbox, Sagas) that close it.Elasticsearch Isn't Dead. You Probably Don't Need ItSearch gets slow, someone says 'we need Elasticsearch,' and two weeks later there's a new cluster, a sync pipeline, and a class of bugs that didn't exist before. PostgreSQL's tsvector, GIN indexes, and pg_trgm cover the full-text and fuzzy-matching workload most teams actually have, without a second database to keep in sync. This is the case for starting there and adding Elasticsearch only when the workload actually demands it.Why Your Docker Image Is 3GB and Nobody Noticed Until the Deploy Timed OutA deploy that used to take ninety seconds now takes six minutes, and nobody changed the code. The real story is in how Docker layers, build caching, and registries accumulate weight that never comes back off on its own, plus how to actually measure it before you guess.Why Postgres and Cassandra Made Opposite Bets on Storage EnginesA write-heavy ingestion table on Postgres starts choking under load: autovacuum can't keep up, WAL grows fast, and every insert costs more than it should. A Cassandra table doing the same job barely notices. The difference isn't tuning. It's a decision made before either database wrote a single line of code: B-Tree or LSM-Tree.The Codebase You Sit In Rubs Off On YouYour habits as an engineer aren't shaped by courses and effort alone; they're shaped by the PRs, teammates, and incidents you sit next to every day.
Get in touch

© 2026 Jatin Jain Saraf (JJS). All rights reserved.