Work
Purgo AI
Finding the tables an agent misses
Changes to which tables reach the agent: following dbt lineage, a schema check and a faster catalog search, each measured on benchmarks built from real tickets.
Semantic search over data catalogs
A search path on Pinecone for Iceberg catalogs on Polaris that re-indexes only the tables whose schema changed.
Moving two agent stages to a smaller model
Compared a smaller reasoning model with the larger one on two agent stages over five runs, then moved both stages to it and set the reasoning effort for each. Retrieval recall held, and the two stages got cheaper.
Testing LLMs and Databricks platforms for regulated use
Qualification tests for Azure OpenAI and Databricks-served models (hallucination, bias, determinism, latency, traceability) and for Databricks platforms on Azure and AWS, with evidence an auditor can read.
Validation engine for Databricks platforms
Runs 59 versioned installation and operational qualification tests in 17 suites against a customer’s Databricks workspace on Azure or AWS, with live progress and an evidence report. Pass/fail logic runs in a sandbox. I wrote most of its current code; a colleague built the first scaffold.
Self-review for generated code
Checks generated code for Databricks runtime failures, each check traced to a real failure. If every candidate fails, the agent gets one recovery attempt, then ships the candidate with the fewest failed checks.
Declared-source checks for generated dbt code
Generated dbt code has to name its sources exactly as the project declares them, so a recurring build failure gets caught in review, before the build.
Chunking long ticket attachments
Splits long attachments without breaking records apart, and tells the model which parts of a file it didn’t get.
Signing validation reports in the app
Embedded DocuSign signing for validation reports, with per-project credentials.
Earlier internships
Text-to-SQL agent
Schema discovery plus retries driven by execution errors.
Execution accuracy 52% to 76% on an internal 500-query set
Assistant over slide decks and videos
Multimodal retrieval with layout-aware chunking and citations the model has to give.
Sales forecasting and review analysis
An XGBoost and SARIMA ensemble for sales forecasting, and aspect-based sentiment analysis over 30k+ customer reviews.
MAPE 15% lower than the baseline across 50+ SKUs
Research
Finding behaviors in mouse videos without labels
Segmented pose-tracking video of mice into behaviors with a bidirectional RNN autoencoder and clustering, for genetic analysis. Advised by Balaraman Ravindran and Vivek Kumar.
How microbes in homes support each other
Built metabolic models of the 20 best-connected species in microbiomes from rural and urban homes, and measured which ones support which with a metabolic support index. Advised by Karthik Raman.
Tumor deconvolution
Estimated cell-type proportions from bulk gene expression with dimensionality reduction and an SVM.
Coursework
Classified rank-maximal matchings
Presented a paper’s algorithm for rank-maximal matchings under laminar classifications and its hardness result for the general case.
Gene co-expression networks in COVID-19
Network and co-expression analysis of gene expression data to find gene signatures linked to COVID-19.
Projects
a11y-stem
Turns STEM course PDFs into accessible web pages with MathML equations, headings, lists and figure alt text, measured against an OpenStax physics textbook. In progress.
StudyBuddy
Turns course materials into notes, quizzes and practice exams, with a voice coach on the OpenAI Realtime API. A prototype with no users.
DivvyDo
Roommate expense splitting with five split methods and integer-cent rounding.
Gmail drafting assistant
Drafts an email from a plain-language request, using past Gmail messages for context.