I am a third year PhD student in the Computer Science and Engineering department at the University of Washington. I work in the PLSE group and I am advised by Dan Grossman. I’ve also collaborated with Emina Torlak.

I’m interested in using program analysis to solve practical software engineering problems. My research has used techniques from model checking to check for memory safety errors in Rust, dynaminc taint analysis to find bugs in dynamic configuration update schemes, and type systems and program instrumentation to find type errors in Ruby programs. If any of this sounds interesting to you, I’m always happy to work with motivated undergrads to get started on research.

I received my BS in Computer Science at the University of Maryland, College Park. My honors project - which helped develop an undergraduate PL curriculum - was advised by Dr. Jeffrey Foster. I also had the pleasure of working with Dr. Michael Hicks.


Staccato: A Bug-Finder for Dynamic Configuration Updates.
John Toman and Dan Grossman. In ECOOP ‘16.
Winner: Distinguished Artifact Award and Distinguished Poster Award.
Paper (PDF) | GitHub | Web | Talk (YouTube)

CRust: A Bounded Verifier for Rust.
John Toman, Stuart Pernsteiner, and Emina Torlak. In ASE ‘15.
Paper (PDF) | GitHub | Web

The Ruby Type Checker.
Brianna M. Ren, John Toman, T. Stephen Strickland, and Jeffrey Foster. In SAC ‘13.
Paper (PDF) | Web