I am an associate professor in the [Department of Computer Science](https://www.cs.cornell.edu/) at [Cornell University](https://www.cornell.edu). **This year, I am away on sabbatical at Imperial College London. I will be back to Cornell in August 2025.** Previously, I was an assistant professor in the [Department of Computer Sciences](https://www.cs.wisc.edu/) at the [University of Wisconsin--Madison](https://www.wisc.edu), and a postdoc at the [Department of Computer Science](https://www.cs.cornell.edu/) at [Cornell University](https://www.cornell.edu/), and in the [Programming Principles, Logic, and Verification Group](http://pplv.cs.ucl.ac.uk/welcome/) at the [University College London](https://www.ucl.ac.uk/). I obtained my PhD from the [Department of Computer Science](https://cis.upenn.edu) at the [University of Pennsylvania](https://www.upenn.edu). I am funded by the National Science Foundation, the Office of Naval Research, and Facebook Research. ## Research Interests ## I design methods to **formally verify** that **algorithms** are correct. I am especially interested in programs satisfying quantitative guarantees, or other properties from mathematical or scientific applications. A particular focus of my work has been verifying programs that use **randomization**. Such programs can be easy to show correct on paper, but surprisingly challenging for computers to analyze. Drawing inspiration from how humans reason about randomized algorithms, we can build simpler and more automated verification techniques. In the past, I've applied this approach to properties like **statistical accuracy**, **incentive compatibility**, Markov chain **mixing**, **algorithmic stability**, and **differential privacy**. More broadly, I am interested in verification for all kinds of programs with rich mathematical structure and properties, such as continuous-time systems, programs with symmetries, economic mechanisms, runtime monitors for hierarchical policies, and algorithms from numerical analysis and applied mathematics. ## Teaching ## - **Data Structures and Functional Programming (CS 3110)**: [F23](https://www.cs.cornell.edu/courses/cs3110/2023fa/) [S23](https://www.cs.cornell.edu/courses/cs3110/2023sp/) [S22](https://www.cs.cornell.edu/courses/cs3110/2022sp/) - **Category Theory for Computer Scientists (CS 6117)**: [F22](teaching/f22/cs6117) - **Foundations of Probabilistic Programming (CS 6182)**: [F21](teaching/f21/cs6182) - **Reasoning about Probabilistic Programs**
**Invited Course at [OPLSS 2021](https://www.cs.uoregon.edu/research/summerschool/summer21/index.php)**: [[slides](https://justinhsu.net/files/slides/oplss21.pdf)] [[recordings](https://www.cs.uoregon.edu/research/summerschool/summer21/topics.php)] - **Security and Privacy in Data Science (CS 763)**: [F20](teaching/f20/cs763/) [F19](teaching/f19/cs763/) - **Introduction to the Theory and Design of PL (CS 538)**: [S20](teaching/s20/cs538/) [S19](teaching/s19/cs538/) - **Topics in Security and Privacy Technologies (CS 839)**: [F18](teaching/f18/cs839/) ## Awards and Honors ## - **2024** EATCS [Presburger Award](https://www.eatcs.org/index.php/presburger) - **2024** Royal Society [Wolfson Visiting Fellowship](https://royalsociety.org/grants/royal-society-wolfson-visiting-fellowship/) - **2022** CAV Distinguished Paper Award - **2021** POPL Distinguished Paper Award - **2020** POPL Distinguished Paper Award - **2020** NSF CAREER award - **2018** ACM SIGPLAN [John C. Reynolds Doctoral Dissertation Award](https://www.sigplan.org/Awards/Dissertation/) - **2015** Simons Award for Graduate Students in Theoretical Computer Science ## Service ## - **2026** ESOP, LICS - **2025** POPL, ICALP-B - **2024** OOPSLA, CSF, CCS, MFPS - **2023** CSF, ICALP-B, LICS, OOPSLA, MFPS - **2022** POPL, PLDI, MFPS (co-chair) - **2021** ESOP, PLMW@POPL, CSF, AAAI, COLT, WoLLIC, MFPS - **2020** AAAI, CSF, LAFI, WoLLIC, PLMW@POPL, OOPSLA (ERC) - **2019** POPL, PLMW@POPL, POST, CSF, DARS (co-chair) - **2018** LICS, WWW - **2017** FCS, TPDP, MFPS - **2016** PLDI (ERC) ## Blogging ## I've greatly enjoyed blogging for [PL Perspectives](https://blog.sigplan.org/blog/)! - [**Teaching Category Theory to Computer Scientists**](https://blog.sigplan.org/2023/04/04/teaching-category-theory-to-computer-scientists/) - [**Programming Languages Mentoring Workshop: Ten Years Later**](https://blog.sigplan.org/2021/05/11/programming-languages-mentoring-workshop-ten-years-later/) - [**Re-Imagining the “Programming Paradigms” Course**](https://blog.sigplan.org/2021/01/28/re-imagining-the-programming-paradigms-course/) - [**Verifying Randomized Algorithms: Why and How?**](https://blog.sigplan.org/2020/10/20/verifying-randomized-algorithms-why-and-how/)