Skip to content

Kharanshu Naghera

DATA SCIENTIST, MACHINE LEARNING ENGINEER, MLOps, AI ENGINEER

Toronto

Credit, fraud and compliance models at RBC. Seven projects below, each with a held-out number and its baseline.

Kharanshu Naghera, standing, in a grey tee
subject KN
Rating plate open a row for the record
name
Kharanshu Naghera
class
Data scientist, machine learning engineer, MLOps, AI engineer
station
RBC (Royal Bank of Canada), Toronto
Software engineer, AI/ML, Jan 2025 to now [+]
  • Real-time credit scoring on Azure at sub-150 ms p99 (12.4M inferences a month); quarterly model refresh cut from 96 hours to 4.2, Gini up from 0.62 to 0.763.
  • Drift-detection microservice (PSI and Wasserstein tests over 42 feature distributions) with automated retraining triggers; quarter-over-quarter decay held under 3% against a historical 8-12%.
  • Risk-analyst co-pilot: RAG over 18,000 pages of OSFI and internal policy with two-tier memory (Redis short-term, 7-year audit trail); ad-hoc risk queries went from three business days to 45 seconds, 89% needing no analyst at all.
  • Compliance platform on GCP: a six-node LangGraph state machine whose deterministic validation node machine-verifies every generated citation before an analyst sees it; time per case fell from 4.2 hours to 38 minutes at 94.3% citation grounding.
  • ADK agents wired into Appian case management, plus an MCP server whose tools write Word and Excel evidence packages and FINTRAC XML filings; the six-metric evaluation framework behind it became the unit standard for GenAI validation.
  • Fraud serving rebuilt from a monolith into 8 FastAPI microservices on EKS with Kafka ingestion; TorchScript, INT8 quantization, and TensorRT took inference from 1.8 s to 127 ms at a 28,000 TPS peak, precision 0.74 to 0.962.
previous
Apex Infolab, Bengaluru
Software engineer, applied ML, Aug 2021 to Jul 2023 [+]
  • Multimodal recommender for a 2.1M-user fashion marketplace: YOLOv5 and ResNet embeddings fused into 1,792-dim product vectors in OpenSearch k-NN (HNSW), warm-starting the collaborative filter; a four-arm A/B test attributed a 20.3% engagement lift, all under a CAD $18k monthly cloud budget.
  • Active-learning NLP for ticket triage: 50,000 human labels grown to 462,000 with confidence-gated pseudo-labels (5% human audit, 96.1% confirmed); BERT hit 94.2% accuracy and misrouting fell from 30% to 6.1%.
  • Agent corrections flowed back from Zendesk into a weekly retraining DAG; first-response time went from 14 minutes to 3.2.
  • Re-architected a 104M-record nightly batch from one Python script to PySpark on EMR with Git-gated CI/CD: 6.2 hours to 42 minutes, SLA adherence 82% to 99.8%.
  • Cut the platform bill 25% with Spot fleets, Graviton, storage tiering, and an idle-cluster auto-termination Lambda later adopted company-wide.
education

MSc, big data analytics, Trent University, 2023 to 2025 , GPA 3.7 / 4.0

BE, computer engineering, Gujarat Technological University, 2018 to 2022

badges
MAE C$62 sold 384 rendezvous F1 0.99 ground 22 / 30 cite F1 0.635 balance 10 / 15 legal 9.1× race

each badge is a held-out number from one of the seven cards below; press it to jump there

Depreciation scope every iPhone family through the price model

Selected work

Case study, press [1] the model loads as this card scrolls in; parity is checked before it prices

eBay iPhone price engine

Prices used iPhones from 30k+ eBay sold listings. Every prediction ships with a calibrated 80% band, and the model runs in your browser on this site.

  • stack
  • LightGBM
  • ONNX
  • FastAPI
  • Go
  • Kubernetes

MAE C$62

R² 0.94, held-out test

band coverage 81.5% (target 80%)

Case study, press [2] the repo's gap rule on its NOAA fixture; slide a ship dark and see where it came back

DeadReckon

Ships hiding from AIS: silence away from port, meetings at sea, a declared type the motion contradicts. Every fix lands in ScyllaDB and Redis through Kafka, each silence is judged against how quiet that sea cell usually is, and a transformer projects a dark ship forward. Public NOAA days replayed at 600×.

  • stack
  • ScyllaDB
  • Redis
  • Kafka
  • H3
  • PyTorch
  • ONNX
  • FastAPI
  • deck.gl

384

rendezvous alerts in three replayed hours, from 2,485

per-cell weights; the gap alerts stayed (161 to 169)

Case study, press [3] WILDTRACK camera 1; red lines are pairs under 2 m

Social distance analyzer

People closer than 2 m, measured on the floor from one camera with no depth sensor. Eleven YOLO detectors benchmarked on MOT17 and WILDTRACK, and the old pixel rule scored against ground truth.

  • stack
  • YOLO26
  • Ultralytics
  • OpenCV
  • homography
  • BoT-SORT
  • TrackEval

F1 0.99

pairs under 2 m, four clicked floor points

pixel rule 0.50 on the same frames

WILDTRACK camera 1: boxes on people, red lines between pairs closer than 2 metres, bird's-eye inset top right
Case study, press [4] 30 questions by four arms; a red cell asserted a wrong hex value

regcite

Machine-checked register data from chip datasheets, served to coding agents over MCP. A 3B model went from 0 to 22 of 30 register questions right with the server attached, and no arm asserted a wrong hex value with it.

  • stack
  • Python
  • SQLite
  • MCP
  • deterministic parsers
  • Qwen2.5
  • CI

