Vihan Patil

Software Engineer

Available for full-time roles

I build systemsthat have to beright.

Retrieval pipelines that cite their sources. Drone autonomy that dodges mid-survey without losing the ground it was supposed to cover. The unglamorous backend work that keeps both honest.

  • 2,100+ automated tests

    SWATHKEEPER + MATCHDESK · CI-GATED · 2026

    Across SwathKeeper and MatchDesk — property-based, metamorphic, adversarial, and one that fails on purpose until a safety breach is truly fixed.

  • 54K QPS at perfect recall

    RETRIEVAL BENCHMARKING · FAISS HNSW · MAR 2026

    FAISS HNSW tuned to match exact search's recall@10 at 3.3× the throughput and 70% lower median latency.

  • 150+ students

    TIM 172 · UCSC · SEP 2025—MAR 2026

    Across two quarters as teaching assistant for UCSC's Management of Technology course (TIM 172) — rubric design, grading workflow, office hours.

01

The System

14 BODIES · 13 EDGES · 1 SUN

Drag to turn · hover or tap to resolve · open a body to read it

RESOLVED 0/14 RENDER
or ⌘/ctrl + scroll · pinch
2020 NOW
02

Context

I spent two academic years in a research lab whose entire premise is that a model's answer is worthless if you can't trace where it came from. That shaped how I build: citation tracing, verification passes, and a bias toward systems that can show their work.

The other half of my experience is the opposite kind of constraint. At Vaara Drone the code ran on a Raspberry Pi bolted to an airframe flying crop surveys, where a slow frame isn't a latency metric — it's a strip of field nobody scanned. I turned four GPS corners and an altitude into coverage paths real drones actually flew, built the post-flight pipeline that turned raw aerial imagery into ready-to-review crop-health maps, and parallelized the image processing so the hardware could keep up.

Both jobs came down to the same thing: know what your system does when it's wrong, and build so that's recoverable.

03

Experience & Education

  1. Sep 2024 Mar 2026 Work

    Graduate Researcher

    UCSC AI Explainability & Accountability Lab

    Research on making generated answers traceable and checkable rather than merely fluent.

    • Prototyped neurosymbolic and LLM-verification workflows for grounded question answering — structured knowledge retrieval combined with generation, source verification, and retry logic, so unsupported responses get caught instead of shipped.
    • Ran the stack on Kubernetes and built the evaluation harness that scored answer correctness, citation support, and hallucinations.
    • Python
    • RAG
    • Knowledge Graphs
    • Kubernetes
    • LLM Evaluation
  2. Sep 2025 Mar 2026 Work

    Teaching Assistant — Management of Technology (TIM 172)

    University of California, Santa Cruz

    Grading operations, rubrics, office hours, and project reviews across two quarters of the course.

    • Kept evaluation consistent across a 150+ student course by owning rubric design and grading workflow.
    • Ran project check-ins and office hours with technical feedback on product concepts and end-to-end supply-chain strategy.
    • Rubric Design
    • Grading Ops
    • Mentoring
  3. Jun 2025 Sep 2025 Work

    Software Engineering Intern — second summer

    Vaara Drone

    Post-flight autonomy: the imagery pipeline and crop-health mapping.

    • Built the Raspberry Pi post-flight pipeline: detect network, auto-transfer aerial imagery, run stitching and NDVI analysis — manual processing steps replaced with ready-to-review crop-health maps.
    • Parallelized image ingestion and preprocessing with async multiprocessing across the OpenCV, stitching, and NDVI workloads.
    • Python
    • OpenCV
    • NDVI
    • Multiprocessing
    • Raspberry Pi
  4. Jun 2024 Sep 2024 Work

    Software Engineering Intern

    Vaara Drone

    Coverage-path generation and mission tooling for real survey flights.

    • Automated an end-to-end survey workflow: four GPS field corners and a user-set altitude in, an overlap-aware boustrophedon coverage path out — generated as MAVLink missions and flown on physical drones.
    • Wrote evaluation tooling around MAVLink command and telemetry to keep area mapping reliable in flight.
    • MAVLink
    • ArduPilot
    • Path Planning
    • Raspberry Pi
  5. Sep 2024 Mar 2026 Education

    M.S., Computer Science and Engineering

    University of California, Santa Cruz

    GPA 3.77/4.00 — coursework in machine learning, deep learning, natural language processing, computer vision, and distributed systems.

  6. Sep 2020 Jun 2024 Education

    B.S., Computer Science

    University of California, Santa Cruz

    Systems and software foundation: algorithms, databases, statistics, AI, ML, computer vision.

