Jagrit Vats

Backend engineer at Bajaj Finserv Health, based in Bangalore.

I joined Bajaj Finserv Health as an intern in 2023 and now work on event-driven Spring Boot services that use Kafka. Outside work I build and host my own apps, including TeamTakes, a polling app for engineering teams, and Synpse, an AI companion with over 500 installs on Google Play.

Retry, then dead-letter An event moves from a Kafka topic to a consumer. If processing succeeds, it moves on to the next stage. If it fails, it goes to a retry topic and back to the consumer. When the retries are used up, it moves to a dead-letter queue so it can be replayed. consume succeeds fails retry retries used up Kafka topic workflow events Consumer Spring Boot Next stage processed Retry topic back off, try again Dead-letter queue parked for replay
A simplified version of the Kafka flows I work on. When a consumer can't process an event, the event goes to a retry topic and is tried again. After a few failed attempts it moves to a dead-letter queue, where it can be checked and replayed.

Work

Bajaj Finserv Health

July 2023 to now

  1. Software Development Engineer Intern Jul 2023 to Jun 2024
  2. Associate Software Development Engineer From Jul 2024
  3. Software Development Engineer Current role
  • Design and build asynchronous features on Kafka, with retries, dead-letter queues, Redis and in-memory caching, and multi-step business workflows.
  • Build and maintain Spring Boot microservices, and work on production debugging and distributed tracing.
  • Cut service startup time roughly in half.
  • Automated parts of the release process with Azure Pipelines, OpenAPI/Swagger contract generation and custom scripts.
  • Take part in architecture reviews for new backend modules.
  • As an intern, I built backend modules with async flows, scheduled jobs and business logic.

Angrybaaz Services

Frontend development intern, Nov 2022 to Jan 2023

Built UI components for a Figma plugin, using React, TypeScript and the Figma API.

Projects

TeamTakes Live

Opinionated polls and play-money prediction games for engineering teams.

Each team gets its own subdomain with polls, prediction markets and 1v1 duels. There's also a league that runs across teams. I first built it for one team and made it multi-tenant later, while people were already using it.

  • Row-level security limits every query to teams the user belongs to. The app sends the active team in a request header, and the database ignores it unless the user is a member of that team.
  • A leak test signs in as one team and tries to read and change another team's data through the normal API. A check in the migrations stops the deploy if a table is missing its policy.
  • Most of the game logic, including market pricing and the points ledger, runs in Postgres functions, with pg_cron handling scheduled rounds.

TanStack Start (React 19), self-hosted Supabase (Postgres, Auth, Realtime), Docker Compose, Traefik, Cloudflare, GitHub Actions

How TeamTakes keeps teams apart Requests from team A and team B reach the same Postgres database, each tagged with its active team. Row-level security on every table only returns rows from that team. A leak test probes the database, and a migration check confirms every table has a policy. x-team-id: A x-team-id: B probes checks Team A team-a.teamtakes.app Team B team-b.teamtakes.app Postgres (self-hosted Supabase) restrictive row-level security on every table Leak test signs in as team A, gets no rows from B Migration check deploy stops if any table lacks its policy

ScenePilot Hackathon project, 2026

An AI assistant director that reschedules film shoots when plans change.

I built it for Google Cloud's Agentic Cinema hackathon, in the Parallel partner track. When something disrupts a shoot day, like a rain forecast, Gemini agents look it up on the web and suggest new schedules. A deterministic rule checker then rejects any schedule that breaks a permit window, a noise curfew or the available daylight, and links the source for each rejection. The producer has to approve a change before it's applied.

  • Facts from the web are graded by how well they're sourced. Only a cited, high-confidence fact can reject a schedule. Weaker facts add cost or get flagged for a person to check.
  • The same checker handles recovery options, the multi-day schedule and manual edits.
  • It uses six of Parallel's web APIs, calculates sun position and union labour rules in code, and has more than 600 tests.

Python, FastAPI, Google ADK, Gemini 3.5 Flash, Parallel APIs, Next.js 16, Cloud Run

