Skip to content
santoshkandula.dev

Applied ML + AI

Santosh Kandula

Applied ML engineer building retrieval and vision systems. I publish the metrics that don't flatter the project.

B.S. Computer Science, UNC Chapel Hill · Graduating May 2027

Featured work

RAG + evaluation platform

SEC-RAG-Eval

0.44 → 0.64recall@5 on FinanceBench-150

Audited its own benchmark: the identical retrieval scores 0.09, 0.64, or 0.81 depending only on how a hit is graded.

  • FastAPI
  • PostgreSQL / pgvector
  • text-embedding-3-large
  • Claude Haiku 4.5
  • GCP Cloud Run

Player tracking + play retrieval

hoopvec

0.301 → 0.525HOTA on SportsMOT basketball-val

Traced the cost of tracking analytics to one stage: ID-switches dropped play-retrieval recall@1 from 0.99 to 0.68, and to 0.27 under measured re-ID error.

  • PyTorch
  • Ultralytics YOLOv8
  • ByteTrack
  • BoT-SORT
  • FAISS

Also

NBA playoff bracket prediction

Predicts playoff series winners from regular-season team stats, chained into full brackets.

85.3% accuracy on held-out playoff matchups across four seasons — a Keras network selected over decision-tree and random-forest baselines on measured accuracy, not depth. Honest limitation: that is per-matchup accuracy, and the model ignores home-court advantage.

Public repo

Wildfire risk classifier

Rare-event risk scoring over 10,000 California parcels (IRMII / UNC).

Parcel-level features fused from FEMA hazard layers and carrier exposure data lifted PR-AUC from a 0.61 logistic baseline to 0.76, then scored into calibrated tiers that flagged $27.5M of high-risk insured value. Naming the baseline is the point: measured against the simplest thing that could work, 0.61 → 0.76 is a claim someone can check.

Coursework · no public repo

Experience

Machine Learning Intern · Duke Energy

May 2026 – Aug 2026

  • Built an AWS Bedrock + Claude Sonnet 4.5 predictive LLM that flags construction schedule slip a median 5 weeks ahead at PR-AUC 0.87 across 9 error categories, returned as structured-output JSON.
  • Engineered the RAG ingestion over a heterogeneous corpus — 1,500+ Primavera P6 XER files across 5 projects plus 35 contractor transcripts — chunked under Jina embeddings in pgvector, surfacing 72 error-correlation patterns.
  • Deployed an on-prem containerized Streamlit interface pushing live hazard predictions to 10 PMC teams across 25 projects, holding 3.34 sessions per user per week.

Software Engineer Intern · Duke Energy · MADLab

May 2025 – Aug 2025

  • Replaced a multi-month manual inventory across 65 acres with a 20–30 hour Ultralytics YOLOv8 drone scan over 150+ polygon-annotated SKUs at 86.6% count accuracy, despite heavy stacked-pallet occlusion.
  • Drove Microsoft 365 Copilot adoption to 18.6% of a 500-person office through change-management workshops, recovering ~2.34 hours per user per week and seeding 10 downstream AI demos.

Applied Machine Learning Analyst · UNC Baseball Analytics

Sep 2023 – May 2024

  • Mapped hot/cold zones across 500 opposing batters from TrackMan spray-chart data for pre-game positioning, dropping opponent BABIP 0.024 and runs allowed 0.7 per game.
  • Designed an OpenPose 17-keypoint batting-mechanics scoring system for 17 hitters whose joint-angle features fed a Random Forest ranker that lifted team barrel rate 2.72%.
  • Shipped a live Flask + Plotly opponent-scouting dashboard on daily TrackMan pulls that replaced a third-party aggregator and served 48 coaches, players, and staff.

Researcher · Duke University · Pratt lab

May 2022 – Aug 2022

  • Built a vectorized waveform preprocessing pipeline adopted as the lab standard across 14 researchers, where config-driven knobs recovered 37% of previously discarded records and cut per-dataset preprocessing from ~4 hours to 32 minutes.
  • Trained a TF Decision Forests gradient-boosted classifier for three-class lightning identification at ~85% per-class precision, deployed to 100+ field analysts to triage incoming strikes.

Internal and corporate roles — no public repositories.

About

I'm a CS junior at UNC Chapel Hill. Two projects define what I work on: a live RAG service over SEC filings that publishes its real recall@5 — 0.44 to start, 0.64 after the work — instead of the number a demo would claim, and a multi-object tracker over broadcast video evaluated with HOTA rather than raw detection accuracy. Both are built around the same idea: the evaluation is the hard part, and a system you've only measured where it succeeds is a system you don't understand. I also spend two summers a year doing applied ML inside Duke Energy, which is where I learned what production constraints actually look like.

I'm looking for applied ML roles starting summer 2027 — retrieval and evaluation infrastructure, ML platform, perception, or applied AI product. Open to San Francisco, New York, Seattle, and remote.

Contact

Best reached by email. The SEC-RAG-Eval demo is live if you'd rather poke at the work first.