Open to AI/ML roles · Seoul, South Korea

Rohit Thakur
AI that knows what it doesn't know.

AI/ML engineer, 8+ years shipping production systems. I build agentic LLM applications with real evaluation behind them, real-time computer vision tuned to run on edge silicon, and the manufacturing analytics that connect the two. Most of my recent work is about a single question: when should a model be trusted?

live · token-level uncertainty trace
confidence 0.94
entropy 0.21
generating…
8+
years in production AI
33%
lower prediction error
95.5%
fault-detection accuracy
99.5%
mAP@50, robot vision
20%
manufacturing efficiency gain
12.3%
energy saved, anomaly control
01 โ€” EXPERIENCE

Career

Three companies, one throughline: taking models out of notebooks and making them survive contact with production.

AI/ML Engineer · eMoldino Now

APR 2025 โ€” PRESENT · SEOUL, SOUTH KOREA
  • Built a Production Insight LLM agent (AWS Bedrock Claude, LangGraph, Snowflake) with intent-driven routing and real-time streaming into a React frontend.
  • Designed a Manufacturing MCP Server exposing four analytics tools โ€” ROI, RunRate, Capacity, CT Efficiency โ€” over FastAPI with async job queues and multi-user sessions.
  • Shipped an LLM evaluation suite: 210+ tests across four modules using LLM-as-Judge and DeepEval (faithfulness, hallucination, answer relevancy) over six scored criteria, tracked in Snowflake.
  • Built cycle-time deviation detection with adaptive windows and Mann-Whitney U / Chi-square testing, plus a capacity-risk dashboard using Physics-of-Loss methodology and OLS forecasting.
  • Deployed a scrap-rate prediction pipeline that cut test MAE by 33%, from 16.3% to 10.9%.
LangGraphAWS BedrockSnowflake MCPFastAPIDeepEvalLangfuse

AI Engineering Manager · OpenSysNet

MAY 2022 โ€” APR 2025 · PANGYO, SOUTH KOREA
  • Ran AI delivery under SAFe, improving sprint velocity and release consistency across the team.
  • Built real-time railway pantograph monitoring with YOLOv8 and edge processing at 95.5% fault-detection accuracy โ€” awarded an Innovation Award.
  • Designed a sorting-robot vision pipeline at 99.5% mAP@50, raising manufacturing efficiency by 20%.
  • Built LSTM and gradient-boosting models for fan-speed control and energy-anomaly detection, saving 12.3% in energy.
  • Delivered CV applications for golf-swing analysis, face/fire/hand detection, and OCR from drone video.
YOLOv8Edge AILSTM SAFeTensorRTTeam leadership

AI Research & Development Engineer · Pittasoft

SEP 2017 โ€” APR 2022 · SEOUL, SOUTH KOREA
  • Led ADAS development for dashcam products: forward vehicle detection, traffic-light recognition, and Forward Vehicle Start Alarm.
  • Built a Driver Monitoring System, training YOLO models to detect distraction and drowsiness.
  • Applied a VGG-based U-Net to medical image segmentation with optimized real-time inference.
  • Built end-to-end video pipelines (OpenCV, FFmpeg) for streaming, enhancement, and feature matching.
OpenCVADASDMS U-NetTensorFlowFFmpeg
02 โ€” PROJECTS

Selected work

Independent builds, each one taken far enough to produce measurements rather than a demo.

Uncertainty Quantification for LLMs

PYTORCH · HUGGING FACE · OPEN SOURCE

Token- and sentence-level uncertainty for a local Qwen2.5-1.5B: predictive entropy, perplexity, max-softmax, and semantic entropy via NLI meaning-clustering โ€” benchmarked on factual QA and math.

0.945AUROC from one free forward pass
0.900AUROC from 10-sample semantic entropy
71%of the compute, for 80% of the gain
  • Error-detection AUROC, ECE with reliability diagrams, risk-coverage curves, bootstrap CIs โ€” all hand-implemented and unit-tested.
  • The free signal beat the expensive one, and I traced why rather than shrugging: question-conditioned NLI collapses on comparative questions, so meaning-clustering merges answers that genuinely differ.
  • An uncertainty-gated cascade spends the sampling budget only where the model is actually unsure, instead of uniformly across every prompt.
Semantic entropyCalibration AUROCNLIQwen2.5

View source โ†’