How ScenePilot decides A rain forecast goes to Gemini agents built with Google ADK, which research it using Parallel's web APIs and suggest new plans. A rule checker tests each plan against sourced facts such as permit windows, noise curfews and sunset. Plan B is rejected because it runs past a curfew. Plan A is kept and waits for the producer to approve it. disruption plans cited facts Rain forecast for day 4 checked against live web sources Gemini agents research, propose plans Parallel APIs web research Rule checker permit windows, cited noise curfews, sunset Plan B rejected past a cited curfew Plan A kept waits for producer

Synpse Live since 2025

An AI companion with long-term memory, on the web, Android and Telegram.

The companion is called Synapy, and the Android app has over 500 installs on Google Play. Users can see, edit and delete what it remembers about them. It also writes daily and weekly journal entries.

  • Memories are ranked by how well they match the message, recency, importance, links to other memories, mood and context. Linked memories are pulled in as well.
  • A background job runs every four hours to merge similar memories and prune old ones.
  • The model provider can be switched between Grok, Gemini, OpenAI and local models through Ollama. Embedding calls have a timeout and a circuit breaker, and Kafka is optional, with an in-process fallback.

Next.js 14, Express, TypeScript, MongoDB, LangChain, Expo (React Native), grammY, Docker, GitHub Actions

How Synpse remembers The web app, Android app and Telegram bot share one Express API. For each message, a retrieval step ranks memories from MongoDB on six signals and builds the prompt for the language model. A background job consolidates memories every four hours. each message reads prompt Web app Android Telegram Express API streams replies as server-sent events Memory retrieval scores six signals: meaning, recency, importance, links to other memories, mood and context MongoDB memories, journals Language model Grok, Gemini or Ollama consolidation job every 4 hours

Also built in 2026

  • ResidentOps

    Handles maintenance issues for a residents' association. When several residents report different faults, it uses a map of the building's equipment to find a shared cause, asks contractors for quotes, and goes to the committee only when money or a judgement call is involved. Spending limits are checked in code, and blocked actions are logged.

    AWS Agents for Humans hackathon. Python, Strands Agents, Amazon Bedrock.

  • Parley

    Lets two AI agents from different vendors talk in a shared room. Their claims have to cite evidence, and the meeting minutes are put together from the event log.

    TypeScript, Hono, MCP, React.

  • SAMAY

    Helps people in India respond to online fraud. It lists the urgent steps, like calling the 1930 helpline and the bank, keeps the evidence in one case, and prepares a report to file on cybercrime.gov.in.

    Build What Moves India hackathon. Next.js, Postgres.

  • Presentic

    A command-line tool that makes narrated demo videos from a JSON plan. Playwright clicks through the real app, Remotion adds captions and zoom, and scene lengths are matched to the narration. It can also run as an MCP server. I've used it for my hackathon demo videos.

    TypeScript, Playwright, Remotion. Private repository.

Older work includes an email template app for Shopify stores (2022), PresentKon for Hack the Mountains 3.0 (2022), the Presto e-commerce site (2022) and a merged fix to next-firebase-auth (2023).

Tools

At work
Java, Spring Boot, Kafka, Redis, MongoDB, REST APIs, multithreading and concurrency, Docker, Azure Pipelines, OpenAPI/Swagger
Side projects
TypeScript, Node.js (Express, Hono), React, Next.js, PostgreSQL and Supabase (row-level security, pg_cron), Python (FastAPI), SQLite
AI
Gemini, Grok and Claude APIs, local models through Ollama, Google ADK, Strands Agents, LangGraph, LangChain, MCP, embeddings and retrieval
Infrastructure
Docker Compose, Traefik, Cloudflare, GitHub Actions, Oracle Cloud ARM VMs, Google Cloud Run

Education

Chitkara University
Bachelor of Engineering, Computer Science
2020 to 2024

Microsoft certifications
Azure Fundamentals (AZ-900) and Azure Data Fundamentals (DP-900)

Contact

Email is the quickest way to reach me.