He obtained a PhD in computer science from Stanford University in 2012. The goal of Tom's research is to make programs more reliable through static reasoning. Specifically, Tom is interested in developing precise static analysis techniques that work on real programs. Tom is also interested in constraint solving and simplification techniques and applying them to program analysis problems.