Open to Lead / Senior AI-ML roles

Gaurav Gandhi

Lead Data Scientist, Applied AIUber Technologies, Uber AI (via Indium Software)

I build and ship AI products under my own name, and the production systems and research behind them.

Impact

a year saved by displacing manual document review

Cited in provenance.md

Resume PDF p.1, Indium Software → Data Scientist (Jun 2024–May 2025), bullet "Document-Understanding Transformer at Production Scale"

verified against source 2026-08-21

a year saved by displacing manual document review
of earner document verification automated

Cited in provenance.md

Resume PDF p.1, Indium Software → Senior Data Scientist (Uber AI via Indium), ViT dual-threshold verification bullet: "Automated roughly 70% of earner document verification".

verified against source 2026-08-21

of earner document verification automated

About me

I'm Gaurav, a data scientist in Bengaluru. Over the past five years I've gone from building ETL pipelines at TCS, to forecasting and anomaly detection at FedEx, to my current role inside Uber's AI org (via Indium Software), where I lead a five-person data-science team shipping GenAI document intelligence into production.

Outside work, I build my own AI products, a daily word game, a fashion stylist, an issue-triage service, and more. Each one exists because I wanted to see an idea all the way through: not a model in a notebook, but something deployed, evaluated, and used by real people.

The through-line is honest measurement. Every project ships with an evaluation harness, and the numbers I publish include the unflattering ones, the naive baseline that beat my forecasting model, the retrieval score that stayed weak after three attempted fixes. I'd rather show a real 83% than claim a vague "high accuracy."

Working across LLM Fine-Tuning (LoRA / QLoRA) · RAG & Hybrid Retrieval · Multi-Agent Systems (LangGraph) · Transformer Architectures · Diffusion Models (SDXL) · Two-Tower / Contrastive Retrieval · Distributed Training (Ray, DeepSpeed) · LLM-as-Judge Evaluation · NL2SQL & Knowledge Graphs · FastAPI & GCP Cloud Run.

Experience

Uber Technologies, Uber AI

Jun 2024 – Present

via Indium Software · Bengaluru, India

Lead Data Scientist · Aug 2026 – Present

  • Lead a 5-person data-science team across GenAI document-intelligence and conversational-AI workstreams, setting the modeling roadmap, evaluation strategy, and technical review standards; hired two of the team's data scientists through end-to-end interviews and onboarded both onto live production systems.
  • Coordinate the document-verification platform that gates earner onboarding in every Uber region, working with engineering, legal, annotation, regression, and regional leadership teams on model updates and threshold rollouts.

Senior Data Scientist · May 2025 – Aug 2026

  • Automated roughly 70% of earner document verification (thousands of documents daily) by designing a dual-threshold policy on a Vision Transformer: recall-calibrated auto-approval and precision-calibrated auto-rejection thresholds, tuned per document type and rejection reason (55 types, 9 reasons), so only the uncertain band reaches human review.
  • Raised field-level extraction accuracy above 97% by building a parameter-efficient fine-tuning framework for Qwen (LoRA/QLoRA) with a layer-freezing strategy, instruction-tuning data design, and an automated field-accuracy evaluation harness; mentored partner teams on prompt and evaluator design.
  • Delivered $10M+ in annual cost savings by displacing manual document review: owned the multi-task training objective and extraction head of an encoder-decoder Transformer pretrained on 50M+ documents across 144 A100 GPUs (PyTorch, Ray Train, DeepSpeed ZeRO-3), shipped to production at 95%+ field accuracy.

Data Scientist · Jun 2024 – May 2025

  • Cut analytics turnaround from hours to seconds by shipping a multi-agent copilot that combines hybrid RAG (dense + sparse retrieval), NL2SQL, and a schema knowledge graph, adopted by program managers across all business units.
  • Drove a sustained 27% lift in user engagement, validated through A/B tests across releases, by replacing static collaborative filtering with a BERT-based session-aware sequence model that captures evolving user intent.