A frame of in-cabin dashcam footage with the CabinSense overlay drawn on it: a green STATUS: ATTENTIVE panel listing gaze zone, head pose, gaze angles, EAR and PERCLOS, drowsiness probability and the phone, smoking, drink, seatbelt and occupant flags, with a face box, 98 facial landmarks and head-pose axes on the driver.
every value in the overlay is read out of the live pipeline, not annotated by hand  ยท  public dashcam footage

CabinSense โ€” In-Cabin Driver & Occupant Monitoring

ONNX RUNTIME · MOBILENETV3 · EDGE / SoC

Real-time DMS/OMS inferring eleven signals โ€” drowsiness, distraction, gaze zone, yawning, phone use, drinking, smoking, seatbelt, glasses, cap, and occupant count โ€” from a single camera feed.

11signals from one camera feed
7.4 msper frame on CPU, ~135 FPS
6โ€“10ร—slower under INT8, not faster
  • Fuses ONNX face detection, 98-point landmarks, 6DRepNet head pose, L2CS gaze, EAR/MAR/PERCLOS geometry, and localized YOLO detectors into one temporally-smoothed state.
  • Found the phone classifier firing at p90 โ‰ˆ 0.99 on a clip containing no phone โ€” a whole-image head has no concept of absence. Moved object-like classes to localized detectors, keeping classifiers only for genuine face attributes and geometry for yawn.
  • INT8 turned out to be a size win and a speed loss โ€” dequantization overhead swamps a MobileNetV3's tiny convolutions. So fp32 ships where compute is the constraint and INT8 only where flash and RAM are, with the benchmark script in the repo instead of a claim.
  • Driver-ROI scheduling runs detectors on ~half the pixels (141/145 frames ROI-only) with periodic full-frame sweeps to recount occupants; one consolidated YOLOv8n covers three classes in a single inference to keep the SoC budget flat.
Object detectionINT8 Head pose & gazeMulti-task learningPERCLOS

View source โ†’

Four bar charts comparing two local generator models with retrieval and guardrails held fixed: answer quality (token-F1) 0.42 for Qwen2.5-1.5B against 0.34 for Phi-3-mini, abstention accuracy 0.94 against 1.00, median latency 1.91 s against 3.20 s, and peak VRAM 3.35 GB against 2.94 GB.
same retrieval, same guardrails, only the generator swapped  ยท  both scored faithfulness 1.00

Agentic RAG with Guardrails

LANGGRAPH · FASTAPI · FULLY LOCAL

A local agentic RAG assistant over enterprise documents where refusing is a first-class outcome โ€” and a harness that measures whether it refuses correctly.

1.00faithfulness โ€” every answer entailed
0.94abstention accuracy, up from 0.69
0access-control retrieval leaks
  • Clearance is enforced inside the vector-store filter, not the prompt, so protected text never enters the model's context at all. That is the difference between a policy and a guardrail โ€” and the one that survives an audit.
  • Pure NLI over-abstained on valid paraphrases; an embedding-cosine rescue fixed it with faithfulness held at 1.00. NLI catches contradictions, cosine rescues restatements. Sentence-level premises moved entailment on a grounded pair from 0.0003 to 0.988.
  • Hybrid retrieval (dense + BM25 via RRF), prompt-injection defense, and document-level access control.
  • Judge-free retrieval and answer-quality harness โ€” hit@k, MRR, nDCG, NLI faithfulness โ€” plus a two-model accuracy/latency/cost comparison.
Hybrid retrievalGuardrails nDCGPrompt injectionBM25

View source โ†’

Grouped bar chart of four pipeline stages across three metrics. NDCG@10: popularity 0.018, SASRec-lite 0.029, two-tower 0.042, two-stage 0.046. Recall@10: 0.037, 0.058, 0.085, 0.087. Coverage@20: 0.08, 0.10, 0.74, 0.57.
every stage scored on the same held-out item, ranking the full catalogue for all 6,040 users

StreamRec โ€” Two-Stage Recommender & Hybrid Search

PYTORCH · LIGHTGBM · FASTAPI · FULLY LOCAL

The streaming content-discovery stack end to end on MovieLens-1M โ€” candidate generation, learning-to-rank, bandit re-ranking, cold start, and search โ€” built to find out which stage the wins actually come from.

