I am an assistant professor of [Computer Science](https://www.cs.wisc.edu/) at
the [University of Wisconsin--Madison](https://www.wisc.edu).


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


Previously, I was a postdoc in the [Department of Computer
Science](https://www.cs.cornell.edu/) at [Cornell
University](https://www.cornell.edu/), hosted by [Nate
Foster](http://www.cs.cornell.edu/~jnfoster/), [Bobby
Kleinberg](http://www.cs.cornell.edu/~rdk/), and [Dexter
Kozen](http://www.cs.cornell.edu/~kozen/), 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/), hosted by [Alexandra
Silva](http://www.alexandrasilva.org/). I was a graduate student in the
[Department of Computer Science](https://cis.upenn.edu) at the [University of
Pennsylvania](https://www.upenn.edu), where I was very fortunate to be advised
by [Benjamin Pierce](https://cis.upenn.edu/~bcpierce) and [Aaron
Roth](https://cis.upenn.edu/~aaroth).

## 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 ##
- **Topics in Security and Privacy Technologies (CS 839)**: [F18](https://pages.cs.wisc.edu/~justhsu/teaching/current/cs839/)
- **Introduction to the Theory and Design of PL (CS 538)**: [S19](https://justinh.su/staging/cs538/)

## Service ##
- **2019** POPL, PLMW, POST, CSF
- **2018** LICS, WWW
- **2017** FCS, TPDP, MFPS
- **2016** PLDI (ERC)