04

Selected Work

Every project here has something to look at: a recording, a planner you can drag, a scorer you can run, pipelines you can open up.

01

HealthWise

M.S. Capstone Sep 2025 — Mar 2026

An agentic RAG health coach that only says what it can cite. A Corrective RAG (CRAG) loop re-retrieves when the evidence check comes back weak — and refuses outright when a second pass still can't support an answer. The citation ships with the answer, and an Android client feeds physiological data into the coaching context.

The interesting problem wasn't generating nutrition advice — any model does that. It was the corrective loop: when the evidence check finds too little support, the system rewrites the query and re-retrieves before drafting — and when a second pass still comes back weak it refuses rather than shipping an unsupported answer; the citation stays visible so a user can check the claim themselves. Responses are grounded in a curated medical-research corpus and evaluated for relevance, groundedness, and verifiability. Built as my M.S. capstone, advised by Prof. Leilani Gilpin of the AIEA Lab.

  • Python
  • RAG
  • Verification Loops
  • Health Data Sync
  • LLM Orchestration

Retrieval loop — select a stage

HR windows 30m / 60m / 90m / all-time — context, never evidence, never cited
02

SwathKeeper

Active personal project Jul 2026 — Present

Sim-demonstrated, evidence-gated — the main-branch CI is deliberately red until an acknowledged safety breach is fixed

An autonomous crop-survey drone in simulation. It breaks off mid-survey to dodge a bird nobody planned for, resumes the sweep, and reconciles the coverage ledger so nothing goes silently unscanned. NDVI crop-health mapping now runs from the same flight data.

The takeover is a real ArduPilot mode transition — AUTO to GUIDED and back — with a geofence-vetted 3D dodge, running live on ArduPilot SITL + Gazebo + ROS 2. The latest end-to-end flight met one bird mid-lane and corrected across four divert ticks in 0.43 s of GUIDED authority; 34 cells went at-risk, every one was re-imaged by a later lane, and the ledger still closed at 720 of 720. Getting there meant diagnosing a Fast DDS shared-memory bottleneck that was capping image recording at 0.41 Hz; it records at 5 Hz now. An independent ground-truth check then exposed a 6.7 mm bird clearance on a run that otherwise looked perfect, so that run doesn't count as a safety result and the main branch stays red until the fix is real. Replaying the encounter across 81 mission speeds and three aircraft models showed the nadir camera can never see far enough ahead — the case for forward-looking sensing, made with numbers. The demo below is the same mechanic in plan view — drag the bird and watch the executor pick a vetted dodge, hand authority back to AUTO, and reconcile the ledger.

  • ROS 2
  • Gazebo
  • ArduPilot SITL
  • Python
  • Path Planning
  • OpenCV
Survey autonomy — plan view

covered debt closest approach

Drag the bird — the dodge re-vets against trees and field, and the ledger reconciles

03

FinScreen

Research pipeline Aug 2026 — ongoing

In progress — so far, text signals give no consistent lift over fundamentals; the null result is reported as the finding

An NLP research pipeline over SEC EDGAR: 1,271 filings from 25 mega-cap companies distilled into a labeled corpus for financial text-signal research, then walk-forward backtested against a numeric-only baseline — with the metadata discipline to keep every label honest about what the market knew, and when. The result was a null — and it's reported as one.

Financial text is booby-trapped. Boilerplate repeats filing after filing, and any label that peeks past the filing date poisons the dataset. The labeling pass — 6,746 chunks across sentiment, a red-flag taxonomy, guidance direction, and a distress tier — ran through the Anthropic Batch API behind deduplication and look-ahead-safe prompts, then a 400-chunk blind second-rater audit: 94–95% agreement on three of the four label families, 63% on red flags, kept as a limitation rather than ground truth. The punchline came from six chronological walk-forward folds of XGBoost, fundamentals-only against fundamentals-plus-text: the text gave no consistent lift once near-duplicate filings were controlled. The honest finding is the null result, and that's what the repo reports.

  • Python
  • NLP
  • SEC EDGAR
  • Anthropic Batch API
  • Bootstrap Labeling
  • XGBoost
  • pandas
