I am an assistant professor in the [Department of Computer
Science](https://www.cs.cornell.edu/) at [Cornell
University](https://www.cornell.edu).


**I am always looking for good students!**


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 was a graduate student in
the [Department of Computer Science](https://cis.upenn.edu) at the [University
of Pennsylvania](https://www.upenn.edu).

I am funded by an NSF CAREER award and a Facebook Research award.

## Research Interests ##
I design methods to **formally verify** that programs are correct, especially
programs that use **randomization**. Such programs can be easy to show correct
on paper, but surprisingly challenging for computers to analyze.  Accordingly,
my research blends ideas from two classical areas of computer science:
**randomized algorithms** from theoretical computer science (**TCS**) and
**formal verification**.

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 **accuracy**, **incentive
compatibility**, Markov chain **mixing**, and various notions of **algorithmic
stability**.

A particular focus of my work has been [**differential
privacy**](https://en.wikipedia.org/wiki/Differential_privacy), a rigorous
definition of privacy that is currently under extensive study.
I have investigated a variety of formal methods---such as [**type
systems**](https://en.wikipedia.org/wiki/Type_system) and [**program
logics**](https://en.wikipedia.org/wiki/Hoare_logic)---to verify that programs
are differentially private.

From a more traditional algorithms perspective, I am also interested in applying
differential privacy to optimization, machine learning, and mechanism design.

## Teaching ##
- **Category Theory for Computer Scientists (CS 6117)**: [F22](https://www.cs.cornell.edu/courses/cs6117/2022fa/)
- **Data Structures and Functional Programming (CS 3110)**: [S22](https://www.cs.cornell.edu/courses/cs3110/2022sp/)
- **Foundations of Probabilistic Programming (CS 6182)**: [F21](teaching/f21/cs6182)
- **Reasoning about Probabilistic Programs** <br>
  **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/)
- **Introduction to the Theory and Design of PL (CS 538)**: [S20](teaching/s20/cs538/)
- **Security and Privacy in Data Science (CS 763)**: [F19](teaching/f19/cs763/)
- **Introduction to the Theory and Design of PL (CS 538)**: [S19](teaching/s19/cs538/)
- **Topics in Security and Privacy Technologies (CS 839)**: [F18](teaching/f18/cs839/)

## Service ##
- **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/)!

- [**Verifying Randomized Algorithms: Why and How?**](https://blog.sigplan.org/2020/10/20/verifying-randomized-algorithms-why-and-how/)
- [**Re-Imagining the “Programming Paradigms” Course**](https://blog.sigplan.org/2021/01/28/re-imagining-the-programming-paradigms-course/)
- [**Programming Languages Mentoring Workshop: Ten Years Later**](https://blog.sigplan.org/2021/05/11/programming-languages-mentoring-workshop-ten-years-later/)
