Mumbai, India.
Full Stack Developer Intern
Krityam Solutions and Services
Challenge — Shared UI and types drifted out of sync across the builder and landowner apps as the monorepo grew.
Solution — Introduced a shared internal package with Turborepo's build cache and pipeline scoping, so changes propagate to every app on the next build without manual copying.
Challenge — Convex's real-time subscriptions caused unnecessary re-renders on large landowner dashboards.
Solution — Scoped queries down to the exact fields each view needed and memoized derived state, cutting re-renders significantly.
Challenge — Webhook bursts from upstream product feeds occasionally arrived out of order, corrupting inventory state.
Solution — Added Hookdeck-backed queuing with per-product ordering keys and idempotent upserts, restoring consistent state under load.
Challenge — Cold-start latency on the AWS inference containers made recommendations feel sluggish on first request.
Solution — Kept a small warm pool alive with scheduled pings and moved embedding lookups to Qdrant so only the final ranking hit the container.
B.Tech in Computer Engineering
Vidyalankar Institute of Technology
Mobile App where Trip Organizers plan Itineraries for Like-minded Travelers
Challenge — Duplicate Razorpay webhook deliveries occasionally double-booked a seat before the payment record was finalized.
Solution — Generated idempotency keys per checkout session and made the booking write a single atomic upsert keyed on that ID, so retried webhooks became safe no-ops.
Challenge — Held seats that were never paid for stayed locked and blocked other travelers from booking.
Solution — Added a cron job that sweeps expired holds on an interval and releases them back to the pool, with a short grace window to avoid racing an in-flight payment.
Challenge — Redis-backed presence indicators drifted from real WebSocket connection state after reconnects.
Solution — Tied presence TTLs to heartbeat pings from the client and reconciled state on every reconnect, so stale 'online' indicators expire automatically.
Beyond the work — how I actually think, build, and operate.
Before writing a single line of code, I'm already deep in Figma — pushing pixels, crafting flows, and obsessing over spacing. Design isn't a step for me, it's a mindset.
The more I built apps, the more I started asking why they work at scale. That curiosity pulled me into system design — rate limiters, queue architectures, caching strategies. It's just applied curiosity.
When I'm stuck, I close the laptop and reach for a notebook. There's something about drawing boxes and arrows by hand that unlocks thinking no IDE can replicate. Analog is underrated.
Night owl engineer, unironically. The city goes quiet, the distractions disappear, and suddenly the cursor is flying. Some of my best work ships between midnight and 3 AM.