Walk-forward IC by fold — fundamentals vs fundamentals+text

04

MatchDesk

Personal project Jul 2026 — Aug 2026

V1 built — deterministic scoring hardened by 1,100+ tests and an 80% mutation-score gate

Resume-to-job matching that explains itself: which requirements are covered, which are thin, and which are missing outright — with the exact phrases that earned each point of the score.

A single match percentage tells you nothing actionable — the useful output is which requirement you failed, and the evidence behind it. Scoring is deterministic, with no generative model in the path: documents are parsed on the recruiter's machine into SQLite, every score carries the exact phrases that earned it, and nothing leaves the device. The scoring core sits behind 1,100+ automated tests — property-based, metamorphic, adversarial — and an 80% Stryker mutation-score ratchet; a findings-driven release gate blocks any known wrong-score defect from shipping, because a confident wrong number about a real person is the one failure this project treats as unacceptable. The widget below runs the engine's own arithmetic client-side on synthetic fixture text — the cascade, the weights, the rounding, and the refusal.

  • TypeScript
  • Local-first
  • SQLite
  • pnpm monorepo
Deterministic scorer — runs on this machine

Release gate — an exit code, not prose

05

Blockchain Analytics

Client work · UXly Jan 2024 — Jun 2024

Real-time on-chain visualization and smart-contract analysis, built with a team for UXly and shipped to production on EC2. It started as a UCSC course project; the client kept us on and scoped the requirements directly.

The React front end was the easy half. The real work was an ingestion layer that keeps up with block production, degrades gracefully when an upstream node stalls, and doesn't lose events while reconnecting. The engagement ran as weekly agile sprints with UXly's CEO and engineers — rotating scrum lead — and shipped to production on AWS EC2.

  • TypeScript
  • React
  • Node.js
  • Express
  • Docker
  • AWS EC2
06

Toolkit

Languages

  • Python
  • C++
  • C
  • SQL
  • TypeScript
  • JavaScript
  • Java

AI / ML

  • RAG Pipelines
  • LLM Evaluation
  • Embeddings
  • Vector Search (FAISS · HNSW)
  • Knowledge Graph Retrieval
  • Cross-Model Verification
  • Citation Tracing
  • Agentic Workflows
  • PyTorch
  • TensorFlow
  • scikit-learn
  • XGBoost
  • Reinforcement Learning

Vision / Robotics

  • OpenCV
  • NDVI Processing
  • Object Detection
  • ROS 2
  • Gazebo
  • ArduPilot SITL
  • MAVLink

Backend / Infra

  • Node.js
  • Express
  • React
  • REST APIs
  • SQLite
  • NumPy · pandas
  • Docker
  • Kubernetes
  • CI/CD
  • Linux
  • AWS EC2
  • GCP Storage
07

Also Built

Retrieval Algorithm Benchmarking

A benchmarking harness for the ANN vector indexes underneath RAG retrieval. Automated parameter sweeps over five backends (FAISS Flat, HNSW, IVF-PQ, OPQ; hnswlib) on synthetic and real embedding datasets, measuring recall@k, p50/p95/p99 latency, QPS, memory, and index size. FAISS HNSW matched exact search's perfect recall@10 at 54.06K QPS against 16.35K — 3.3× the throughput at 70% lower median latency, with negligible index-size overhead.

  • Python
  • FAISS
  • hnswlib
  • Benchmarking

SatML Document Intelligence

Track 2 of the SatML Document Intelligence competition: reconstructing redacted key-value pairs from documents by querying a black-box DocVQA model that may have been trained with differential privacy. An adversarial look at what a model still leaks after redaction.

  • Python
  • DocVQA
  • Differential Privacy
  • Black-Box Attacks
Competition · 2025 Repository ↗

FlashGOV

A scraping and summarization pipeline over Chinese government websites, producing multilingual summaries with cross-model verification and cross-language checks to catch a summary drifting from its source. Built with a team for a UXly partner group; it also started as UCSC coursework.

  • Python
  • Scraping
  • Summarization
  • Cross-Model Verification
Client work · UXly partner team · Oct — Dec 2023
08

Contact

Looking for a team where the hard part is the engineering.

New-grad software engineering roles, ideally AI/ML-adjacent or systems-heavy. If that's what you're hiring for, the fastest route is email.

Open to full-time SWE roles · US Citizen · On-site, hybrid, or remote