I build applied ML systems and the infrastructure under them: agent evals, storage engines, network transports, and API gateways that have to survive outside notebooks.
I'm from Mumbai, studying CS at UC San Diego ('28) with minors in cognitive science and business economics. Right now my week splits between Mountain View and San Diego: GTM/AI engineering at GMI Cloud, and bioacoustics ML research with Engineers for Exploration at the Qualcomm Institute. I like to build, break, and ship fast, mostly at the intersection of startups, medtech, and applied AI.
I like owning a system end to end: the eval harness and the agent on top of it, the storage engine and the service that stresses it, the model and the deploy path that puts it in front of people. House rule for everything I build: publish the number, and publish what the number cost. Every benchmark on this page states its losing axis, because a result you can't interrogate is marketing, not engineering.
A lot of that starts at hackathons: five of the projects on this page were built in a weekend or less, and GMI Cloud published my model-cascade benchmark. Off the keyboard: poker, 8-ball, F1 weekends, Lego builds, soccer, and too much sci-fi.

Orchestration frameworks, eval harnesses, and self-correcting agents, measured on accuracy, cost, and latency, not vibes.
Vision and audio pipelines for messy real-world data: medical imagery, bioacoustics, RF signals, geospatial rasters.
Storage engines, transports, and gateways in C++ and Go, benchmarked head-to-head, with the losing axes published, not hidden.
Built Mint, an internal lead-intelligence platform that turns event guest lists into evidence-backed, reviewable sales leads, and designed the verify-then-escalate model cascade benchmark GMI Cloud published.
Worked across the ML core, LLM agent layer, and backend of a medical wound-imaging pipeline: MedSAM2 segmentation, clinical-documentation agents, and the persistence and deploy path behind a 3D viewer.
Build ingestion and indexing pipelines for multi-terabyte bioacoustic datasets and study focal-to-soundscape domain shift for bird-call classifiers.
Previously: Research Engineer, Computer Vision (Oct 2025 – Jan 2026): boundary-aware evaluation for mangrove canopy segmentation, exposing errors standard IoU masked.
Built an LLM task-orchestration framework powering a VS Code chat extension, plus an end-to-end-encrypted proxy routing LLM and third-party API requests with server-side credit accounting.
Every number below traces to a committed benchmark, test run, or published result, losing axes included. Seventeen of these run in your browser: not a recording of a benchmark, the repository’s own code compiled to WebAssembly or executed on the committed data, so you can move the input and watch the result move with it.
A leveled LSM-tree key-value store from scratch: checksummed WAL, MVCC snapshots, Bloom-filtered SSTables, group commit. Durability verified by a harness that tears writes and SIGKILLs the engine mid-flight; the same matrix gates every push in CI.
Transport library for small messages on lossy links: SACK-based ARQ, adaptive RTO, SWIM failure detection on a lock-free epoll loop. Trades bulk throughput for tail latency, and publishes the losing axis (kernel TCP wins clean-link throughput ~27×).
Built on taut: a coordinator-less delivery service replicating a write-ahead log by majority commit under epoch-fenced leases, with no ZooKeeper and no etcd. Building it surfaced two SWIM protocol bugs, fixed upstream. A chaos suite gates every PR.
Lets a team share one LLM provider key safely: personal revocable keys with rate budgets, the real credential injected server-side. Atomic Redis rate limits hold a global ceiling across replicas where per-replica limiters admit 3× the limit.
There is no free source of full-depth crypto order book history you can trust: everything free is top-of-book, resampled, or carries undocumented gaps. This records six venues to Parquet and publishes its own coverage, so a window you can't trust says so instead of interpolating.
Two-stage routing (Opus 4.8 primary, GLM 5.2 FP8 rescue on verifier failure) over 100 frozen EvalPlus tasks, ranked by $/solved-task. Beat every single-model baseline; the gain traced to complementary failure modes, not a uniformly better model.
End-to-end lead intelligence at GMI Cloud: identity resolution across Apollo and Exa evidence chains, LLM ICP tiering with human-review gates and audit trails, and a 16-tool conversational agent over the lead database.
Voice-first compression on two orthogonal axes: token-space (LLMLingua + self-implemented AttentionRAG behind an order-preserving merge) and model-space (~4-bit TurboQuant KV cache + LCLM latent compression), so the savings multiply.
Built at the Bow Capital Defense Hackathon (UCSD). Anomaly-based RF detection over dual SDR backends, a UDP gossip mesh, and a 3D operator dashboard in Next.js + deck.gl.
Built at the Loop Engineering Hackathon: detects, diagnoses, and remediates production incidents end-to-end while holding zero standing credentials: single-use, scope-bound grants behind a Pomerium identity-aware proxy, with policy-denied escalation and a full audit trail.
Search-and-rescue ops: LLM agents profile the missing person, a Monte Carlo engine turns hypotheses into a live probability heatmap and team assignments, and the coordinator drives it all hands-free by voice.
Each of these started as a claim I could not find a number for, so I built the smallest thing that would settle it. The page runs the repository's own code in your browser, on the committed data, so you can move the input and watch the finding hold or break. Eleven of them, all reproducible.
"Decode is memory-bound" is the most repeated claim in LLM inference. On an A6000 at batch 1 it is neither memory-bound nor compute-bound: 38.3% of the step is not kernel work at all, and it vanishes with batching.
On two T4s over PCIe the second GPU pays on small models and stops paying on large ones, which is the opposite of the usual advice.
At 5% OCR error, retrieval recall is exactly what it was on clean documents while half the answers have already become unrecoverable. Recall is the metric that will not warn you.
An open reproduction of feature-level activation steering. At the strength that reaches a 100% response rate every behavioural check passes and the model is emitting token soup. Only perplexity catches it.
A memory system reads a conversation once and answers cheaply forever. The reading is an LLM pass over every turn, and it cost 12.7x what all twenty questions cost combined.
Writing every extracted action item puts 18 wrong rows into the CRM out of 40. Gating at 0.65 cuts that to 2 and still auto-commits 19 of the 22 genuine ones.
120 real YC companies, hand-labeled on three axes. Enriching every lead is 25% precision; a rules filter gets 93.8% and misses half the real ones. Both numbers matter and neither is published anywhere.
A published production manager prompt states its reject contract four times and contradicts itself once. A parser built from the majority form reads that reject as silence, and the gate treats silence as approval.
A computer-use agent driving a booking screen has no transaction. Sixteen agents, one room: the legacy path books it 93 times, and the obvious fix removes that entirely while doing nothing for lost updates.
Deposit-flight risk is U-shaped. A bank that just took a large inflow is about as likely to have a drawdown next quarter as one that just lost deposits. Every US bank, 2015 to 2026.
A comparable-sales estimator for fire apparatus, back-tested against real sales. Half the estimates are off by more than 36%, and covering nine cases in ten takes a range nearly seven times wide.
Eval framework for LangGraph agents: cost-adjusted accuracy, async-safe usage attribution, Ray Tune HPO
7-stage misinformation-detection pipeline over 4 live social APIs with a cost-tiered LLM path
Agentic training monitor: SPC detection across 4 failure modes, bounded tool calls to self-correct runs
Led an 11-engineer team through a 10-week Agile SDLC to ship a Scrum/Kanban/XP app on Cloudflare
Ethereum behavioral analytics: 16-feature wallet matrix clustered into 9 archetypes with anomaly flags
VS Code extension mapping any repo as an interactive dependency graph with AI file explanations
Wildfire risk pipeline: ELMFIRE fire-spread ensembles score 24 candidate firebreak layouts
CNN-free audio classification: 487-dim engineered features incl. wavelet scattering, leak-free CV
ResNet-50 pipeline detecting riders and classifying helmet use; published via Lumiere, top 10% of ~200
Incubator management platform: 6-tier RBAC via Supabase row-level security across 13 tables