Hi, I’m Mark
I'm an ML Engineer at 314e Corp in Bengaluru, where I build and operate MLOps pipelines for healthcare ML systems — orchestration, distributed data processing, and model serving at scale. Outside of work I write low-level Rust and Python for fun: reimplementing NumPy from scratch, and building terminal tools I actually use every day.
- Built and owned the entity-extraction ML stack behind a clinical document-processing product, taking a fine-tuned 27B vision-language model to 0.96 test accuracy across 26 clinical entity types in production.
- Wrote a 7,600-line model-agnostic VLM fine-tuning package on SkyPilot, Temporal and ClearML that trains Gemma 3, Qwen3.5-9B and Qwen3.6-27B through one model-family dispatch layer, rewritten across three generations as the model family changed.
- Built the human-in-the-loop retraining loop from reviewer feedback through stratified dataset construction to automated deployment, gated by a per-entity F1 regression check that blocks any model regressing beyond a tolerance scaled to its prior score.
- Built a weekly accuracy-drift monitor separating genuine model regression from reviewer labelling-convention change — two causes indistinguishable in F1 that demand opposite responses — using an LLM agent over a purpose-built read-only MCP server that reads page OCR to check the document itself.
- Wrote the schema-driven entity-extraction layer and a per-field confidence tree mapping token logprobs to sequence likelihood, spanning 4 LLM providers and 3 inference engines behind one validated output contract.
- Trained a calibrated XGBoost confidence model over those logprobs, OCR grounding and text embeddings on 99,427 reviewed extractions, halving the false-approval rate against the LLM's own confidence at matched coverage (1.4% vs 2.7%) and calibrating expected error from 0.139 to 0.004, retiring 83% of manual entity review.
- Migrated entity-extraction serving from Transformers to vLLM to SGLang on RunPod serverless, reaching 64 concurrent jobs per worker with continuous batching, and removed cold-start cost by baking weights into the image and pre-warming triton kernel JIT and vision-encoder init.
- Cut model training time from 90 hours to 25 hours by replacing an iterable dataset with map-style lazy loading and sizing batches from available VRAM, after tracing an 80 GB host-RAM exhaustion to a cap that bounded sample count but never bytes.
Engineering writeups of this platform, which I contributed to — published by 314e, authored by Dr. Srivatsan Sridhar: AI document extraction & classification · IDP for medical records
- Built and deployed ML models against live market APIs to execute hedging strategies, cutting data-processing latency through targeted performance tuning and covering the core trading libraries with unit tests.
- Built a preprocessing pipeline for semantic-segmentation models over large-scale GIS raster data, implementing distributed computer-vision algorithms including Douglas–Peucker and Jarvis March, and deployed Django services on AWS behind end-to-end CI/CD.
- Applied NLP to proprietary Amazon review datasets for product-trend insight, automating preprocessing in Python and Bash to cut data redundancy 90%.
Trained a CNN to 98.4% accuracy for medical-waste classification and deployed it as an interactive TensorFlow.js web application.
ikj loop order against BLAS-backed NumPy. Spec-driven with ~30 milestone tests.mpv over its JSON IPC socket, and scrobbles to Last.fm via cmusfm. Vim-style keys, live search, play history, and pixelated album art rendered straight in the terminal.More on GitHub →
B.Tech, Computer Science — ABV-IIITM Gwalior, India · SGPA 8.67 · 2024
Relevant coursework: Artificial Intelligence, Statistics, Cloud Computing
DevOps on AWS Specialization · GCP Network Deployment · Open-source contributor @PyMC
