I’m an AI researcher and computer scientist working on the reliability of software and AI systems. Over the years the object of study has shifted, from source code to large language models, but the underlying question hasn’t: how do you tell whether a complex, machine-produced artifact is any good, and how do you build tooling that makes it better before someone has to trust it?
That question started at San Jose State University, where my research on domain analysis and pattern languages led to the idea of Knowledge Maps: treating software systems as systems of patterns. My PhD at UC Santa Cruz took a different direction but asked the same question: I introduced Source Code Curation: filtering, refining, and validating code before reuse, so that “found” code could be trusted rather than just borrowed.
At SRI International’s Computer Science Laboratory, that work grew into a decade of DARPA-, IARPA-, and ARPA-H-funded research. For most of it, I applied large-scale program analysis, graph mining, and machine learning to code search, program repair, formal verification, and open-source supply-chain security. I was a key contributor to CSFV, SoSITE, MUSE, and ARCOS, and led SocialCyber as PI, modeling the social-cyber operations that threaten open-source ecosystems. In my last years there, the object of study became LLMs themselves: I developed multi-model compatibility estimation (aka, LLM Chemistry) and consensus methods, and built neuro-symbolic, multi-agent workflows that turn messy healthcare and scientific data into formal, checkable artifacts.
Today, at Charles Schwab’s AI.x group, I keep asking the same question of agentic LLM systems: how to make them reliable and safe, and how to verify that they are, through multi-model collaboration, neuro-symbolic methods, and automated AI red-teaming, before they’re trusted in high-stakes settings such as finance.
For the full research summary and employment history, see my CV.