// experience

Systems that ship to air

I build real-time computer-vision systems for live sports broadcast at Owl AI — and I got here through nuclear-materials ML research, RAG products, and data engineering.

6 sports in production
~100% MLP line-call accuracy
4 published papers
// flagship · on air
Machine Learning Engineer Third engineer · founding team

Owl AI

Boulder, CO · Sep 2025 – Present

Live on broadcast TV

Real-time computer-vision systems for live sports broadcasts. A wrong call goes out to a national audience in seconds — so reliability engineering is the whole job. We run the platform as GCP microservices on Cloud Run backed by dedicated GPU infrastructure for Fox Sports broadcast, with a Triton-hosted model zoo — RF-DETR, ViTPose, SAM 3.1 and TrackNetV5 — feeding a 7-camera, 240 FPS SRT inference pipeline.

broadcast camera GStreamer ingest GPU inference live graphic

Pickleball · line calling

Live
Major League Pickleball · MLP

PickleballTV · FOX · YouTube

240FPS broadcast ingest
~100% measured accuracy
5–10s to a definitive call
10→2s Godot graphic render
95.1→99.1F1 TrackNetV5 fine-tune · 120 FPS TensorRT

Live match line calling for Major League Pickleball, aired on PickleballTV, FOX and YouTube. Broadcast camera streams are ingested at 240 FPS via GStreamer with GPU-optimized reads; the system returns a definitive in/out call within 5–10 seconds — including how close the bounce was to the line — with the on-air graphic rendered in Godot, where I rebuilt the render path to cut MP4 latency from 10 s to 2 s so replays hit the broadcast almost the moment the call is made. I fine-tuned TrackNetV5 for ball tracking — lifting F1 from 95.1% to 99.1% and serving it under TensorRT at 120 FPS live — and trained a 2D monocular trajectory model on 1M+ Godot-generated synthetic samples that resolves ball position to under 4 px of error. Near-perfect measured line-call accuracy to date.

See the line call — "Out. Right?"
MLP broadcast line call: a rally frame captioned 'Out. Right?', the zoomed view that 'Looks out.', and Owl's 3D court reconstruction showing the ball caught the line — 'Blink. OWL won't.'
Major League Pickleball — a line call the eye gets wrong, resolved by Owl's 3D reconstruction
GStreamerTrackNetV5 TensorRTSAM RF-DETRYOLO SapiensGodot

Skateboarding · trick tracking

Live
X Games

Sacramento · Chiba · New Orleans

98% tracking accuracy
~79FPS on RTX 6000

Autonomous skater tracking that detects trick start/end to compute height, speed, airtime and trick type (aerial / grind / stall) from two 60 FPS cameras, in real time. A judging console auto-clips an MP4 of each trick with its metrics the moment it lands. My part: the autonomous skater tracker — a fine-tuned DAM4SAM tracker (on SAM 2.1) with fine-tuned YOLO-E segmentation, profiled and optimized to reach up to ~79 FPS on an RTX 6000 with exact output parity.

GStreamerDAM4SAMSAM 2.1 YOLO-ERTX 6000 judging console

Snowboarding · trick metrics

Live
X Games

Aspen 2026

45→68FPS custom temporal model
360°+ total-rotation stats
2.5pt MAE run-scoring MoE model

Productionized the real-time snowboard pipeline for X Games Aspen 2026: athlete tracking, keypoint/pose extraction and total-rotation stats, ingested over a MediaMTX (SRT) streaming layer for reliable broadcast feeds. At its core is a custom causal temporal model — it reads only past frames (no lookahead, so it is real-time safe) and outputs a per-frame probability that the rider is airborne, which cleanly delimits trick start and end; I optimized it from 45 to 68 FPS, keeping tricks real-time on the same judging console as skateboarding, where they appear the instant they finish. Training and evaluation on large-scale X Games video is tracked in MLflow for reproducible, regression-safe iteration. On top of the trick metrics we ship a live broadcast ML trio — Run Difficulty, Podium Probability and Run Scoring — where a Monte Carlo simulation and a run-scoring mixture-of-experts model (2.5-point MAE) turn raw numbers into commentator-facing talking points. LLM agents automate labeling and data QA to keep the dataset flowing.

Watch — X Games Aspen 2026 footage
X Games Aspen 2026 — competition footage
custom temporal modelMediaMTX/SRT MLflowMonte Carlo run-scoring MoELLM agents judging console

