I’m Jay Lorch, a Senior Principal Researcher in the Systems Research Group at Microsoft Research. My main area of expertise is systems, with particular emphasis on software verification, distributed systems, trusted computing, privacy, and cloud computing.
Mainly, my research is on techniques for building reliable systems. This means systems that remain available and correct despite the possibility of software bugs, hardware failures, network partitions, power outages, etc.
Most recently, the way that I’ve been making systems reliable is with software verification. This exciting technology allows one to prove that a system conforms to its specification. That is, instead of running tests to try to root out bugs in a system, one can mathematically verify that it always does what it’s supposed to do. I’ve researched how to prove the correctness of full software stacks, distributed systems, cryptographic libraries, and multi-threaded shared-memory programs.
Before embracing software verification, my main focus was achieving reliability in distributed systems through fault tolerance. I showed how to deal with server failures in SMART and Shroud, trusted-component power failures in TrInc and Memoir, and improperly behaving participants in decentralized systems like GreenUp and FARSITE. I’m an expert in Paxos and its many variants, having used it in several systems; most recently, in the IronFleet project, my team and I produced the first-ever implementation of Paxos with a machine-checked proof of both its safety and liveness.
For more information about me, visit my personal home page.