I build ML systems, and I'm pointed at physical AI and world models — self-supervised representation learning (JEPA-family predictive embeddings), computer vision, and robotics that closes the loop with real hardware (ESP32 firmware, live sensors, a physical actuator). Before that: probability-of-default models for lending, agent orchestration, and data products on Databricks and GCP.
| Languages | Python, C/C++ (embedded/ESP32 firmware), Kotlin, JavaScript, TypeScript, SQL, HTML/CSS |
| ML/Data | PyTorch, TensorFlow, CatBoost, scikit-learn, pandas, NumPy, calibration, conformal intervals, Bayesian scoring, Markov chains, survival/censoring, causal caution |
| Physical AI / Representation learning | JEPA-family predictive embeddings (self-supervised, world-model-style architectures), frozen-encoder inference, Vision Transformers, linear/MLP probing, 3D volumetric perception, confound/bias ablation |
| Robotics / Embedded | ESP32/ESP-IDF firmware (C/C++) for real-time arm control and sensor tracking, computer-vision perception closing the loop with a physical actuator |
| GPU/CPU Engineering | PyTorch inference and training on GPU (Colab) driven from a CPU-only dev machine, per-unit checkpointed resumability, pinned CUDA/PyTorch dependency stacks |
| AI Systems | LLM tool loops, MCP servers, RAG/retrieval, golden-dataset evals, deterministic gates, generated-code validation |
| Cloud/Infra | Google Cloud Run, BigQuery, Gemini, Vertex AI, Databricks Asset Bundles, Delta Lake, MLflow, Docker, FastAPI, React |
Before enterprise AI product work, I did cognitive neuroscience research at UC Irvine's Center for the Neurobiology of Learning and Memory / Stark Lab, using Python for fMRI image processing and analysis in controlled studies of spatial navigation, hippocampal pattern separation — how the hippocampus keeps similar experiences from collapsing into the same memory — and human memory. I proposed and secured funding for a study outside the lab's traditional hippocampus focus; the approach was later adopted by postdoctoral researchers and presented to 2,000+ symposium attendees.
Currently extending that grounding at UC San Diego with coursework in Deep Learning for Computer Vision, Linear Algebra for Machine Learning, and a Deep Neural Networks practicum — building the same representation-learning toolkit behind the physical-AI work above.
Evaluation rigor for a frozen JEPA-style world-model encoder — proving what it actually learned before trusting it.
Built for the Claude Life Sciences hackathon with Gladstone Institutes. JEPA (Joint-Embedding Predictive Architecture) is the self-supervised family behind current world-model research — it learns by predicting representations, not pixels. NeuroAD stress-tests that promise: a foundation-model embedding separates disease from control, but it separates scanners and sites just as well. I ran frozen inference on Neuro-JEPA (a third-party NYU model extending V-JEPA 2 to 3D volumetric imaging) and built the extraction, confound-ablation, probing, and evaluation layers that tell you which signal the model is actually reading before you trust it downstream.
| Representation learning | Frozen ViT-MoE forward pass over preprocessed 3D volumetric scans, token mean-pool to 768-d, across 1,787 subjects spanning four public research cohorts |
| Probing | One reused logistic head pointed at either the outcome or the confound, so a result and its own falsifier share an estimator; site-disjoint StratifiedGroupKFold, bootstrap CIs, label-permutation nulls, PCA fit inside each fold |
| Headline finding | On 96 healthy brains with no disease signal, the frozen embedding predicts scanner field strength at AUC 0.931 at PCA-10 — acquisition physics is linearly decodable from a self-supervised representation and survives dimensionality reduction |
| Harmonization | Empirical-Bayes site-effect correction, deliberately label-blind: protected covariates in, outcome excluded so the correction never sees the label it will later be evaluated against. Cohort separability drops 0.9996 → 0.5634 while the disease-vs-control signal survives at 0.8313 cross-cohort |
| Why it matters for world models | Any frozen predictive encoder — JEPA-family or otherwise — can look like it learned the physics of a domain while it's actually keyed on an acquisition artifact. This is the confound-ablation methodology for telling those apart before you build on top of the representation |
| Agentic layer | Claude Sonnet router with enum-constrained routing plus an Opus agent that reads the evidence and drafts the next experiment; Claude never produces a number — every figure comes from the probe |
| Stack | Python, PyTorch, deepbet, scikit-learn, NumPy, Anthropic API, FastAPI, Docker, Google Cloud Run, Colab GPU runtimes (CPU-only dev machine) |
Robotic medication-safety cabinet — physical AI end to end: embedded control, computer vision, and a real actuator.
A robotic cabinet that identifies medication, detects dispensing errors, and physically delivers a dose — perception and control closing the loop on real hardware, not a simulation. I owned the embedded firmware and the vision stack end to end.
| Embedded control | ESP32/ESP-IDF firmware in C/C++ driving robotic-arm motion, camera capture, and sensor tracking for physical dispensing |
| Perception | Python computer-vision modules for medication identification, dispensing-error detection, and prescription reconciliation against a scanned label |
| Systems integration | OMI-captured prescriptions synced through Convex; real-time family alerts and a monitoring dashboard on the same event stream |
| Stack | C/C++ (ESP32/ESP-IDF), Python, computer vision, Convex, real-time dashboards |
| Result | Won Best Use of Convex, AI Valley Robotics Hackathon |
Explainable ML system for small-business lending decisions.
Team build for the Intuit TechWeek NYC 2026 Explainable ML hackathon. I owned modeling and calibration work for underwriting decisions: estimating probability of default, producing 90% intervals, and iterating on profit-aware approval logic under selection bias, leakage risk, censoring, and missing-not-at-random bank-feed data.
| Decision problem | Approve or decline SMB loan applicants to maximize realized portfolio profit under APR, origination-fee, LGD, and default-definition constraints |
| ML depth | Calibrated PD modeling, uncertainty intervals, profit break-even thresholds, reject-inference awareness, leakage controls, MNAR missingness indicators |
| Challenge scope | Loan decisions, default trajectory forecasting, causal counterfactual PDs, monotonicity checks, and explainable methodology defense |
| Stack | Python, pandas, NumPy, scikit-learn, SciPy, statsmodels, HGB/value ensembles, calibration pipelines, CSV validators |
| Validation | Submission schema/ID/range/monotonicity gate with PASS status before upload |
CareGap ranks likely medical deserts, estimates confidence, surfaces provider evidence, and recommends concrete deployment actions for healthcare planners. It combines lakehouse-style data workflows with statistical uncertainty layers so users can inspect not just where gaps exist, but why the system believes they exist.
| Data pipeline | Bronze/silver/gold flow for facility records, geography, provider claims, district health indicators, and review queues; bundled as Databricks serverless jobs |
| Modeling | CatBoost capacity and doctor-count imputers, native categorical handling, log1p targets, 5-fold OOF validation, clipped predictions, MLflow logging |
| Uncertainty | Bayesian validity posterior, empirical-Bayes trust smoothing, Wilson intervals, split-conformal facility trust sets |
| Stack | Python, Databricks Apps, Databricks SQL connector, Delta Lake, Unity Catalog, MLflow, Streamlit, CatBoost, PyDeck/H3, Google Cloud Run, Docker |
Guardia brings production-risk analysis into the developer workflow before code ships. It reads touched services, Git context, incident patterns, and observability signals, then explains likely deployment risks with cited evidence and targeted remediation paths inside IntelliJ.
| IDE engineering | Native IntelliJ plugin with PSI, Git4Idea diff extraction, PasswordSafe credentials, tool windows, editor highlights, and undoable WriteCommandAction patches |
| Risk engine | Sub-5ms deterministic Kotlin baseline plus bounded OpenAI/Codex Responses API override grounded in incident citations |
| Retrieval | Datadog incident context, BM25/structural matching, reciprocal-rank fusion, and offending-code snippet scans |
| Stack | Kotlin, IntelliJ Platform SDK, Gradle, JDK 21, OkHttp, Moshi, Python fixture generation, Datadog APIs, Supabase, OpenAI |
| Verification | 28 Kotlin test files plus remote-robot UI smoke-test source set |
Sentinel treats agent behavior as a security surface. Independent investigators verify payment-agent claims against ground truth, a deterministic safety gate blocks risky actions, and confirmed attacks generate new Python scoring rules that are AST-validated, regression-tested, and hot-deployed.
| Core loop | Supervisor agent, payment agent, risk/compliance/forensics investigators, verdict board, deterministic policy gate |
| Concurrency | Python 3.11 asyncio.TaskGroup dispatch for parallel sub-agent investigations with structured cancellation |
| Learning system | Generated Python scoring functions validated by AST parse, attack/clean regression checks, forbidden-token scan, and RestrictedPython execution |
| Stack | Python, FastAPI, Pydantic, Anthropic async client, React, Vite, JavaScript, XYFlow, Zustand, Aerospike, RestrictedPython, Auth0, Docker |
| Verification | 22 pytest files plus GitHub Actions backend deployment workflow to EC2 |
Multimodal meeting agent with real-time audio, vision, memory, and action dispatch.
This system transcribes live browser audio, extracts commitments, checks sentiment, and dispatches actions across Slack, Calendar, Gmail, documents, and BigQuery reports. Sessions run through WebSockets and async background execution so follow-up work can happen while the meeting continues.
| Realtime pipeline | Browser PCM at 16kHz, WebSocket transport, Cloud STT streaming, transcript buffering, Gemini extraction, deterministic sentiment gate |
| Reliability | Per-session dataclass registry, background task retention, proactive STT reconnect before streaming limits, async action fanout |
| Actions/data | Slack updates, Calendar events, Gmail summaries, document revision, BigQuery NL-to-SQL reports, DigitalOcean meeting memory |
| Stack | Python, FastAPI, JavaScript, HTML/Tailwind, WebSockets, Gemini, Google Cloud STT/Vision, BigQuery, Slack SDK, DigitalOcean inference/KB, Cloud Run, Terraform |
| Verification | 8 regression/smoke tests with GitHub Actions install, smoke, and test workflow |
Together is a real-time conversation system for people separated by distance and language. It translates speech bidirectionally, narrates the other person's environment on request, then turns call moments into a generated storybook and memory video.
| Realtime mode | FastAPI/WebSocket rooms, per-participant streaming sessions, Gemini Live bidirectional speech translation, translated captions, session affinity on Cloud Run |
| Vision/memory | Vision scene analysis with semaphores, markdown transcript logging, storybook generation through Gemini interleaved output, memory video pipeline through Veo |
| Reliability | Deepgram STT sessions, ElevenLabs/Gradium TTS fallback path, billing monitor controls for demo safety |
| Stack | Python, FastAPI, WebSockets, Gemini Live, Google Cloud Vision, Deepgram, Veo, ElevenLabs, HTML/JavaScript, Docker, Cloud Run |
| Intuit AI/ML Hackathon | 2nd Place, June 2026 - calibrated underwriting PDs and profit-aware decision logic |
| Google DeepMind Hackathon | Best Use of DigitalOcean, March 2026 - multimodal meeting memory and agent workflow |
| Experian Global AI Hackathon | 1st of 91 teams, November 2025 |
| AI Valley Robotics Hackathon | Best Use of Convex, November 2025 |
- Pointed at physical AI and world models: self-supervised/predictive representation learning, computer vision, and robotics perception that closes the loop with real hardware
- Build production-shaped AI systems across backend, frontend, data, ML, and cloud infrastructure
- Design decision systems with calibration, uncertainty, evals, explainability, and data-quality guardrails
- Ship agentic workflows with MCP servers, tool use, RAG/retrieval, deterministic gates, and human review
- Translate ambiguous business problems into measurable systems while staying close to the code