Tennis · rally segmentation

Shipped
ATP

Coaching workflow

90min from 10-hour sessions
$600/mo down from $1,200

Automatic rally segmentation from hours-long practice sessions so coaches get just the rallies. YOLO-family detection plus LLMs (Gemini, OpenAI) watching for scoreboard changes cut annotation time from ~10 hours to ~90 minutes and halved the monthly annotation cost from $1,200 to $600, replacing a $30/hr manual workflow.

YOLOGemini OpenAILLM QA

Basketball · live dunk-show metrics

In progress
Dunk Man

Live dunk-show production

61FPS optimized from 45 FPS
3 live metrics per dunk
~100% accuracy in testing

Live dunk-contest production computing the dunker's peak height above the ground, dunk power and jump distance (takeoff → rim) in real time for the show's team. Tracking holds through heavy scene clutter — props like cars and bikes, people holding the ball — using EdgeTAM + YOLO-E with pose-based validation. Dunk power is derived from rim vibration captured by a phone IMU and converted into a score. I optimized the sequential tracking pipeline from 45 → 61 FPS while preserving accuracy.

EdgeTAMYOLO-E phone IMUreal-time

Motocross · AI rebroadcast dubbing

In progress
SMX

English → Japanese first · any target language

~99% translation accuracy
in-sync dubbed lines fit the broadcast windows

Re-voicing English race commentary in another language for rebroadcast. VibeVoice-ASR transcribes and diarizes the commentators; staged LLM passes (Claude, GPT) handle translation, name consistency for riders and series, fluency and fact checks; then per-commentator TTS voices (Gemini TTS, with a Qwen3-TTS voice-clone lane) speak the lines, and a timing-fit stage lands each one in its original broadcast window — so the Japanese call stays in sync with the commentators on screen.

VibeVoice-ASRClaude GPTGemini TTS Qwen3-TTStiming fit

Data curation platform · the infra underneath

Infrastructure

Distributed GPU pipeline · feeds every sport model above

Qwen-3VL·Cosmos·SAM orchestrated models
−90% manual annotation time
multi-GPU round-robin scheduling

Built the distributed GPU data-curation pipeline that turns raw broadcast footage into the training-ready signals every model above learns from. It orchestrates multimodal models — Qwen-3VL, NVIDIA Cosmos, SAM and SAM Audio, plus VLMs that detect and segment action sequences into ground-truth clip datasets — using chunked, round-robin inference scheduling to keep multi-GPU systems saturated. Auto-labeling cut manual annotation time by 90%+, so the team stopped hand-scrubbing footage and the models never run short of training data — the engine behind the whole broadcast stack. On the audio side, speech and sound models (Whisper, SAM Audio, Qwen TTS, VibeVoice) mine venue sound to read the crowd's pulse — reaction and excitement signals straight from the arena.

Qwen-3VLNVIDIA Cosmos SAMSAM Audio WhisperVibeVoice VLM auto-labelingmulti-GPU
World Aquatics Diving — measuring dive distance from the springboard/platform. Early work.
// track record