22 / 30

Qwen2.5-3B with regcite, from 0 / 30 bare

7B: 2 / 30 bare to 29 / 30 with it

Case study, press [5] 52 runs, macro-F1 against female recall; the red run oversampled before the split

From data to justice

Offender profiles from 573k solved FBI homicide cases, built to apply to unsolved ones. A 52-run oversampling benchmark with the split done first, plus one run with SMOTE before the split so the leak has a number.

  • stack
  • XGBoost
  • SMOTEENN
  • R
  • FastAPI
  • AWS

F1 0.635

vs 0.469 always-male baseline

ROC-AUC 0.75 · recall(F) 40% vs 0%

Evaluation protocol
Live site, opens in a new tab the site, loading Africa: 9,091 rows

CouchDB vs MongoDB, in real time

Six experiments on CouchDB and MongoDB over FAO crop data, measured on 2026-09-07. Each race plays for as long as the database took, so a 9× gap is a 9× wait; the slow ones run at 10× or 100× and say so.

  • stack
  • CouchDB 3.4.3
  • MongoDB 8.3.8
  • FAO crop statistics
  • Cloudflare Workers

9.1×

MongoDB over CouchDB, bulk load of 9,091 rows

CouchDB 4,575 ms, MongoDB 500 ms; CouchDB used 66% of the memory

The CouchDB vs MongoDB site mid-race, CouchDB at 4,575 ms against MongoDB at 500 ms loading 9,091 rows, played at 10 times speed

Experience

2025 - now

RBC (Royal Bank of Canada)

Software engineer, AI/ML · Toronto

  • Real-time credit scoring on Azure at sub-150 ms p99 (12.4M inferences a month); quarterly model refresh cut from 96 hours to 4.2, Gini up from 0.62 to 0.763.
  • Drift-detection microservice (PSI and Wasserstein tests over 42 feature distributions) with automated retraining triggers; quarter-over-quarter decay held under 3% against a historical 8-12%.
  • Risk-analyst co-pilot: RAG over 18,000 pages of OSFI and internal policy with two-tier memory (Redis short-term, 7-year audit trail); ad-hoc risk queries went from three business days to 45 seconds, 89% needing no analyst at all.
  • Compliance platform on GCP: a six-node LangGraph state machine whose deterministic validation node machine-verifies every generated citation before an analyst sees it; time per case fell from 4.2 hours to 38 minutes at 94.3% citation grounding.
  • ADK agents wired into Appian case management, plus an MCP server whose tools write Word and Excel evidence packages and FINTRAC XML filings; the six-metric evaluation framework behind it became the unit standard for GenAI validation.
  • Fraud serving rebuilt from a monolith into 8 FastAPI microservices on EKS with Kafka ingestion; TorchScript, INT8 quantization, and TensorRT took inference from 1.8 s to 127 ms at a 28,000 TPS peak, precision 0.74 to 0.962.

2021 - 2023

Apex Infolab

Software engineer, applied ML · Bengaluru

  • Multimodal recommender for a 2.1M-user fashion marketplace: YOLOv5 and ResNet embeddings fused into 1,792-dim product vectors in OpenSearch k-NN (HNSW), warm-starting the collaborative filter; a four-arm A/B test attributed a 20.3% engagement lift, all under a CAD $18k monthly cloud budget.
  • Active-learning NLP for ticket triage: 50,000 human labels grown to 462,000 with confidence-gated pseudo-labels (5% human audit, 96.1% confirmed); BERT hit 94.2% accuracy and misrouting fell from 30% to 6.1%.
  • Agent corrections flowed back from Zendesk into a weekly retraining DAG; first-response time went from 14 minutes to 3.2.
  • Re-architected a 104M-record nightly batch from one Python script to PySpark on EMR with Git-gated CI/CD: 6.2 hours to 42 minutes, SLA adherence 82% to 99.8%.
  • Cut the platform bill 25% with Spot fleets, Graviton, storage tiering, and an idle-cluster auto-termination Lambda later adopted company-wide.

2023 - 2025

Trent University

Masters in big data analytics · GPA 3.7 / 4.0 · Peterborough, ON

What I work with

Modeling

XGBoost, LightGBM, CatBoost, scikit-learn, PyTorch, TensorFlow, imbalanced learning (focal loss, SMOTE families), conformal prediction

LLMs and agents

LangChain, LangGraph, Google ADK, MCP servers, Azure OpenAI, Gemini on Vertex AI, fine-tuning (LoRA, QLoRA, Unsloth), Hugging Face, evaluation design

Retrieval

Hybrid RAG (dense + keyword), Vertex AI Vector Search, OpenSearch k-NN (HNSW), FAISS, Pinecone, cross-encoder re-ranking, embedding pipelines

Serving and MLOps

FastAPI, gRPC, Docker, Kubernetes (EKS, AKS), ONNX, TensorRT, quantization, SageMaker, MLflow, Feast, drift monitoring, canary deploys, Go

Data engineering

Python, SQL, PySpark, Databricks, Delta Lake, Airflow, Kafka, Kinesis, EMR, Glue, BigQuery, web scraping (Scrapy)

Cloud and observability

AWS, Azure, GCP, Terraform, CI/CD (Cloud Build, CodePipeline, GitHub Actions), Prometheus, Grafana, OpenTelemetry, Power BI

Open to ML and applied AI positions.

Email gets the fastest reply. The resume and the code are linked below.