I am a PhD student at Paul G. Allen School of Computer Science & Engineering . I am advised by Professor Dan Grossman. I work at the intersection of Programming Languages (PL), Security, and LLMs. My research builds the infrastructure, specifications, and access-control mechanisms that make LLM-based software reliable, secure, and maintainable.
Securing and governing what an LLM-based system is allowed to do: An LLM agent acts with its user's authority over real tools, data, and web pages, so a single injected or adversarial instruction can turn that authority against the user. Rather than trusting the model to always behave, my work constrains it by construction. User-provided specifications capture how a system is supposed to behave and are enforced at runtime to detect deviations and filter malicious inputs, as in SPML and its extension to attacks hidden inside images. Complementing these defenses, least-privilege, task-scoped access control bounds which operations an agent may actually perform (AC4A, PAuth), and ClawDojo stress-tests such protections against realistic attacks.
Engineering LLM-based software to be reliable and maintainable. Prompts and agent instruction files are becoming programs, yet they lack the testing and regression infrastructure that traditional software takes for granted. Because model outputs are non-deterministic, a minor prompt edit can silently break behavior or introduce security risks. My work builds the missing infrastructure around specifications. PromptPex generates targeted tests from a prompt's specification, ContextCov turns natural-language instruction files into executable guardrails, and Willful Disobedience and Learning Correct Behavior from Examples detect when an agent deviates from its intended procedure.