$ trace --live prateek-deshmukh · available_for_work · bengaluru, IN

span_01 · identity.resolve() · 200 OK

Prateek
Deshmukh

backend & applied-AI engineer · bengaluru, IN

I build the parts that break in production — and fix them before they do again.

GET /resume GET /journal

Where I’ve worked

span_02 · experience.query() · querying… · 3 records
logging since Jun 2026 running

Engineering Intern · NatWest Group

Making retrieval inside a bank’s agent platform persistent, hybrid, and fast.

  • Migrating Synapse — NatWest’s internal agentic orchestration layer — from an in-memory vector store to PostgreSQL + pgvector: persistent, scalable semantic retrieval across enterprise AI workflows.
  • Replaced Spring AI’s default retrieval with a custom hybrid search pipeline — PostgreSQL full-text (tsvector) fused with BM25 ranking.
  • Wired Synapse into AWS Agent Registry for runtime discovery and routing of specialized agents across enterprise domains.
  • Building the Capability Registry: a central catalog of enterprise APIs that lets Synapse plan multi-step workflows on its own.
javaspring bootpostgresqlpgvectorbm25aws
logged Apr → May 2026 done · 200

AI Engineer · Together Fund

Teaching a venture fund’s network to answer “who can intro me?” by itself.

  • Built an autonomous talent-discovery agent on the Anthropic Agents SDK — sources and enriches candidates from LinkedIn, GitHub and personal sites, improving profile completeness by 40–60%.
  • Engineered a relationship-intelligence platform that models the fund’s network (2000+ people) as a graph and finds the shortest introduction path to any founder, operator or investor.
pythonanthropic agents sdkgraphsscraping
logged Sep 2025 → Mar 2026 done · 200

AI Engineer · faff

AI? Backend? Devops? Frontend? Infra? Testing? Yes.

  • Rebuilt the unacknowledged-message pipeline (Unack v2) — our detection of unacknowledged messages dropped from taking ~2 minutes to under 200 ms. Roughly 600× faster.
  • Built the recurring-task engine: standing routines like “milk every Mon/Wed/Fri” or “laundry, Saturdays at 2” compile into child tickets on preset schedules — and nudge the ops team before anything slips.
  • Built internal finance: thousands of weekly vendor payouts reconciled against customer wallets, with per-employee attribution so reimbursements stopped being anarchy.
  • Shipped customer-facing LangGraph agents that resolve support tickets end-to-end, wired directly into the internal platform.
  • Led the Razorpay → Cashfree migration: payment processing, webhook validation, automated GST invoicing through Zoho.
  • Integrated Vapi voice agents with Google Maps APIs for vendor outreach — +25% accuracy across multilingual conversations.
pythonfastapipostgresqllanggraphvapicashfree

Things that (almost) broke

span_03 · incidents.tail() · tailing… · 3 resolved
faff · webhooks.core

The 36-hour refactor

The one where I realized you don’t get to pause customer messages while you rewrite the service that receives them.

show the log hide the log
T+00:00 OPEN every customer WhatsApp message flows through one 4,500-line script. one file. zero seams.
T+29:00 SHIP same behavior, now a modular service — swapped in behind the old interface
T+36:00 CLOSE 7+ hours of regression testing and code review. zero dropped messages.
faff · db.cutover

The 2 a.m. DB migration

The one where I migrated millions of rows from Mongo to Postgres. A migration should never be a bet you win by luck. I rehearsed the rollback until it was boring.

show the log hide the log
fri 01:58 FREEZE messages table, MongoDB. millions of rows. cutover window opens.
fri 02:04 CUT Postgres takes writes. killswitch under my thumb the entire time.
fri 02:47 VERIFY row counts match. reads clean. the killswitch was never pressed.
faff · rca.upstream

The bug that wasn’t ours

The one with the broken feature and a bug. The bug doesn’t care whose repo it lives in. An RCA that stops at your own walls is just half a document.

show the log hide the log
day 0 SEV downstream service misbehaving. nothing in our diffs. nothing in our logs — at first.
day 0 TRACE followed the failure out of our stack and into an external vendor’s system
day 1 CLOSE filed with full logs and a repro. vendor confirmed, patched, resolved.

Writing

span_04 · journal.recent() · fetching… · 1 entry

Things I’ve built

span_05 · projects.scan() · scanning… · 7 shipped
and 4 more

Hermes

LangChain agent that ingests WhatsApp webhooks, infers intent, and updates the ticketing system — status, ETA, assignee — without human hand-holding.

origin=faff · 403 private

Faff Chat

Real-time chat with Socket.io plus semantic thread recall via SentenceTransformers.

GET github.com/prateekdesh/faff-chat ↗

prats.blog

My corner of the internet — writing on tech and startups. Started life as a hand-rolled React + FastAPI CMS; rebuilt in Astro when the writing mattered more than the plumbing.

GET blog.prateekdeshmukh.com ↗

Vapi Voice Outreach

Voice agents wired into Google Maps data to automate vendor calls; prompts and transcribers tuned for regional accuracy.

origin=faff · 403 private

What I use

span_06 · capabilities.manifest() · loading… · 200 OK
# backend first — the agents are only as good as the systems underneath them.
[backend] python · typescript · java · sql · fastapi · node.js · spring boot
[infrastructure] postgresql · redis · rabbitmq · sqlite · docker · aws · gcp · cloudflare · linux
[ai_systems] agentic systems · langgraph · mcp · rag · pydantic · webhooks · microservices
[frontend] react · next.js · svelte · tailwind

Where I studied

span_07 · education.lookup() · looking up… · 1 record

SRM Institute of Science and Technology

B.Tech, Artificial Intelligence · 2023 — 2027 · kattankulathur

█████████ 9.04 / 10 cgpa

Let’s build something worth breaking.

span_08 · contact.open() · opening… · 202 Accepted

Open to interesting problems. Hit me up.

POST /hooks/contact HTTP/1.1 · content-type: application/json
{
"email": "prateek.deshmukh19@gmail.com",
"github": "github.com/prateekdesh", [ open ↗ ]
"linkedin": "linkedin.com/in/prateekdeshmukh-", [ open ↗ ]
"twitter": "x.com/prateekdesh19" [ open ↗ ]
}
session.end()
spans=8 · incidents=3 (all resolved) · region=bengaluru
© 2026 prateek deshmukh · built with sveltekit, traced end-to-end · credits: fable 5