Skip to content

Aakash Madabhushi

Machine Learning Engineering

I build the systems a research team runs on: the pipeline that feeds training, the harness that measures the result, and the service that puts it behind an API.

Most of my research work is infrastructure rather than modeling. In the SJSU robotics lab I own the path from raw teleoperation data to a scored policy: pre-training quality gates that refuse to hand a corrupted tensor to a training run, a PyTorch and CUDA pipeline with configurable augmentation and 5K-step checkpointing that can resume a 60K-step run after an interruption, Weights & Biases tracking, and a physical evaluation harness, built for a 100-trial protocol, that scores rollouts one at a time, returns the arm to start on its own, guards against stale caches, and logs each failure mode separately. The researchers get a number they can trust and a run they do not have to restart.

The modeling is real too, across four settings: a 52M-parameter Action Chunking Transformer policy scored on physical rollouts, a graph attention network classifying host-pair links for intrusion detection, a 1.57M-parameter audio-video emotion model built from scratch whose cross-attention fusion matched baselines 30 to 50 times its size, and classical models on tabular data. So is the serving end, where the model has to answer inside a latency budget rather than in a notebook: the threat-detection system returns a retrieval-grounded explanation in 0.87 s at the median, and one model runs behind a FastAPI service that rebuilds and redeploys itself on every commit. Underneath all of it I have built the primitives by hand, from a GPT-2 and a byte-pair tokenizer written from scratch to attention-speedup work and a Phi-3 fine-tune.

0.87 s
median end-to-end latency per retrieval-grounded explanation
92%
pick-and-place success, 50 physical rollouts at the trained cube position
0.90
F1 on 329 held-out host-pair links, 0.94 precision and 0.87 recall
49,633
demonstration frames through the quality gates and into training

8 projects in this area

Every link goes to code or data you can inspect yourself.

  • Four panels from the report, one per emotion class, naming the facial region the model attended to for each: mouth and jaw for angry, the full face for happy, diffuse for neutral, eyes and brow for sad.

    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.

    ML Engineering

    SJSU deep learning course, team project · Feb to May 2026

  • Reached 0.90 F1 flagging suspicious host pairs in 27.1 million Zeek flows, by condensing them into a connection graph with Airflow, dbt and Snowflake, classifying links with a graph neural network, and having Llama 3.3 explain each alert.

    ML EngineeringAI EngineeringData Engineering

    SJSU capstone, team project · Feb to May 2026

  • Took a cancer-recurrence model the whole way to production, by wrapping scikit-learn in a FastAPI service, containerizing it, and redeploying to AWS EC2 automatically on every commit through GitHub Actions.

    ML EngineeringSoftware Engineering

    Personal project · Apr 2025

  • Reconciled 112 years of California field measurements into one trainable table, by resolving units and station naming that changed repeatedly between 1913 and 2025, then predicting a water-quality score with scikit-learn in Streamlit.

    ML Engineering

    SJSU DATA 245, Machine Learning · Nov to Dec 2025

  • The SO-101 arm on the lab desk beside the marked cube it picks up and the clear container it places the cube into.

    Scored 92% pick-and-place success and 2.49 cm mean placement error over 50 physical rollouts, by training an Action Chunking Transformer on 50 teleoperated demonstrations and scoring it against a protocol locked before evaluation.

    Robot LearningML Engineering

    Graduate Research Assistant, SJSU Applied Data Science · Mar 2026 to present

  • Blocks 100% of payment actions until a person approves them, by reading invoice amounts and dates with Llama 3.2 Vision, scoring its own confidence in each field, and gating every write behind a LangGraph human-approval step.

    AI EngineeringML Engineering

    Personal project · Jun 2026

  • Two charts from the report: a bar chart ranking which features predict delay, and a pie chart showing the top five predictors against all other factors.

    Reached 0.711 F1 predicting flight delays across 9.5 million U.S. flights, by training a Spark MLlib random forest on 15 monthly BTS files and running it inside a Kafka stream so each incoming flight gets a probability within seconds.

    Data EngineeringML Engineering

    SJSU big data course, team project · Dec 2025

  • Surfaces Wikipedia pages turning contentious in real time, by streaming every English edit through Kafka as it happens and scoring the tone of each edit summary with RoBERTa.

    Data EngineeringML Engineering

    Personal project · Nov 2025

Select a project for the full detail and links.

ML Engineering

Reading Emotion from Voice and Face

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.

SJSU deep learning course, team project · Feb to May 2026

