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.

Experience
314e Corp Current
Software Development Engineer (Jan 2025 – Present)  →  Associate Software Development Engineer (Dec 2024 – Jan 2025)  →  Software Development Engineer Intern (Jul 2024 – Dec 2024)
Bengaluru, India
  • 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

Machine Learning Intern · Banach Technologies
Singapore (Remote)  ·  Apr 2024 – Jul 2024
  • 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.
Software and ML Intern · Alemeno
Maharashtra (Remote)  ·  Jul 2023 – Apr 2024
  • 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.
Data Analyst Intern · Bewgle
Bengaluru (Remote)  ·  May 2022 – Jul 2022
  • Applied NLP to proprietary Amazon review datasets for product-trend insight, automating preprocessing in Python and Bash to cut data redundancy 90%.
Publication
First author  ·  2022 IEEE Conference on Interdisciplinary Approaches in Technology and Management for Social Innovation (IATMSI), Gwalior, India  ·  cited 25 times

Trained a CNN to 98.4% accuracy for medical-waste classification and deployed it as an interactive TensorFlow.js web application.

Projects
FastAPIReact 19PostgreSQL
Stop choosing, start watching — rolls a random unseen episode from the shows you follow and never repeats one until the pool is exhausted. Saved “controlled random” presets narrow the roll to specific shows, seasons, and a maximum episode length. FastAPI + SQLAlchemy 2 over Postgres, Clerk auth, React/Vite frontend, episode data from the TVmaze API.
RustSystemsBenchmarking
A zero-dependency NumPy, written from scratch in pure Rust — same internals as the real thing (flat buffer + shape + strides). Reimplements broadcasting, axis reductions, and matmul from first principles, then benchmarks a cache-friendly ikj loop order against BLAS-backed NumPy. Spec-driven with ~30 milestone tests.
PythonTUImpv / yt-dlp
A terminal player that browses YouTube Music and your local library side by side, plays audio through 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.
PyTorchDeep Learning
Core ML/DL models — backpropagation, CNNs, transformers — implemented from first principles in pure PyTorch, without high-level abstractions.
NLITransformers.jsClient-side
Scores a resume against a hand-written hiring rubric, then matches it against a pasted job description with an open-weights NLI model — entirely in the browser, no upload, no backend.
TensorFlowComputer Vision
A CNN reaching 98.4% accuracy on medical waste classification, shipped as an interactive TensorFlow.js web app. Findings published in IEEE Xplore.

More on GitHub →

Skills
Languages
PythonC++RustBashJavaScript
Libraries & Frameworks
PyTorchTensorFlowscikit-learnNumPyPandasOpenCVRasterioMatplotlibDjangoFlaskFastAPIDashvLLMSGLangRunPod SDKSkyPilot
Tools & Platforms
DockerKubernetesAWS SageMakerMLflowClearMLTemporalGitLinuxPostgreSQLStreamlit
Education & Certifications

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