Projects I'm proud of

Latest project

Shrota: AI phone surveys

Shrota is an AI-powered CATI (computer-assisted telephone interviewing) platform for running phone surveys in India, in Hindi and other Indian languages. See it live at getaicati.com.

A researcher designs the survey in a web builder. Then a voice agent calls each respondent and asks the questions in Hindi. I built all of it on my own, and it is pre-launch right now, running on test calls.

Studies dial contact lists in waves, with call records, live monitoring and per-call tracing. Latency and cost are tracked on every call, and a call carries on with a backup vendor if one fails.

Technologies used:

  • LangGraph
  • LiveKit
  • SIP
  • Python
  • React
  • PostgreSQL
  • Langfuse
Shrota campaign monitor showing waves, calls by outcome and contacts by status

Research, not published

Rewriting only the part that changed

Say an LLM fills a form or a spreadsheet that has to follow a schema, and you want to change one answer or 10 rows out of 10,000. Today the model writes the whole thing again. I wanted to know if it can write only the changed part and splice it back, with the schema still valid.

I ran two experiments on Gemini. Edits took 172x fewer output tokens than writing the whole output again. The code and results are in my research repo.

Technologies used:

  • Structured outputs
  • Gemini
  • Python

Summer school

3D Vision Summer School 2024

Attended the 3D Vision Summer School (3DVSS) at IIIT Bangalore, co-organised with IIIT Hyderabad, from 26 May to 1 June 2024. Seven days of lectures and hands-on labs, one theme a day: 2D foundations, geometry processing, deep learning on 3D data, rendering and NeRF, 3D humans, Gaussian Splatting, and generative 3D.

Worked through the labs with Open3D, Trimesh and PyMeshLab, PointNet and MeshCNN, NeRF (instant-NGP), SMPL-X, 4D Humans and PIFu for human reconstruction, 3D Gaussian Splatting, and Point-E, Shap-E and TripoSR for text-to-3D and image-to-3D.

The image is my own re-run of the geometry processing lab: one RGB-D photo lifted into a coloured 3D point cloud with Open3D.

Technologies used:

  • PyTorch
  • Open3D
  • PointNet
  • NeRF
  • SMPL-X
  • Gaussian Splatting
  • Shap-E
A single RGB-D photo of a tiled fountain lifted into a coloured 3D point cloud

ML project

Personalized Recommendations at Scale

Built as part of the Co:Rise program in July 2022.

Developed a two-tower candidate generation model and a multi-task re-ranking model for personalized recommendations at scale.

Implemented a contextual multi-armed bandit model with epsilon-greedy policy for exploration-exploitation trade-offs.

Technologies used:

  • TensorFlow
  • Python
  • Multi-armed Bandits
  • Two-tower Models
Recommendation pipeline: a two-tower model retrieves candidates, a multi-task model re-ranks them, and an epsilon-greedy contextual bandit picks what is shown 1 · Retrieve 2 · Rank 3 · Explore Two-tower model User tower Item tower dot product top-K candidates Multi-task re-ranker shared layers click purchase ranked list Contextual bandit ε-greedy exploit explore 1 − ε ε items shown all items → hundreds score each one try new items too

Favorite project

IITG Mechanical department website

Me and my friend Dhiraj built this awesome website for the Mechanical department of IIT Guwahati, my alma mater.

It started as a summer project in May 2019. I mainly worked on the backend and Dhiraj made sure it looked nice. It was a really challenging project that exposed me to creating software from scratch. I got to understand Wagtail and Django in depth.

Technologies used:

  • Wagtail
  • Bootstrap
  • Django
  • Azure cloud VM
  • Apache HTTP server