His research improves software reliability by developing tools that help programmers ensure their code is safe and accurate. Along with his students, he focuses on software infrastructure that many other programs rely on (compilers, distributed systems, networks, web browsers); control programs in safety-critical applications (radiotherapy devices, robotics); and approximations used in engineering and manufacturing (floating point, 3D printing).