Backend engineer building event-driven systems that don't fall over.
Backend engineer working across event-driven systems, payments, telemetry, and spatial queries. Day job: an EV leasing startup. Side projects: a road trip planner doing sub-100ms PostGIS lookups, a flatmate finder built on corporate email verification, and a date-safety app running on zero-budget infra. Three years in, two startups, one ongoing love affair with NestJS and Postgres.
Road trip planner for Indian highways that breaks long drives into smart, vehicle-aware checkpoints. Solo-built backend, frontend, design, and infra.
Corporate-verified flatmate finder for Gurgaon. Trust-first model: verify your work email, then list a room or browse listings. Solving the 'is this person actually who they say they are' problem in flat-hunting.
Date planning + safety app for Indian metros. Discover verified date venues, share live check-ins with trusted contacts, and get nudged to confirm safety mid-date.
“How I handle incidents, post-mortems, and 3 AM PagerDuty calls.”
🔥Our reconciliation job stopped marking ~3% of successful Easebuzz transactions as settled. Payments completed on gateway, but our system kept them as pending and users received duplicate reminders.
~75 transactions/day were misclassified for 3 days before alerts. Around Rs.4.2L looked unreconciled, support tickets rose by ~40%, and user trust took a hit even though no money was actually lost.
Easebuzz changed webhook field casing in a minor SDK update (`paymentStatus` to `payment_status`). Our parser lacked fallback mapping; failures were logged but not alerted, so signal got buried.
Parse-failure logs without alerting create fake confidence. Every external integration now has a parse-failure SLI with a hard threshold.
A downstream partner API went down for 11 minutes. Our unbounded retry logic stacked retries and then burst 12K queued attempts in 90 seconds when service recovered.
Partner-dependent flows saw 18 minutes of effective downtime. RabbitMQ queue depth spiked 40x; there was no data loss but recovery extended due to self-inflicted throttling.
Retry strategy had exponential backoff but no jitter, no max attempts, and no circuit breaker. Failures kept amplifying traffic while dependency remained down.
Retries without circuit breakers amplify dependency outages. Bulkheads and bounded retries are now defaults for partner integrations.
A routing refactor in our GMS inventory adapter caused some `getInventoryByLocation` reads to resolve against the wrong tenant schema. Tenant A could briefly see line items from Tenant B.
6 tenants were affected and around 200-300 line items were exposed read-only. No write corruption occurred, but disclosures were required for enterprise clients plus a security review.
Tenant context moved from request scope to a singleton cache of last seen tenant for perceived performance gains. Under concurrency, stale tenant IDs leaked across requests on the same Node worker.
Tenant context is security-critical state and must remain request-scoped. Any performance optimization touching tenant scoping now goes through security-sensitive review.
A scheduled bulk fleet sync started during a manual backfill. Producers outran consumers and telemetry queue depth climbed from ~500 to ~480K in about 25 minutes.
No data loss due to durable RabbitMQ queues, but consumer lag reached 22 minutes and broker disk usage rose from 18% to 71%. Real-time dashboards lagged for roughly 90 minutes.
Two heavy workloads collided against consumers sized for steady-state traffic. Producer-side backpressure and queue-depth autoscaling were missing.
Steady-state capacity planning is not enough for bursty systems. Backfills now avoid peak fleet-write windows and rate limits protect queue health.
I've worked with Pushpander across two companies now and the pattern's the same: he picks up ambiguous, half-spec'd backend problems and ships them clean. The inventory module he architected at Alt is the kind of thing most engineers would over-engineer or under-think - he somehow does neither. Also, he asks the right questions in design reviews. The annoying right questions.
Working alongside Pushpander on the GMS rollout was the calmest cross-team launch I've been part of. He sweats the unsexy stuff - schema versioning, retry semantics, dead-letter handling - which means by the time you're on call, there's nothing weird to figure out at 2 AM. Solid teammate, faster than he gives himself credit for.
Pushpander and I built Verinet - a corporate-verified social platform - together over a few months, and I learned more about backend system design from him in that window than from any course. He thinks in trade-offs, not absolutes. Want a Postgres-vs-Redis call broken down with actual reasoning? He'll give it to you in five minutes flat.
Knew Pushpander since college and watched him grow through Prodo and Alt Mobility. What's stayed consistent: he's curious about systems other people consider boring - payment reconciliation, queue ordering guarantees, telemetry pipelines. That's the rarest quality in a backend engineer. The boring infra is where the real money and real failures live.
“FACT: These are the only frameworks worth your time.”
Currently open for freelance backend gigs and exploring SDE2 roles. The owl reads everything within 24 hours, usually faster.
“Why waste time say lot word when few word do trick?”