About

My research interest is the use of the shared memory programming paradigm to program distributed, parallel, or concurrent or systems conveniently, efficiently, and correctly.

Projects

Concurrent Revisions

Established: September 15, 2010

The Revisions project introduces a novel programming model for concurrent, parallel, and distributed applications. It provides programmers with a simple, yet powerful and efficient mechanism (based on mutable snapshots and deterministic conflict resolution) to execute various application tasks in parallel…

Cuzz – Concurrency Fuzzing

Established: February 6, 2012

Cuzz is a very effective tool for finding concurrency bugs. Cuzz works on unmodified executables and is designed for maximizing concurrency coverage for your existing (unmodified) tests. It randomizes the thread schedules in a systematic and disciplined way, using an…

CHESS: Find and Reproduce Heisenbugs in Concurrent Programs

Established: October 1, 2008

CHESS is a tool for finding and reproducing Heisenbugs in concurrent programs. CHESS repeatedly runs a concurrent test ensuring that every run takes a different interleaving. If an interleaving results in an error, CHESS can reproduce the interleaving for improved…

Publications

2015

2014

2013

2012

2011

2010

2009

2008

2007

2006

Other

Interests

  • Eventual Consistency, and Consistency in Distributed Systems, and Relaxed Memory Models
    Check out my new book! (on publisher site, or the free pdf download)
  • Touch-enabled scripting languages for mobile+cloud
    (see the TouchDevelop project)
  • Concurrent, Parallel, and Distributed Programming Models
    (see the Revisions project)
  • Verification and Debugging Tools for Concurrent Programs
    (see the Cuzz and CHESS projects)

Professional Activities