The road here

  1. Teaching Assistant — Distributed Systems

    Jan 2026 – May 2026

    University of Colorado Boulder · Prof. Mark Zhao

    • Ran office hours and help sessions for graduate Distributed Systems (Prof. Mark Zhao), walking students through consensus, replication and fault-tolerant design so they could ship working implementations of genuinely hard distributed protocols.
    • Debugged students' concurrent, networked systems with them and graded their projects — the hands-on time that turned stuck submissions into correct, passing ones.
    Distributed SystemsGo consensusteaching
  2. Machine Learning Engineer

    internshipJun 2025 – Aug 2025

    Idaho National Laboratory · Idaho Falls, ID

    • Fine-tuned deep-learning segmentation models (SAM/SAM2, YOLOv9, ResUNet, DenseNet, ResDense-UNet) to detect pores and cracks in post-irradiated nuclear materials across FIB, SEM, TEM and X-ray CT imagery on this LDRD-funded project — giving materials scientists automated defect maps they previously traced by hand.
    • Ran large-scale training on the Alpine HPC cluster — including custom HPC job configurations that adapted to whatever GPUs were available, keeping training and inference at peak speed — enabling predictive modeling of radiation-induced material degradation at a scale single workstations could not handle.
    • Ran systematic experiments on how resolution, contrast, noise and artifacts affect segmentation accuracy, and compared attention modules (CBAM vs. bottleneck self-attention) with saliency maps across modalities — pinpointing which preprocessing and architecture choices held up on noisy post-irradiated imagery.
    • Supported a size-effects study using Random Forest and XGBoost to compare temperature sensitivity and impact energy between sub-sized and full-sized specimens — quantifying how far miniaturized test data can stand in for full-scale results.
    Publications
    • Predicting tensile properties of sub-sized nuclear materials using data augmentation strategies on imbalanced and sparse datasetsFrontiers in Manufacturing Technology, Vol. 6, 2026. An ML framework predicting yield strength and elongation of miniaturized SS-316 nuclear specimens from sparse, imbalanced data using GAN + SMOGN augmentation; Random Forest / XGBoost reached Pearson r > 0.98, establishing guidance for matching augmentation strategy to target property. (Co-author, with INL collaborators.)
    • Bridging Multimodal Microscopy for Advanced Characterization of Nuclear Fuel Using Machine LearningFrontiers in Mechanical Engineering – Digital Manufacturing, Vol. 11, 2025. A transfer-learning framework outperforming four state-of-the-art models for cross-scale defect segmentation.
    PyTorchSAM/SAM2 YOLOv9ResUNet XGBoostHPC
  3. Course Grader — CSCI 3022

    student roleSpring 2025 – Fall 2025

    University of Colorado Boulder

    • Graded and proctored assessments for Intro to Data Science with Probability & Statistics and coached students through probabilistic reasoning and Python data-analysis work — keeping feedback fast and consistent across a large intro cohort.
    ProbabilityStatistics PythonData Science
  4. Software Development Engineer

    founding engineerSep 2022 – Jul 2024

    Phamax · Bengaluru

    • Co-architected Ariya, a Microsoft-certified Teams SaaS assistant, and built its answer path end to end: a document-ingestion pipeline (SFTP/Blob ingestion, validation, metadata normalization, chunking) with automated guardrails that blocked bad inputs — document type, expiry and naming checks — before they could corrupt downstream workflows; hybrid + vector retrieval with re-ranking on Azure Cognitive Search over Azure OpenAI embeddings; and Node.js retrieval, generation and summarization microservices with Redis caching for repeat queries. Together these cut hallucinations by ~99%, verified by nightly evals across a month-long test plan.
    • Led Databricks + Azure data engineering (medallion architecture, Spark/Delta pipelines), halving ETL runtime from 30 to 15 minutes and offloading heavy processing from Tableau — analysts' dashboards refreshed noticeably faster.
    More projects
    • Medinfo Chatbot — collaborated on the content-processing architecture (client IRMS → SFTP container); built a custom Q&A system and conversation-transcript logging that lifted chatbot engagement ~5%.
    • AWS RAG & ADR detection — designed a Retrieval-Augmented Generation pipeline on AWS Bedrock for pharma document summarization and deployed an Adverse Drug Reaction detection model on Amazon SageMaker.
    Node.jsReact.js AzureDocker DatabricksAWS Bedrock SageMaker
  5. Data Scientist

    internshipApr 2022 – Aug 2022

    Fittlyf · Bengaluru

    • Built a multi-armed bandit framework for the team's in-house reporting tool to optimize A/B traffic allocation, cutting decision turnaround 40%; layered on group-sequential sampling that dynamically adjusted significance thresholds to reach calls 46% faster — so product teams could end experiments sooner with far fewer wasted impressions.
    • Automated experimentation analytics with BigQuery + hypercube transformations feeding near-real-time Tableau dashboards, replacing slow manual pulls so stakeholders saw results while experiments were still running.
    • Refined the PCOS and women's-health information sections with statistically designed A/B tests on button placement and navigation, turning UI choices into data-backed decisions instead of guesswork.
    PythonA/B testing Multi-Armed BanditBigQuery Tableau
  6. Data Scientist

    internshipMar 2021 – Oct 2021

    Trawello Healthcare · Bengaluru

    • Built a Streamlit reporting framework over the startup's student-healthcare data — bundling analysis, visualization and ML prediction in one place so non-technical staff could read insights without waiting on a data analyst.
    PythonStreamlit ML analysis