Research
My research centers on interpretable AI: designing systems whose decisions can be understood, trusted, and improved by humans. I favor transparent, symbolic approaches over black-box models, and believe that if we can't explain why a system makes a decision, we can't truly trust it. My current interests span program synthesis and symbolic library learning, concept bottleneck models, sample-efficient RL, and general game playing.
Publications
General Game Playing as a Bandit-Arms Problem: A Multiagent Monte-Carlo Solution Exploiting Nash Equilibria
Oberlin College Honors Papers, 116 (2019)
An interpretable general game player that takes only the rules of a game as input, requires no pre-training, and whose reasoning is traceable to accumulated self-play statistics. Move selection is framed as a multi-armed bandit problem and solved with a two-stage multiagent Monte Carlo search: the first stage prunes losing branches and the second exploits promising ones with a UCB-style policy, converging to Nash equilibria. The player achieves perfect tic-tac-toe, reliably finds winning moves in Nim, and plays strategically in minichess.
- Rules-only input, no pre-training, and reasoning traceable to accumulated self-play statistics
- Move selection framed as a multi-armed bandit, solved by a two-stage multiagent Monte Carlo search that prunes losing branches and exploits promising ones with a UCB-style policy
- Perfect tic-tac-toe play; reliably finds winning moves in Nim; strategic play in minichess
Applied Research
Software Engineer (L4)
- Led a research agenda to discover techniques for LLMs to dramatically improve open-source developer workflows
- Proposed unit-test automation as the research objective, designed evaluation frameworks (hybrid embedding + code-coverage evals) and experiments, and developed a graph-structured reasoning framework for automated test generation across AndroidOS
- Built structured, hierarchical datasets of Android's source code to improve one-shot performance and fine-tuning
- Collaborated with DeepMind and CoreML teams to define data specifications and quality criteria for training Google's internal models on open-source code—the first time these models were trained on open-source codebases
- Developed an unsupervised root-cause analysis method for Android OS infrastructure errors using T5X embeddings and density-based clustering, reducing incident response time by 90%
Research Interests
Program Synthesis & Symbolic Regression
Symbolic, non-neural library learning that accumulates data-efficient, reusable abstractions across domains. Minimum description length and e-graphs to induce concise generalized solutions, treating compression as learning.
Concept Bottleneck Models
Using program synthesis as the concept generator for concept bottleneck models in place of hand-picked or LLM-generated concepts, and testing what that changes for predictive accuracy and interpretability across problem spaces.
Reinforcement Learning & General Game Playing
Sample-efficient methods that make symbolic approaches tractable for intractably deep search problems.