I’m Jay Lorch, a Senior Principal Researcher in the Systems Research Group (opens in new tab) at Microsoft Research (opens in new tab). 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 (opens in new tab), distributed systems (opens in new tab), cryptographic libraries (opens in new tab), and multi-threaded shared-memory programs (opens in new tab).
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 (opens in new tab) and Shroud (opens in new tab), trusted-component power failures in TrInc (opens in new tab) and Memoir (opens in new tab), and improperly behaving participants in decentralized systems like GreenUp (opens in new tab) and FARSITE (opens in new tab). I’m an expert in Paxos and its many variants, having used it in several systems; most recently, in the IronFleet (opens in new tab) 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 (opens in new tab).