I aspire to build machine learning applications that are painless to compose, easier to reason about, and safer to use. I work towards these goals by studying the design of programming languages.

I focus on developing the Hakaru probabilistic programming system as part of Prof. Chung-chieh Shan's group. I have also built a library for composing MCMC sampling algorithms, which can be found in the mcmc-samplers Haskell package.


Probabilistic inference by program transformation in Hakaru (system description)
Praveen Narayanan, Jacques Carette, Wren Romano, Chung-chieh Shan, and Robert Zinkov.
FLOPS 2016 (13th international symposium on functional and logic programming).
Slides, presented in Kochi, Japan, Mar 4 2016.
Building blocks for exact and approximate inference
Jacques Carette, Chung-chieh Shan, Praveen Narayanan, Wren Romano, and Robert Zinkov.
Black box learning and inference workshop at NIPS 2015.
Poster, presented at the workshop in Montréal, Dec 12 2015.
A combinator library for MCMC sampling
Praveen Narayanan and Chung-chieh Shan.
3rd NIPS Workshop on Probabilistic Programming at NIPS 2014.
Poster, presented at the workshop in Montréal, Dec 13 2014.
Slides, from talks given at:
     PL-Wonks talk series at Indiana University, Bloomington, Nov 21 2014.
     Seminar on probabilistic programming, Indiana University, Bloomington, May 8 2014.
Graph algorithms in a guaranteed-deterministic language
Praveen Narayanan and Ryan R. Newton.
5th Workshop on Determinism and Correctness in Parallel Programming, at ASPLOS 2014.
Slides, from a talk given at the workshop in Salt Lake City, Mar 2 2014.


Discrete structures for computer science - spring 2013
Introduction to programming I - fall 2012


BA in Mathematics and Physics 2012, Cornell University.
Under Prof. Anil Nerode I studied modal logic, and in the Davis Lab I studied 4He solid dynamics.