Peel
HACKMIT GRAND PRIZE WINNER · SEP 2026
A sub thirty-dollar optical dissolution tester that plugs into a phone, paired with an evidence engine that checks the pill against 22,000 recall records. Six LEDs shine through a vial as the tablet dissolves, two sensors read transmission and scatter, and the curve becomes one of three observations behind a cited report. It won the grand prize among 1,100 hackers, and Elastic's first place.
BUILTThe idea, the chemistry, and the classification layer were mine — everything between the raw light readings and a verdict. A dependency-free Python package parses the board's one JSON line a second, tracks a run from the moment the tablet goes in, and reads absorbance as log10 of blank over now on the LED the active absorbs. Concentration comes from a calibration line fitted on standards read on the same rig, stored with its R² and a detection limit at 3.3 sigma of the blank noise; the plateau is called when a sixty-second window flattens below 0.0005 AU/s, and percent released and t80 come off the curve. Gates for cloudiness on the scatter channel, absorbance past 1.0 AU, colour where the active absorbs none, and runs under five seconds route each read to one of three verdicts: passed the screen at 90 to 110% of label, refer to lab, or cannot verify. Riboflavin on the blue LED is the calibrated reference.
GreenChain
HACKPRINCETON 3X TRACK WINNER · APR 2026
Ranks real manufacturers on emissions, transport CO₂, grid carbon, and climate risk. An agent swarm finds the candidates, XGBoost models score them, a Three.js globe draws them. It won three tracks and was a grand-prize finalist.
BUILTThe entire backend was mine — the models, the agents, the API. A FastAPI service under uvicorn. One Dedalus runner call per search hands Claude Sonnet five tools — Brave search, a page fetcher and three scorers — over at most fourteen steps; three XGBoost quantile regressors then rank what comes back, q10/q50/q90 across 55 features, at a Spearman of 0.843 on 3,977 held-out rows. Transport is GLEC factors per tonne-km against port distances, and the composite weights five dimensions, manufacturing heaviest at 0.40. Next.js 16 and React 19 in front.
Simulates public-health interventions across US counties on a D3 choropleth, over County Health Rankings data. A second view projects one person's risk ten years out.
BUILTThe data, the ML, and the statistics were mine. An Express API in TypeScript, deployed as Vercel functions, over 3,159 county records. Each of the twenty interventions carries per-indicator effect sizes, put through a saturation curve on spend per head, a targeting multiplier and a square-root time scale, then priced in QALYs with a ±13% band. Peer counties come from a weighted Euclidean distance over six demographic axes, and the individual view walks five risk scores forward a year at a time. React 19, Vite and zustand in front.
BrainSentry
MAY — JUL 2026
A demo site for a stroke self-check on a phone: the camera runs the face-exam prompts, the mic drives a live waveform, a trends view plots each reading against a baseline. A proof of concept with no scoring behind it yet, presented to the health ministries of Indonesia and South Sudan for potential collaboration.
BUILTI designed it and co-built it. React with no server behind it, and a hand-rolled History API router. The face step drives getUserMedia through eight timed prompts; the voice step reads the live MediaStream into a Web Audio analyser. The analysing globe is react-three-fiber over world-atlas topology, code-split and fetched the moment a check begins, with bloom only where WebGL2 exists.