Four panels from the report, one per emotion class, naming the facial region the model attended to for each: mouth and jaw for angry, the full face for happy, diffuse for neutral, eyes and brow for sad.

Results

74.6%
validation accuracy, four-class CREMA-D on an actor-independent split
1.57M
parameters, 30 to 50× fewer than comparable multimodal baselines
12×
faster training epochs after caching decoded media, 1,100 s to 88 s

Built with

  • Python
  • PyTorch
  • CUDA
  • Cross-attention fusion
  • Grad-CAM
  • OpenCV
  • SpecAugment
ML EngineeringAI EngineeringData Engineering

Explainable Network Threat Detection

Reached 0.90 F1 flagging suspicious host pairs in 27.1 million Zeek flows, by condensing them into a connection graph with Airflow, dbt and Snowflake, classifying links with a graph neural network, and having Llama 3.3 explain each alert.

SJSU capstone, team project · Feb to May 2026

Results

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
0.87 s
median end-to-end latency per generated explanation

Built with

  • PyTorch Geometric
  • Airflow
  • dbt
  • Snowflake
  • Pinecone
  • Llama 3.3
ML EngineeringSoftware Engineering

Thyroid Recurrence Predictor

Took a cancer-recurrence model the whole way to production, by wrapping scikit-learn in a FastAPI service, containerizing it, and redeploying to AWS EC2 automatically on every commit through GitHub Actions.

Personal project · Apr 2025

Built with

  • Python
  • scikit-learn
  • FastAPI
  • Docker
  • GitHub Actions
  • AWS EC2
ML Engineering

California Water Quality Prediction

Reconciled 112 years of California field measurements into one trainable table, by resolving units and station naming that changed repeatedly between 1913 and 2025, then predicting a water-quality score with scikit-learn in Streamlit.

SJSU DATA 245, Machine Learning · Nov to Dec 2025

Results

112 years
of field measurements reconciled, 1913 to 2025

Built with

  • Python
  • scikit-learn
  • pandas
  • Streamlit
Robot LearningML Engineering

Teaching a Robot Arm to Pick and Place

Scored 92% pick-and-place success and 2.49 cm mean placement error over 50 physical rollouts, by training an Action Chunking Transformer on 50 teleoperated demonstrations and scoring it against a protocol locked before evaluation.

Graduate Research Assistant, SJSU Applied Data Science · Mar 2026 to present

The SO-101 arm on the lab desk beside the marked cube it picks up and the clear container it places the cube into.

Results

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

Built with

  • Python
  • PyTorch
  • CUDA
  • LeRobot
  • ACT
  • SmolVLA
  • Weights & Biases
  • Hugging Face Hub
AI EngineeringML Engineering

InvoSense: Invoice Processing with a Human Approval Gate

Blocks 100% of payment actions until a person approves them, by reading invoice amounts and dates with Llama 3.2 Vision, scoring its own confidence in each field, and gating every write behind a LangGraph human-approval step.

Personal project · Jun 2026

Results

100%
of payment actions blocked pending human review

Built with

  • Python
  • LangGraph
  • Groq
  • Llama 3.2 Vision
  • Llama 3.1
  • ChromaDB
  • React
Data EngineeringML Engineering

U.S. Flight Delays: Batch Analytics to Real-Time Prediction

Reached 0.711 F1 predicting flight delays across 9.5 million U.S. flights, by training a Spark MLlib random forest on 15 monthly BTS files and running it inside a Kafka stream so each incoming flight gets a probability within seconds.

SJSU big data course, team project · Dec 2025

Two charts from the report: a bar chart ranking which features predict delay, and a pie chart showing the top five predictors against all other factors.

Results

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
0.3%
train-minus-test accuracy gap, against 1.6% for a single decision tree
78%
of random-forest importance mass held by the top five features

Built with

  • Python
  • PySpark
  • Spark MLlib
  • Spark SQL
  • Kafka
  • Structured Streaming
  • Streamlit
  • Docker
Data EngineeringML Engineering

Live Wikipedia Edit Sentiment

Surfaces Wikipedia pages turning contentious in real time, by streaming every English edit through Kafka as it happens and scoring the tone of each edit summary with RoBERTa.

Personal project · Nov 2025

Built with

  • Python
  • Kafka
  • RoBERTa
  • Hugging Face

Hiring for machine learning engineering?

I'm available from December 2026 and open to relocating. Email me and I'll reply within a day.

Hiring for something else?