LoRA / QLoRAQwenViTHybrid RAGNL2SQLRay TrainDeepSpeed ZeRO-3BERT

FedEx Express

Aug 2022 – Jun 2024

Consumer Logistics & Supply Chain · Bengaluru, India (Remote)

Decision Scientist

  • Recovered lost enterprise shipping volume, surfaced via Average-Daily-Volume decline, by deploying an ensemble of Bayesian change-point detection, probabilistic clustering, and profitability scoring, shaping regional supply strategy cross-functionally.
  • Reduced operational inefficiencies ~20% by upgrading ARIMA pipelines to SARIMA with Box-Jenkins tuning, Fourier seasonality, and automated anomaly filtering, feeding sales and staffing plans.

Bayesian Change-Point DetectionSARIMABox-Jenkins Tuning

Tata Consultancy Services (TCS)

Jul 2021 – Jul 2022

Bengaluru, India (Remote)

Data Engineer

  • Ensured reliable, scalable downstream analytics for a high-volume booking/transaction client by designing end-to-end GCP ETL pipelines plus dashboards for campaign targeting, segmentation, and trend monitoring.

GCPETL

View the full resume

Work

15 projects · 9 live

What I've made so far: a daily word game, a fashion styling assistant, an issue-triage service, and the research they led me to. The numbers are honest, including the one where a simple baseline beat my model.

Showing 4 of 15 projects

shipped today

Reads a new GitHub issue and tells you which component it belongs to, which already-solved issues look like it, and roughly how long it will take to close.

  • TF-IDF
  • BGE + FAISS
  • LightGBM
  • Groq
k8s87.1%vscode89.8%

Warmer

Live
puzzle #68 live today

A word game you play once a day, where your only clue is how close each guess comes in meaning to the secret word.

  • Flutter
  • sentence-transformers
  • Firebase
-0.0030.813
shipped 1mo ago

An AI shopping assistant for Indian weddings that searches eight store catalogues at once and will not invent a price or a size to make the sale.

  • LangGraph
  • FAISS + BM25
  • CLIP
  • Groq
93.8% (n=211)

ShelfSense

Research
shipped 2mo ago

Forecasts retail demand a week out across all 30,490 Walmart product and store lines, so a buyer knows what to order.

  • LightGBM
  • Dagster
  • M5 dataset
0.89560.5693
shipped 2mo ago

Turns a prompt or a photo into a Japanese woodblock print, on a LoRA I fine-tuned to hold that style.

  • SDXL LoRA
  • ControlNet
  • Cloud Run

6.2GB peak VRAMFull SDXL + LoRA pipeline, 8GB consumer-GPU budget

shipped 4d ago

Answers whether rewriting an AI agent's tool descriptions actually made it better at its job, with an A/B harness for MCP servers. The research behind my tool-description paper.

pip install agentgauge-harnessv0.5.3 · 5 releases≈51 downloads/week (pypistats, excl. mirrors) Sum of the 7 most recently completed calendar days pypistats.org reports with known PyPI mirrors excluded, UTC, today's partial day not counted.
  • MCP
  • Causal measurement
  • Python

-13.3ppBLOCKING description defect, task-success effect (qwen2.5:7b)

shipped today

Cleans up disk space on Windows and shows you exactly what it will remove before it removes anything, so a safe cleanup stays safe.

  • SafetyValidator
  • OpenCLIP
  • pHash + MinHash
  • LightGBM

~48GB → 23.09GB → 4.26GB → 3.92GB, never corrected upwardExact-duplicate reclaimable estimate, corrected as real safety bugs were found

shipped today

A PWA that tracks India's 22K gold rate and ships an honest naive flat-hold range, not a forecast, because the ML model I trained never beat that baseline.

  • Chronos-Bolt
  • GitHub Actions
  • PWA

Naive wins: ships the honest baseline, not the modelNaive baseline vs. ML model (209-fold backtest)

