About

I am a computer scientist driven by an allergy to inefficiency and a love of elegant solutions to tough problems. I believe that investing in the right theoretical foundations leads to solutions that are more general, more interpretable, and longer-lasting.

My current work focuses on making language models more controllable and programmable using probabilistic inference techniques. My broader interests include dynamic programming, tokenization, structured prediction, automatic differentiation, sampling methods, sampling without replacement, beam search, the Gumbel trick, formal language theory, logic programming, and reinforcement learning. I publish on many of these topics and explore them in a more tutorial style on my blog, Graduate Descent.

My path has taken me through several institutions, where I've had the privilege of working with great collaborators and mentors:

  • Consulting research scientist with Ryan Cotterell at ETH Zürich (remote from NYC).
  • PhD with Jason Eisner at Johns Hopkins. Developed dyna-pi, a system for automatically analyzing and improving dynamic programming algorithms.
  • Research programmer with Andrew McCallum at UMass. Worked on Rexa (a research paper search engine) and Factorie (a probabilistic programming framework).
  • BS in computer science (minor in mathematics) at UIUC. Research with Dan Roth on textual entailment.

Fun

When I'm not in front of a whiteboard or computer, I'm probably climbing things, walking around on my hands, or hanging out with Hanna Wallach, our adorable dog, and our newest family member.

mugshot

Blog

Technical blog: Graduate Descent.

Publications