$ dhairya --run "take agents from zero to ten, build my own things at night"

Dhairya
Shah

Founding engineer scaling an early-stage healthcare-AI startup from zero to its first ten clinics, agents, infrastructure, and operator tooling, single-handedly. I reverse-engineer whatever has no API, and I build my own things on the side.

STATUS
shipping · 0→10
LOC
Bangalore, IN ⇄ US
MODE
founding engineer
NEXT
physical AI
0→10
clinics, taken from zero to production
1
engineer: first India hire, built it solo
10M+
users served on BNY's Wove platform
13
fatal bugs caught on eval day one
~40%
cut from the LLM token bill
RetellVAPIDeepgramCartesiaLiveKitPlaywrightClaudeFastAPIPostgreSQL + RLSCloud RunCloud TasksRustTauriMCPDockerathenahealtheClinicalWorksJavaSpring BootSplunkGrafanaRedisSQLRetellVAPIDeepgramCartesiaLiveKitPlaywrightClaudeFastAPIPostgreSQL + RLSCloud RunCloud TasksRustTauriMCPDockerathenahealtheClinicalWorksJavaSpring BootSplunkGrafanaRedisSQL

SPAN 01 / SYSTEM_PROMPT · t+26y

I take agents to production, then keep them alive.

I'm the founding engineer and first India hire at TriFetch, backed by Nexus Venture Partners, $1.9M pre-seed, and I've carried it from zero to its first ten paying clinics largely single-handedly: the agents, the runtime, the infrastructure, the operator tooling, the on-call. My systems get reviewed in PST and paged in IST, and they have to survive both.

The work that taught me the most wasn't on any roadmap. My clinics' patients were getting stale appointment data because the legacy EHRs didn't surface live scheduling through their standard APIs. I got close enough to the clinics and their patients to feel that as my own problem, so I built real-time integrations that reach the truth instead of a stale cache, and the agents book against what is actually open.

When software has no API, you use the screen. When it has one, you read all of it.

Now I'm pushing further. We sit on a lot of healthcare-admin data, and I'm in the early research of structuring and de-identifying it, reproducing the HealthAdminBench results, and standing up training and eval pipelines to explore RL and SFT on agentic tasks, the first steps toward specialized agents for long-horizon admin work with real medical intelligence. I want to keep scaling early startups from the inside for the reps and the taste before I found my own, and on my own time I'm getting into physical AI: robotics and drone kits on the bench, tinkering toward something.

Before this I was an SDE at BNY on the Wove wealth-management platform, an entitlement-sync service for 10M+ users where correctness was the entire product. And before that, IIT Gandhinagar: computer science, first-author ML research, and the Gold Medal for Integrity on the way out.

system_prompt.rules
  • You are Dhairya.
  • You automate the boring parts.
  • You do not ship demos; you ship things that run at 3am.
  • You read the protocol spec before complaining about the protocol.
  • When software has no API, you use the screen. When it has an API, you read all of it.
  • Silent failures are worse than loud ones, make everything measurable.
  • You'd rather scale an early startup from zero and take the reps now, the taste, the network, the founding come later.
  • You are aggressively AI-native in how you build; it is why you ship at the speed you do.
  • You treat everything as a system to be reverse-engineered, EHRs, codebases, markets, flight routing. You find this genuinely fun.

SPAN 02 / TOOL_CALLS · t+3y

What I've wired into production.

call: voice_agent(realtime=true, langs=["en","zh","es"])

production phone agents

Real-time phone agents on Vapi and Retell, live with real callers. Scheduling, screening questionnaires, multi-turn conversations that survive interruptions. Barge-in handling, mid-call tool calls, and handoff logic for the moment a human should take over.

call: computer_use(target="legacy_desktop_via_citrix")

UI automation where no API exists

Agents that operate legacy desktop software through the screen: reading the UI, clicking, typing, verifying. That includes apps running inside Citrix, where every frame is pixels and nothing is inspectable. Deterministic Playwright steps where possible, a vision agent loop (screenshot, decide, act via CDP) where the UI shifts.

call: extract(engine="ocr+llm")

documents → structured data

Pipelines that turn messy scans and faxes into clean structured records: PaddleOCR for the pixels, Claude for the judgment, evals for the honesty. Field-level accuracy is measured against labeled sets, not vibes.

call: sre_agent(mode="read_only_default", confirm=true)

