We develop innovative approaches for building software and for solving problems in modern parallel and distributed software systems.

On example of our work is the design and implementation of CLU, the first programming language to support data abstraction. Another is our invention of replication techniques that allow distributed systems to continue to provide service in the presence of both crashes and arbitrary (Byzantine) failures.