My research is at the intersection of programming languages, software engineering and automated reasoning. I draw on techniques from machine learning and formal methods to solve problems in program synthesis, verification, and static analysis. My goal is to build theoretically well-understood, rigorously evaluated, and practically useful tools to help programmers create better software with less effort.
I was previously affiliated with the University of Pennsylvania, where I obtained my Ph.D. under the guidance of Rajeev Alur, and was later a postdoc working with Mayur Naik. During this time, I developed the Bingo and Drake probabilistic static analysis frameworks, contributed to formalizing the SyGuS synthesis framework, and designed domain-specific languages and programming abstractions for stream processing systems.
Last updated: Sat May 22 07:18:28 PM PDT 2021