Projects

rag-contract

A question-answering service over a fixed corpus of six IETF RFCs, built as a contract rather than a pipeline: what it retrieves is measured, what it cannot support it refuses, and every answer names the index version it came from.

  • recall@5 = 1.00, MRR 0.829 over an annotated question set
  • Retrieval costs 0.026 ms per query against a 150 ms request deadline
  • A quality regression below the committed threshold fails CI

Python · FastAPI · NumPy · OpenAI embeddings · Fly.io

An answered question showing the claim the grounding check withdrew and the rule that withdrew it

AI Incident Investigation Platform

Turns an incident description into a structured investigation brief. The model returns a schema, not prose, and a leading hypothesis is never presented as a confirmed root cause.

  • Schema-constrained output validated by Pydantic, not parsed from free text
  • Five investigations per client per hour, refused with 429 and Retry-After
  • API key in Google Secret Manager; CI runs tests and the Docker build on every push

Python · FastAPI · Pydantic · Google Cloud Run · Docker

The platform showing a structured investigation result with severity, evidence and a recommended next action

llm-inference-cp

A distributed control plane for LLM inference serving, written in Go. It owns membership, failure detection and routing, and stays out of the data path — it tells the gateway who to route to, never forwarding a byte itself.

  • One command induces two failures — a crash and a healthy worker misjudged dead — and no request is lost
  • Liveness is a phi-accrual suspicion score, not a fixed timeout
  • When a false positive puts two attempts on one request, first-wins adjudication discards the loser

Go · gRPC · Protobuf · phi-accrual detection

A terminal recording: a worker is killed mid-request, a healthy worker is frozen until the detector misjudges it, and every request still completes

CaseFlow

A complete case-management slice from React to PostgreSQL. Operators create and assign cases, move them through a status lifecycle, record activity, and see queue totals computed in the database.

  • 25 backend tests pass; Flyway owns the schema and applies migrations on startup
  • Three Railway services, with the backend and database on private networking only
  • Local and live deployment both verified end to end, including after a page reload

React · TypeScript · Spring Boot · PostgreSQL · Railway

The CaseFlow case list beside its database-backed workflow summary

Visual Algorithms

Step-by-step animations of Knuth–Morris–Pratt, Manacher and Floyd cycle detection. Built twice, five years apart, with both versions deployed side by side.

  • 2021: hand-written vanilla JavaScript and SVG, no framework and no build tool
  • 2026: rebuilt as a React 19 + TypeScript app, with the algorithm cores ported verbatim, typed and tested
  • Imperative redraw loops became precomputed frame arrays; both builds are live, at / and /legacy/

React · TypeScript · Vite · SVG · vanilla JS

Visual Algorithms stepping through Manacher's algorithm alongside its decision flowchart