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:
dyna-pi, a system for automatically analyzing and improving dynamic programming algorithms.