investigate → heal → draft postmortem

An internal SRE agent with scoped access to GCP (logging, Cloud Run, Cloud Tasks), GitHub, the voice provider, and the database through a read-only proxy. It detects anomalies, investigates the likely cause with a confidence score, and proposes self-heals for known failure modes: a stuck-state reaper, releasing stale held slots, unsticking a referral.

call: build(stack=["rust","tauri","react/ts","fastapi","gcp"])

the cockpits the agents live in

Agents need a control surface humans trust. Mine is a Tauri 2.0 desktop app (Rust core, React/TypeScript front) where operators review, approve, and override what agents did. Overlay UIs inject agent output directly into third-party software.

SPAN 03 / RUNS · t+2y

Runs, shipped and in flight.

run: voice_fleet

status: completedongoing · in production

Answer and place phone calls no one has time for.

A fleet of real-time voice agents for appointment scheduling at US clinics: outbound calls that run screening questionnaires, book into real calendars in legacy enterprise software, and hand off to humans on edge cases. Multilingual: English, Mandarin, Spanish.

outcome: Live with real callers daily; call outcomes classified and audited by a second model.

run: citrix_operator

status: completedongoing · in production

Operate desktop software that has no API, through Citrix.

Screen-level agents that log into legacy enterprise applications, create records, file documents, and book into calendars. All of it across a Citrix boundary where the automation sees only rendered frames, with human approval on every write.

outcome: Replaced hours of daily manual data entry; runs unattended with operator review.

run: document_pipeline

status: completedongoing · in production

Turn inbound fax queues into structured data.

OCR + LLM extraction pipeline (PaddleOCR + Claude) over scanned documents from regulated workflows: classification, field extraction, and triage rules, with labeled-set evals gating every deploy.

outcome: Production scale; measured field-level accuracy in the mid-to-high 90s on labeled evals.

run: sre_agent

status: completedin production

Detect, investigate, and safely heal agent-runtime incidents.

Scoped MCP tools over GCP logs/Cloud Run/Cloud Tasks, GitHub, voice provider, and a read-only DB proxy. Anomaly detection → root-cause hypothesis with confidence → proposed heal behind confirmation gates → drafted postmortem playbooks.

outcome: Read-only by default; no prod mutation without explicit human confirm.

run: healthadmin_models

status: in_progressearly research · in progress

Explore specialized agentic models for long-horizon healthcare-admin workflows.

Structuring and de-identifying our production healthcare-admin data, reproducing results from HealthAdminBench (Stanford Shah Lab), and standing up training and eval pipelines to explore RL and SFT on agentic tasks, driven by our in-house agent harness.

outcome: Early stage on purpose: data and benchmark pipelines first, models next. Reproductions before claims.

HealthAdminBench

run: physical_ai

status: in_progressnights & weekends · in progress

Learn physical AI by building, not reading.

Getting robotics, PCB, and drone kits onto the bench to tinker toward something at the intersection of agents and the physical world.

outcome: Just started. The point is reps and taste, not a launch.

run: schedlab_rs

status: completedopen source · Rust

Find out when shortest-job-first actually wins in an LLM inference scheduler, and whether that answer survives your cost-model assumptions.

A deterministic vLLM-V1-mechanism scheduler + paged-KV simulator in Rust: unified token budget, chunked prefill, recompute preemption, watermark KV. Hard policy/mechanism split with type-enforced no-future-info leakage, three parametric cost families swept as a first-class dimension, golden + property tests, and a multi-tenant fairness study.

outcome: Predicted-SRPT captures ~97% of oracle goodput (regret 0.012 vs FCFS 0.358), but the winning policy is cost-model-dependent in 16 of 45 regimes. A single-equation sim would report that as fact. Findings replicate on a real Azure LLM trace (~98% of oracle). MIT.

repowriteup

run: voice_eval_harness

status: completedopen source

Make voice agents testable before they embarrass you.

An eval harness for voice agents: structural linter, adversarial caller simulator, production-call replay into PHI-scrubbed fixtures, LLM-judge with a hard budget guardrail, tool-arg contract validator, regression-diff CI gate.

outcome: Caught 13 fatal config bugs across 8 production agents on day one. Apache-2.0.

repodemo

run: skill_pack

status: completedopen source · npm

Package the agent-engineering playbook as a skill pack.

