Soham Narvankar

Software engineer.
Simple and Relevant.

Mumbai, India.

soham.tsx
1const developer = {
2  mission: "Designing Systems"
3  craft: "Building Scalable Software"
4  output: "Shipping Products to Cloud"
5}
--:--:--
journey
July 2025 – April 2026

Full Stack Developer Intern

Krityam Solutions and Services

Web Development
  • TurborepoTurborepoFaster dev cycles via monorepo architecture using Turborepo
  • AstroAstroAstro Framework for content driven and SEO friendly websites
  • 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.

Mobile App Development
  • CloudflareCloudflareServerless APIs with Cloudflare Workers + Hono, reducing cold-start overhead
  • ShopifyShopifyReal-time product sync via Shopify webhooks + Hookdeck — 99% delivery reliability
  • CloudflareCloudflareMedia storage via Cloudflare R2 with CDN-backed image delivery
  • QdrantQdrantAI recommendations using CLIP embeddings + Qdrant vector search
  • AwsAwsProduction ML inference on AWS serverless containers
  • 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.

2023 – 2027

B.Tech in Computer Engineering

Vidyalankar Institute of Technology

  • Specialization in Artificial Intelligence & Machine Learning
  • Core subjects: Java, DBMS, Networks, OS, Algorithms, Distributed Systems, Software Engineering
work
featured · mobile app

Troupe

Mobile App where Trip Organizers plan Itineraries for Like-minded Travelers

  • RazorpayRazorpayRazorpay SDK + webhook handling & idempotency keys
  • PostgresPostgresSeat-holding with cron-job cleanup for expired bookings
  • RedisRedisReal-time chat — WebSockets, Redis presence & queues
  • SupabaseSupabasePresigned URL media uploads via Supabase Storage — reduced server load
  • JwtJwtSecure token-refresh auth flow with JWT
  • 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.

top writing
BackendWhy idempotency keys matter in payment systems
Jul 2025
System DesignBuilding real-time chat at scale with Redis & WebSockets
Jun 2025
DevExMonorepos with Turborepo — what I learnt shipping two products
May 2025
AI/MLCLIP embeddings + Qdrant: AI recommendations without a PhD
Apr 2025
more about me

Beyond the work — how I actually think, build, and operate.

Figma is my playground
Figma is my playground

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.

Applications → System Design
Applications → System Design

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.

Pen & paper > whiteboard
Pen & paper > whiteboard

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.

2 AM is the best time to code
2 AM is the best time to code

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.