2.3ร—NDCG@10 over the popularity baseline
+12%more NDCG@10 from the ranker
67ร—the latency that ranker costs
  • Retrieval does the heavy lifting, and it also widens the catalogue: coverage goes 0.08 โ†’ 0.74 of all titles. A logQ correction on the in-batch negatives โ€” which otherwise punish popular items for being popular โ€” more than doubled Recall@10 (0.033 โ†’ 0.085).
  • The ranker's 12% costs 7.3 ms: retrieval alone answers in 0.11 ms p50, the full two-stage request in 7.4 ms. That trade is the actual engineering decision โ€” worth paying on a homepage, not on typeahead.
  • The ranker's strongest feature by gain was neither popularity nor any embedding score โ€” it was how many retrievers independently surfaced the same item. LinUCB, meanwhile, tied the greedy ranker on offline replay (0.387 vs 0.388): a bandit cannot prove itself against a static log, so it ships behind the replay estimator rather than a chart pretending otherwise.
  • Cold start via bge content embeddings (a brand-new title is retrievable with zero interactions), hybrid dense + BM25 search fused by RRF (28 ms p50), MMR diversity (intra-list similarity 0.45 โ†’ 0.41), PSI drift monitoring, and FastAPI serving โ€” with Spark/Airflow/Kubernetes scale-out documented rather than stubbed.
Two-tower retrievalLambdaMART Contextual banditsNDCGHybrid search

View source โ†’

Railway Pantograph Monitoring

YOLOV8 · EDGE INFERENCE · INNOVATION AWARD

Real-time monitoring of train pantographs, catching arcing and contact-point misalignment before they become failures.

99.5%mAP@50, pantograph and ROI detection
Real-timeon constrained edge hardware
AwardInnovation Award, OpenSysNet
  • YOLOv8 detection of the pantograph and its ROI, with custom arcing-detection and contact-point tracking built on top of the detector.
  • Transfer learning plus edge optimization to hold real-time throughput on constrained trackside hardware.
  • Improved railway safety through early fault detection and cut maintenance cost via proactive identification.
YOLOv8Real-time Transfer learningAnomaly detection
03 โ€” STACK

Tools I reach for

Grouped by what I actually use them to build, not by popularity.

Generative AI & LLM

Agentic RAGLangGraphLangChain Hybrid retrievalChromaFAISS MCPLLM-as-JudgeDeepEval Uncertainty & calibrationGuardrails AWS BedrockGPT-4oTransformers

Computer Vision

OpenCVYOLOv5/v8U-Net Object detectionFacial landmarks Head-poseSegmentation DMS/OMS/ADASMediaPipe

Deep Learning & Edge

PyTorchTensorFlowKeras scikit-learnONNXONNX Runtime INT8 quantizationPruning TensorRTMulti-task learning

Data & Cloud

SnowflakeSnowparkPandas NumPySciPySpark KafkaHadoopAzure MLDatabricks

MLOps & DevOps

DockerKubernetesMLflow Weights & BiasesGitCI/CD FastAPILangfuseStreamlit

Languages & Viz

PythonC++SQL RJavaPlotly MatplotlibAltairReact
04 โ€” RESEARCH & RECOGNITION

Publications & awards

Published research

Energy Consumption Prediction Using LSTM Models
ICMLA โ€” Intl. Conference on Machine Learning and Applications
Concurrent Food Localization and Recognition
KICS โ€” Korean Institute of Communications and Information Sciences, 2017
Augmentation of RGB Dataset for Improved Performance on Infrared Classifier
Electronics and Information Communications Conference, 2016

Languages

English โ€” fluent Korean โ€” professional working Hindi โ€” native

Recognition

  • Innovation Award โ€” OpenSysNet, for the pantograph monitoring system (95.5% fault-detection accuracy).
  • Employee of the Year โ€” Pittasoft, for ADAS and driver-monitoring work.
  • IEEE member, active in AI/ML and computer-vision communities.

Education

  • M.S., Electrical Engineering & Computer Science โ€” Gwangju Institute of Science and Technology (GIST), 2017. Specialization: AI and machine learning.
  • B.Tech., Electronics & Communication Engineering โ€” Green Hills Engineering College, India, 2014.
05 โ€” CONTACT

Let's build something

Open to AI/ML engineering roles โ€” agentic LLM systems, evaluation and reliability, or real-time vision. Based in Seoul, open to relocation.