27 production-incident-mapped skills for agentic healthcare engineering: PHI redaction, FHIR generation, HIPAA review on diffs, HL7 transforms, SMART-on-FHIR OAuth, Da Vinci prior-auth, webhook HMAC, multi-tenant RLS guards, plus 7 zero-dep TypeScript reference impls.

outcome: MIT, v0.4.x; iterating in public.

repo

run: mcp_server

status: completedopen source

Ship an MCP server so agents can consume clinical tooling safely.

A Model Context Protocol server bridging FHIR R4 to AI agents: typed tools, reproducible evals against frozen golden datasets, and reversible keyed de-identification so agents work on realistic records without holding real identities.

outcome: Open source; audit-log ↔ LLM-trace correlation included.

repolive

run: research

status: completedIIT Gandhinagar

Publish ML research that survives review.

First-author: Distribution-Free Uncertainty Quantification and Calibration for Energy Disaggregation. Conformal prediction applied to non-intrusive load monitoring, beating Bayesian baselines on expected calibration error at materially lower compute. Plus research on CNAPs meta-learning for few-shot classification.

outcome: Published, ACM JCSS 2025 (DOI 10.1145/3748334).

scholardoi

SPAN 04 / CHECKPOINTS · restore points

Where I've been.

ckpt: founding_engineer

Feb 2026 to now

Founding engineer · first India hire · TriFetch · Nexus Venture Partners · $1.9M pre-seed

Built and run the multi-agent production system largely single-handedly as the first India hire: realtime voice agents, computer-use automation against legacy EMR desktops, OCR + LLM document pipelines, and the Tauri cockpit operators drive it from. Built real-time integrations into legacy EHRs to reach live scheduling data their standard APIs didn't surface, so the agents book against what's actually open. Took the platform from zero to ten paying clinic customers.

Replaced LangGraph with a custom YAML workflow engine when per-tenant variation became unmanageable, onboarding dropped from weeks to ≤5 business days. Multi-tenant Postgres 15 with row-level security, append-only audit logging, ~40% token-cost reduction via prompt caching, and an internal SRE agent with read-only-by-default + confirmation gates. On-call across every tenant; zero security incidents.

ckpt: bny

Jul 2024 to Jan 2026

Software Development Engineer 1 · PershingX, BNY (Wove platform)

Built Party Master, Wove's entitlement-sync service, Java + Spring Boot, serving 10M+ users on a wealth-management platform whose clients manage billions in AUM. Normalized multiple upstream sources into one schema and cut client onboarding from over 24 hours to about 30 minutes with async ingest and cache-backed lookups.

Designed batch jobs and microservices with SQL-driven test scenarios, instrumented Splunk + Grafana for cache and latency analysis, wrote cross-source reconciliation scripts that auto-deactivated invalid users, and carried production on-call. Enterprise correctness, learned at the tier where every downstream system trusts yours.

ckpt: first_run

Jun to Jul 2023

Software Development Intern · BNY

Built a mock-stubs web app for API testing from scratch, Java + Spring Boot, role-based auth, in-memory DB for latency, plus the API documentation to go with it. The internship that turned into the full-time offer.

ckpt: iitgn

2020 to 2024

B.Tech, Computer Science and Engineering · IIT Gandhinagar · CPI 8.57/10

Curriculum ran the full ML stack: Machine Learning (ES654), Probabilistic ML, data-driven algorithms (CS328), NLP with statistical language modelling, coresets for ML, numerical methods, and computer networks. Research with Prof. Nipun Batra's lab became a first-author publication (see run: research).

Awarded the institute's Gold Medal for Integrity at graduation. Served as PDC Secretary, led a 50-member team, and shipped the campus tech-summit website. First team-lead experience: a 10-person alumni-database project and a 5-person interpreter build, a toy language with both treewalk and bytecode interpreters, top-3 in the campus hackathon.

SPAN 05 / LOGS · stdout

What I write about.

A quadcopter drone in flight

NEXT / PHYSICAL_AI

Software that acts in the physical world.

The reliability and orchestration I build for agents on screens is the same problem one layer down. Robotics and drone kits are on the bench. I learn by building.

SPAN 06 / HUMAN_HANDOFF · t+now

Your turn.

This is where a human takes over. If any of this is your kind of problem, let's talk.

Reach me here, in order of preference:

Machine-readable version of this site. My people will talk to your people's agents.