kjgpta.github.io

Kshitij Gupta


Forward Deployed EngineerML ResearcherBengaluru

I ship production LLM systems, and publish the NLP research that sharpens how those systems are built.

Selected

Experience

Where the work shipped

June 2026 – Present

Forward Deployed Engineer

TrueFoundry, Bengaluru

  • Design and deploy production AI applications on cloud-native LLM infrastructure: RAG, agentic workflows, and serving.
  • Work with customers to turn technical requirements into ML solutions, prototype approaches, evaluate how a system actually behaves, and drive production adoption.
  • Diagnose ML system issues alongside engineering and product, balancing model quality against latency, reliability, and operational constraints.

July 2023 – May 2026

Machine Learning Engineer

Chubb Business Services India, Hyderabad

  • LLaMA-3.1 70B with LoRA/QLoRA and RAG over internal domain data: +25% accuracy, −15% drift, gated on holdout evaluation and progressive traffic.
  • Offline evaluation workflows comparing model and retrieval configurations on accuracy, factual grounding, and regressions before release.
  • A multi-agent planner and router that decomposes intents into subtasks and picks tools: internal search, scraping, and structured database lookups.
  • Retrieval and verification agents with source-level citation tracking: +18% factual grounding over a single-agent baseline.
  • vLLM on AKS (A100/H100) with GPU memory and KV-cache tuning: −40% p95, +50% throughput, 10K+ daily requests.
  • CI/CD, monitoring, and autoscaling for reproducible model releases.

June 2022 – June 2023

NLP Research Intern

Speech Lab, NTU Singapore

  • An RNN English–Malay language model for Singaporean conversational speech: +20% over baselines.
  • Statistical and neural augmentation to generate synthetic code-switched training data, and to test what it does to robustness and generalisation.
  • POS tags, switching patterns, and coherence constraints folded into training and inference to cut switching errors.
  • Published and presented at IALP 2023 and ACIIDS 2023.

2019 – 2023

B.E. Electronics & Electrical Engineering

BITS Pilani, Pilani Campus

  • Graduated at 8.0/10.0, with foundations in systems, ML coursework, and applied software projects.

Full résumé (PDF)

Open source

Tools I maintain

Both came out of wiring agents together at work: one to see what a run actually did, one to give a model typed access to a vector store.

tracesage

Local-first tracing for LangChain and LangGraph agents: one callback, a live graph, no cloud account.

tracesage showing a live LangGraph agent topology with agents, MCP tools, and LLM nodes
Fig. 1 Live agent topology, drawn from a single LangChain callback: agents, MCP tools, and LLM nodes with the run timeline beneath.

Problem Hosted tracers work well, but reaching for a cloud account to debug an agent at your own desk is the wrong shape of tool.

Approach Capture the LangChain callback stream, store each run in SQLite, and render a live graph and timeline locally. Prompts never leave the machine. Run replay, token and latency analysis, MCP tool-source attribution, a pytest fixture, and optional OpenTelemetry export round it out.

Outcome pip install "tracesage[langchain]" then tracesage demo. MIT-licensed and in beta; picked up by Python Weekly #750.

Python · LangChain · LangGraph · MCP · OpenTelemetry · SQLite

vectorsmith

A vector store as typed tools: write a tools.yaml, then load it in Python or serve it over MCP.

You write

  • collectioninvoices
  • tenantacme
  • url${QDRANT_URL}
  • api_key${QDRANT_API_KEY}

The model sees

  • search_invoices
  • querystring
  • clientstring
  • statusenum
  • min_amountnumber
Fig. 2 One tool, from both sides. Credentials and the tenant filter stay in the YAML; the compiled schema carries only the arguments the model is allowed to set.

Problem Pointing an agent at your own data usually means one of two compromises. A vendor's MCP server hands the model cluster administration, including upsert and delete. Binding schemas by hand means re-implementing filters, limits, and tenant isolation in every agent that touches the store.

Approach Declare each tool in a tools.yaml: the collection, the parameters a model may pass, and the static filters it must never see. The compiler validates the file, lints it for leaked secrets, and emits either in-process Python tools or an MCP server. Connection details and tenant scoping stay server-side and are applied to every call.

Outcome pip install "vectorsmith[qdrant]" then vectorsmith serve tools.yaml. Apache-2.0, on PyPI, with adapters for Qdrant, Chroma, Milvus, pgvector, Pinecone, and Weaviate. The backends are still marked experimental.

Python · MCP · Pydantic · Qdrant · pgvector · LangChain

Research

Publications

Multilingual NLP, code-switching, and evaluation benchmarks: methods that make LLM systems sharper in the wild.

  1. arXiv · ACL ARR · December 2024

    [1] WhoDunIt: Evaluation Benchmark for Culprit Detection in Mystery Stories. A long-form narrative reasoning benchmark testing whether models can name the culprit across a whole story, not a short QA snippet. arXiv:2502.07747

  2. AACL-IJCNLP 2022 · Taiwan

    [2] MALM: Mixing Augmented Language Modeling for Zero-Shot Machine Translation. Mixing-based augmentation that improves zero-shot translation without parallel data for every language pair. In NLP4DH.

  3. ACIIDS 2023 · Thailand

    [3] Adapting Code-Switching Language Models with Statistical-Based Text Augmentation. Statistical augmentation for adapting language models to code-switched speech and text where labelled data is scarce. In ACIIDS.

  4. IALP 2023 · Singapore

    [4] Singaporean Conversational English-Malay Code-Switching Points. Characterises where English–Malay switches actually occur in Singaporean conversation, giving useful priors for code-switching models. In IALP.

  5. AISC 2023 · India

    [5] Data Augmentation for Automated Essay Scoring using Transformer Models. Augmentation strategies that hold up when scored essays are in short supply. In AISC.

Citations on Google Scholar

Writing

Notes on agents & tracing

Longer-form pieces on giving agents data they can query and traces you can read.

All posts on Substack

Along the way

Earlier projects

Coursework and side projects that led into production ML and research.

Skills

Stack I reach for

Grouped by where each one actually gets used.

LLM & ML
NLP, LLMs, RAG, PEFT with LoRA and QLoRA, fine-tuning, prompt engineering, evaluation.
Research
Experimental design, model evaluation, error analysis, data augmentation, benchmarking.
Serving & infra
vLLM, Kubernetes on AKS, Docker, KV-cache optimisation, OpenTelemetry, CI/CD, Databricks.
Frameworks
PyTorch, Hugging Face Transformers, spaCy, TensorFlow and Keras, LangChain, LangGraph.
Backend
Python, FastAPI, Pydantic, Flask.
Cloud & data
Azure, AWS, SQL, CosmosDB.

About

How I like to work

I care about systems that survive real traffic, and methods that hold up under scrutiny.

Ship
Production over theatre. Latency, accuracy, and grounding under load, not prototype applause.
Prove
Measure what matters. Quantify the impact so a team can trust the system rather than the pitch.
Publish
Sharpen the method. When a problem needs a better evaluation or a better model story, write it down.

Most of the work is building and evaluating LLM systems across fine-tuning, RAG, agentic workflows, and production inference, with a lot of the time going on experimentation and on working out where a system fails. Open to collaborations on LLM tooling, production AI systems, agent observability, and applied NLP. Best reached by email.


Kshitij Gupta
mailguptakshitij@gmail.com