I build and evaluate learning systems, from robot policies running on real hardware to the data pipelines that feed them.
Right now I train robot manipulation policies as a Graduate Research Assistant at San José State, and build the data and evaluation pipelines behind them. Before grad school I was a software engineer at Sapaad, moving five million rows a day through a multi-tenant platform.
pick-and-place success, 50 physical rollouts at the trained cube position
49,633
demonstration frames published as an open dataset, across 50 episodes
5M+
rows a day through multi-tenant ETL at Sapaad
0.87 s
median end-to-end latency per retrieval-grounded explanation
Everything I've built and measured
17 projects, covering physical robotics, distributed systems, data pipelines, speech and vision models, product engineering, and applied AI. Each one carries what it does, the numbers it produced, and a link to the code, the data, or the write-up behind it. The6 I would lead with are below; the rest are one click under them. Filter to the work that bears on your team and every match is shown, opened or not.
Trained a real robot arm to pick up a cube and place it from 50 human demonstrations, then built a resumable evaluation harness and scored 50 physical rollouts at 92% success.
92%
pick-and-place success, 50 rollouts at the trained cube position
2.49 cm
average placement error on successful trials
50
teleoperated episodes published as an open dataset, 49,633 frames
Python
PyTorch
CUDA
LeRobot
ACT
SmolVLA
Weights & Biases
Hugging Face Hub
Graduate Research Assistant, SJSU Applied Data Science · Mar 2026 to present
A LinkedIn-style hiring platform running as 17 coordinated services, plus an AI assistant that takes a recruiter from résumé to outreach and pauses for human approval before it sends anything.
17
containers across 5 service groups
6×
faster repeat profile lookups, under 100 concurrent users
Matched models 30 to 50 times its size on a four-class emotion benchmark with a 1.57M-parameter audio-video network trained from scratch, then showed which facial regions and frequency bands drove every prediction.
74.6%
validation accuracy, four-class CREMA-D on an actor-independent split
1.57M
parameters, 30 to 50× fewer than comparable multimodal baselines
Python
PyTorch
CUDA
Cross-attention fusion
Grad-CAM
+2 more
SJSU deep learning course, team project · Feb to May 2026
The same taxi data handled two ways: a scheduled pipeline that builds dashboard-ready tables joined with weather, and a streaming one that validates trips as they arrive and publishes rolling five-minute metrics.
Reads a photo of an invoice, pulls out the amounts and dates, and scores its own confidence in each field. It refuses to record a payment until a person approves it.
Condensed 27 million raw network connection logs into a map of which machines talked to each other, flagged the suspicious pairs with a graph neural network, and had a language model explain every alert in plain English.
27.1M
Zeek network flows aggregated into the graph
0.90
F1 on 329 held-out host-pair links, 0.94 precision and 0.87 recall
Trained a delay predictor on 9.5 million U.S. flights, then ran it inside a live stream so each incoming flight gets a delay probability within seconds. Where a flight lands and when it leaves drove most of the signal.
9.5M
flight records processed, 15 monthly BTS files totalling 3.1 GB
0.711
F1 for the random forest on a stratified 20% test split, 79.1% accuracy
Locates the real cube and bowl with printed markers and a calibrated overhead camera, then places them at matching coordinates in a physics simulation, so policies train against the real table's layout.
Python
NVIDIA Isaac Sim
ROS 2
OpenCV
ArUco
+2 more
Personal project, built on NVIDIA's Sim-to-Real SO-101 workshop · Aug 2026 to present
Watches APIs for trouble, asks an LLM what went wrong, and takes corrective action. It tunes its own alert thresholds from what happened last time. Built in five hours.
Python
FastAPI
LLM
Railtracks
React
SJSU Applied Data Science Hackathon 2026 · Mar 2026
Predicts a water-quality score from a century of California field measurements, after reconciling units and station naming that changed repeatedly over the years.
A Yelp-style application rebuilt so services communicate through events instead of calling each other directly, letting each part fail and recover independently.
Runs ROS 2 Jazzy, Gazebo Harmonic, RViz, and a TurtleBot3 model from one command, identically on macOS and Linux. A built-in desktop makes the GUI tools work without fighting X11.
Filtering above narrows this list. These go further: each track has a page of its own with the positioning, the results, and the parts of my experience that bear on that role, and everything else left out.
›Built from scratch: 14 earlier projects, language models first
Where I learned the internals rather than the API: a GPT-2 and a byte-pair tokenizer written from first principles, attention made measurably faster, a Phi-3 fine-tune, and then the same treatment for vision models and reinforcement learning. Smaller in scope than the work above, but several have live demos you can try in the browser.
Language models, from scratch and fine-tuned
Project
What it does
Links
GPT-2 from scratch
Built and trained a GPT-2 language model from first principles
Everything in the four groups above is attested by a project on this page, a role I held, or both. The last group is the honest remainder: used, but not the thing I would claim to be strong at.
Machine learning & robotics
PyTorch
CUDA
scikit-learn
pandas
LeRobot
ACT
SmolVLA
Imitation learning
Teleoperation
NVIDIA Isaac Sim
MuJoCo
ROS 2
OpenCV
Weights & Biases
Hugging Face Hub
Data & pipelines
Python
SQL
PySpark
Databricks
Spark SQL
Delta Lake
Parquet
Airflow
dbt
Snowflake
Kafka
LLM applications & retrieval
LangGraph
LangChain
Llama 3.3
Llama 3.2 Vision
Groq
Pinecone
ChromaDB
Sentence Transformers
Services & delivery
Docker
FastAPI
GitHub Actions
AWS EC2
React
TypeScript
Also worked with
JavaScript
SwiftUI
Vite
Chrome MV3
Gemini Nano
Cloud Firestore
MongoDB
Redis
MySQL
Streamlit
PyTorch Geometric
RoBERTa
Grad-CAM
Cross-attention fusion
Mel spectrograms
Fine-tuning
Retrieval-augmented generation
Gazebo
CycleGAN
Pix2Pix
Variational autoencoders
SSIM
Hiring for a new-grad role?
I'm available from December 2026 and open to relocating. Email me and I'll reply within a day.