Ten years on one question: is this result real, and will it hold in production? I came to AI from statistics — which is why I care as much about honest evaluation as about shipping the model.
I build agentic AI platforms at Standard Chartered GBS — multi-agent orchestration, retrieval, and fine-tuning infrastructure for compliance work, where every answer has to be traceable and every agent has to be governable.
The statistics training shows up in how I evaluate. A single train/test split that flatters a model is not a result; an accuracy number without an error bar is not evidence. Several projects in this portfolio report a lower number after a fairer evaluation, and document why the lower one is the trustworthy one.
The engineering shows up in what I ship: retrieval systems that need no training data, classifiers that explain which phrases drove the prediction, entity-resolution pipelines that survive contact with messy production records.
BSc Statistics at Presidency University, Kolkata, then MSc Applied Statistics & Informatics at IIT Bombay. INSPIRE (SHE) scholarship recipient. Inference, experimental design, and multivariate methods — the grounding that still decides whether I trust a result.
Optimization and classical ML against real operational problems: NSGA-II multi-objective courier allocation and DTW time-series clustering for dead-stock identification at Bewakoof.com, then rotations across Trade Finance, Customer Experience, and Client Due Diligence at Standard Chartered — retrieval, entity resolution, NPS analytics, and complaint routing.
Deep learning for information extraction and document understanding, then an internal fine-tuning platform built on QLoRA and 4-bit quantization, and now multi-agent platforms for compliance — governance backends, jurisdiction-scoped RAG, and regulatory impact analysis inside a bank's constraints.
The code and data stay with the bank. What I can share is the architecture and the reasoning — the constraints that shaped each system, and the tradeoffs I'd defend in a design review. Systems are described by what they do rather than by their internal names.
A shared backend that standardizes authentication, guardrails, retrieval, and audit logging across a family of compliance agents. Rather than each agent team reimplementing governance, the framework provides it — so a new agent inherits compliance controls by construction instead of by review. Built from scratch and led its domain-driven, clean-architecture migration with a two-person engineering pod.
In a regulated institution, audit logging and guardrails aren't per-team implementation details — they're a compliance surface. Centralizing them into a framework layer trades some team autonomy for a property that matters more here: you can answer "what did this agent do, and was it allowed to?" uniformly, for every agent, without auditing each one separately.
Built on the governance framework above. Compliance analysts previously ran a two-to-three day manual triage to answer a policy question; the platform returns a same-day, jurisdiction-scoped answer with its sources attached. Retrieval is constrained by jurisdiction rather than filtered after the fact, so an answer can never be assembled from documents that don't apply to the asking market.
Auditability had to be an output, not a log. An answer that a human can't trace back to a source is worthless in compliance review regardless of how good it reads, so citations are part of the response contract — the system would rather return less than return something unattributable.
An agent that reads incoming regulatory circulars and flags whether they affect existing bank policies. The costs here are asymmetric: a missed impact is a compliance exposure, a false alarm is an analyst's afternoon. The system is tuned accordingly — deliberately biased toward recall, accepting more false positives to drive missed impacts toward zero.
Most circular sections don't touch policy at all, so spending a full reasoning pass on every section is waste. A cheap first stage discards clearly non-impacting sections and the expensive reasoning runs only on candidates — roughly half the LLM calls, with the recall bias preserved because the cheap stage is tuned to over-admit rather than over-reject.
An end-to-end fine-tuning platform covering data preparation through inference, driven by configuration rather than notebooks. Quantization and attention optimizations were the difference between fine-tuning being an occasional event and a routine one on the hardware actually available.
Config-driven over notebook-driven, because the point of a platform is comparability. A tuning run you can't reproduce or diff against the previous one isn't an experiment — it's an anecdote. Every run is declared by a config file that is itself the record of what was tried.
A configurable extraction engine for financial documents, layering deterministic strategies ahead of learned ones. Deployed across four release phases; the deterministic layers resolve what they can, and only genuinely ambiguous fields reach the model. Paired with extending a sequence-tagging NER model (BERT + BiLSTM + Attention + CRF) into the document pipeline.
A layered cascade rather than one model end to end. When a regex or an ontology lookup can settle a field, it does so cheaply, deterministically, and — critically for document review — explainably. The model is reserved for what the deterministic layers genuinely can't resolve, which keeps both cost and the unexplainable surface area small.
Graduate rotations across Trade Finance, Customer Experience, and Client Due Diligence — five problems taken end to end, from proof of concept to handed-off MVP.
Predicts customs HS codes from free-text product descriptions via zero-shot embedding retrieval — Universal Sentence Encoder plus cosine similarity against ~5,300 official code descriptions, so no labeled training data is needed at all. Includes a separate supervised TF-IDF/TextCNN exploration for comparison, where the deep model honestly loses to the linear baseline on limited data.
Scores how well a manually-entered bank, port, company, or vessel name matches a known dictionary using five similarity metrics — Monge-Elkan, Jaro-Winkler, Jaccard, Damerau-Levenshtein, Levenshtein — and takes the maximum, because typos, reordering, and abbreviations each favor a different metric.
Mines ~50K monthly NPS survey responses — score plus Hindi/English/Hinglish free text — for time and location drivers, VADER sentiment, and NPS-impact n-gram themes. Every claim is gated behind a significance test before it reaches the leadership summary, so a persuasive-looking bar chart can't become a decision on its own.
Routing for a real ~4–5K-emails/day triage problem: a three-level hierarchical classifier mirroring the bank's actual KANA taxonomy, evolved from a TF-IDF baseline into an explainable pipeline that surfaces the weighted key phrases behind every prediction — the stakeholder asked for why, not just what. Includes a SHAP comparison explaining when exact attribution beats approximation.
Links customer records opened under different-looking names and addresses back to the same person — the fraud pattern where a defaulted loan resurfaces as a "new" customer. Blocking cuts 254K candidate pairs to 634, a trained classifier scores them, and graph clustering resolves identities. Key finding: a perfect held-out pairwise score still produced five false merges via transitive chaining.
Projects I design and build alone, outside work — public repositories you can read and run.
Chat with a curated knowledge base and get cited answers. Hybrid retrieval — FAISS dense search plus BM25 keyword search, merged with Reciprocal Rank Fusion — behind a LangGraph agent, with a long-term memory layer that extracts durable facts about the user into ChromaDB after every turn. Started as a four-agent platform and was deliberately descoped to one deeper agent; the architecture and its design decisions are written up in the repo.
A data science workbench for tabular data: upload a CSV, then run AutoML — profiling, a model leaderboard, predictions — or classical statistics: hypothesis testing, GLMs, Bayesian modeling, time series, and survival analysis. A tool-calling copilot with 26 tools, every test and model plus NL-to-SQL, explains results in plain English. The statistics training and the agent engineering, in one tool.
Long-term memory for AI agents, implementing the Mem0 architecture — extract, search, update, store — over a hybrid backend: ChromaDB for vector recall and a Neo4j entity graph for relationships. A FastAPI service exposes memory-augmented chat, memory CRUD, and graph endpoints, with a Streamlit UI to inspect what each agent remembers.
AI-for-good sprints with Omdena's global community of ML engineers — team projects, public repositories.
An assistant helping Bhutanese citizens navigate public services — permits, health, business registration — in Dzongkha and English. Built the multi-backend intent classifier (Gemini, local LLM, or pure keyword) with confidence-gated escalation to a human, plus a DPR-based conversational flow engine with domain dialog graphs and safety guardrails.
Retrieval-augmented support chatbot that grounds every answer in mental-health reference PDFs via FAISS and answers through Gemini with per-user conversation memory — keeping responses tied to source material rather than improvising on a topic where improvising is the wrong failure mode.
LangGraph · LangChain · LlamaIndex · Multi-agent orchestration · RAG · Document AI
PyTorch · HuggingFace Transformers · PEFT · bitsandbytes · QLoRA · 4-bit quantization · Flash Attention
FAISS · ChromaDB · Databricks Vector Search · BM25 · RRF · Neo4j
scipy · statsmodels · Hypothesis testing · Cross-validation · SHAP · Cluster validity indices
Django · FastAPI · PostgreSQL · Docker · Azure · CI/CD (Azure Pipelines)
Python · R · SQL · Git · JIRA · Pandas · NumPy · scikit-learn
Building something in Gen AI, working on evaluation and quantization problems, or hiring for one — my inbox is open.