shipped 1mo ago

Describe a trip in a sentence and get two genuinely different itineraries, put together by a team of agents, instead of a page of near-identical flights.

  • Multi-agent
  • Pareto ranking
  • SSE
shipped today

Scores a Claude Code session on how efficient it was, and shows you where the tokens went to waste.

pip install tracegaugev0.15.0 · 21 releases≈195 downloads/week (pypistats, excl. mirrors) Sum of the 7 most recently completed calendar days pypistats.org reports with known PyPI mirrors excluded, UTC, today's partial day not counted.
  • Python
  • PyPI
shipped 4d ago

Fails your build when an agent starts costing more per run, and tells you, every run, the smallest rise it could actually have caught.

pip install adk-tracegaugev0.10.1 · 21 releases≈187 downloads/week (pypistats, excl. mirrors) Sum of the 7 most recently completed calendar days pypistats.org reports with known PyPI mirrors excluded, UTC, today's partial day not counted.
  • Google ADK
  • Bootstrap CI
  • PyPI
shipped 1mo ago

Type what you spent the way you would say it out loud. It files the expense, categorizes it, and predicts where your spending is heading.

  • Groq
  • Prophet
  • IsolationForest

143/143 passingTest suite

shipped 26d ago

A held-out benchmark for a class of silent-verdict-degradation bugs, plus 3 detection baselines (AST, local LLM consensus, frontier judge) that all failed a pre-registered viability gate.

  • AST
  • Ollama
  • Frontier judge

See all 15 →

Open source

3 fixes landed upstream

Bug fixes I sent to other people's projects, plus the packages I publish under my own name.

google/adk-python

Landed#6681

Fixed a crash in the ADK CLI's legacy route for creating an eval set.

Shows as Closed on GitHub, not Merged: Google imports external pull requests through Copybara, which lands the change under its own internal commit rather than a normal merge.

First released in v2.8.0.

Pull request ↗Landing commit ↗

google/adk-python

Landed#6939

Made the ADK evaluation harness reject an invalid zero sample count for a judge model as soon as it's set, instead of failing later mid-run.

Shows as Closed on GitHub, not Merged: Google imports external pull requests through Copybara, which lands the change under its own internal commit rather than a normal merge.

Not in a tagged release yet.

Pull request ↗Landing commit ↗

keras-team/keras

Landed#23420

Fixed Keras's R2Score metric returning NaN instead of 1.0 when a prediction is perfect but the target data itself has zero variance.

Not in a tagged release yet.

Pull request ↗Landing commit ↗

In review: google/adk-python #6739, #6740 (open, not yet merged).

More on the open source page →

Research

Tool-Description Quality Is Not One Axis: A Regime Analysis of Where It Helps and Where It Backfires

Working paper (draft, not yet submitted)

Repo ↗Read the benchmark's case study →

Tool-description quality is widely treated as a broadly-applicable lever for agent tool-use, but it is not a single better/worse axis: the precision that helps an agent disambiguate within a family of confusable tools is orthogonal to, or actively harmful for, context-rich selection and for tool retrieval.

Powering Agent Evaluations: Variance Structure, Measurement Artifacts, and Minimum Detectable Effects in Tool-Use Benchmarks

Working paper (draft, not yet submitted)

Repo ↗Read the benchmark's case study →

Agent evaluations are routinely reported without a power analysis, without a stated detection floor, and without screening for measurement artifacts.

Contact

I'm looking for Lead or Senior Applied AI roles, and I take on select AI/ML consulting engagements.

If my work fits what you're building, email is the fastest way to reach me. I read everything and reply promptly.

gauravgandhi429@gmail.com

Bengaluru, IndiaGitHubLinkedInHugging Face

© 2026 Gaurav Gandhi. Set in Fraunces, Space Grotesk, and JetBrains Mono. Every number on this page is derived from live data or a sourced record.