314e Corp current
- (HEAD) Software Development EngineerJan 2025 – Present
- Associate Software Development EngineerDec 2024 – Jan 2025
- Software Development Engineer InternJul 2024 – Dec 2024
- 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