aanish.com · Los Angeles

Aanish Sachdev

type Aanish = TechnicalCofounder & OpenSourceBuilder;

I build type-safe feedback loops for contract-heavy software.

Technical co-founder at Simplest Healthcare. I build clinical software people actually use, and open-source the primitives underneath it.

Los Angeles · USC CS '26 · self-taught FHIR · happiest in the ambiguous 0→1

// type-safety-loops

Type safety turns assumptions into contracts. Compilers, builders, validators, and CI turn those contracts into feedback loops. Four of them:

01 the origin — API drift

I learned this wiring a TypeScript frontend to a separate backend through an OpenAPI contract. (the full CoralEHR origin story lands here)

// the backend renamed a field:
type User = { id: string; displayName: string };

// the frontend still reads the old name:
user.name
//   ~~~~ Property 'name' does not exist on type 'User'.

TypeScript turns a rename into a compiler-guided checklist.

02 what TypeScript achieves — impossible states

loose

type State = {
  loading: boolean;
  error?: string;
  user?: User;
}; // loading + error + user can all be true at once

typed

type State =
  | { status: "loading" }
  | { status: "error"; message: string }
  | { status: "success"; user: User };

Good types make invalid states unrepresentable — a class of tests you never write.

03 how a compiler thinks — type-loupe

Edit the code — a hand-built checker runs live in your browser. No TypeScript shipped; type-loupe is its own tiny parser + checker.

// symbol table

  • type User: { name: string }
  • let user: { name: string }

// diagnostics

  • 2:26 user.name: expected string, found number

04 the agent loop — the model guesses, the compiler checks

Watch it run: the agent writes FHIR, the compiler rejects it, the agent reasons and patches with fhir-craft, the check passes — on a loop. (fixture replay — real tool output, no live model)

Animation: an agent writes a FHIR Patient with name as a string; the compiler reports it is not assignable to HumanName[]; the agent reasons and rewrites it with fhir-craft's createPatient; the type check passes. Loops continuously.

interface Products {   // shipped, in production

CoralEHR

live

An AI-native EHR for private-pay behavioral health — built with clinicians, not just for them.

status:
'live',
stack:
[ 'React', 'TypeScript', 'AWS Lambda', 'API Gateway', 'Cognito', 'HealthLake FHIR R4', 'DynamoDB', 'CDK' ]

USC × Techstars University Catalyst · 80+ therapists interviewed · FHIR R4 with RBAC + ABAC + immutable AuditEvent logging · clinical AI agents over HealthLake

open coralehr.com → read the build →

TicVision

live

Tourette's tic-tracking with remote therapeutic monitoring — measure the tic, then the therapy can go remote.

status:
'live',
stack:
[ 'React Native', 'Expo', 'AWS serverless', 'API Gateway', 'Cognito' ]

250+ downloads · presented at TIC-CON 2025 · ML study on de-identified data predicting tic intensity and high-risk episodes

open ticvision.io → read the build →

}

interface OpenSource {   // 3 shipped · 2 building

aanishs/em-dash

flagship shipped TypeScript ★ 9

Human-in-the-loop SOC 2 / HIPAA / GDPR compliance for Claude Code — scans your infra, drafts the fixes, emits signed audit evidence. The open-source answer to five-figure compliance SaaS.

$ gh repo clone aanishs/em-dash view source →

aanishs/fhir-craft

building TypeScript

Opinionated TypeScript builders for valid FHIR R4 — write createPatient(), not raw FHIR JSON. Define your app’s FHIR vocabulary once with defineCode(); build valid resources everywhere.

$ gh repo clone aanishs/fhir-craft view source →

aanishs/dunning-kruger

shipped TypeScript

Interviews you about your own codebase, scores your answers against the source with file:line receipts, and plots what you think you understand against what the code proves.

$ gh repo clone aanishs/dunning-kruger view source →

aanishs/simply-html

shipped TypeScript

Turns agent-written markdown into living, PIN-gated HTML pages. The model writes the content; it never writes the JavaScript.

$ gh repo clone aanishs/simply-html view source →

bonfireDB

building TypeScript

An agent-native clinical backend — typed clinical primitives on Postgres with FHIR R4 generated underneath, so you ship FHIR-safe apps without running a FHIR server.

}

type ForFun =   // nights and weekends

namespace Stack {

type tools = 'TypeScript' | 'React' | 'React Query' | 'React Native' | 'Node' | 'AWS Lambda' | 'API Gateway' | 'Cognito' | 'DynamoDB' | 'S3' | 'HealthLake / FHIR R4' | 'CDK / SAM' | 'LangGraph' | 'AutoGluon' | 'MLflow' | 'Playwright' | 'OAuth2' | 'CI/CD';

}

export { contact, resume }

// history — internships, before the 0→1
  • ArcOne ML Engineer Intern · Summer 2025 · Austin, TX Built an AutoML churn pipeline (AutoGluon + MLflow) and a LangGraph agent that surfaces at-risk accounts.
  • TimeRewards Software Engineer Intern · Summer 2024 · Austin, TX Salesforce ↔ Slack integrations on AWS Lambda + Node.js with OAuth-secured workflows.
  • Hackathons National hackathons, India 1st place; top 100 of 50,000+ teams.