Geoffrey Lefebvre
Department of Computer Science
University of British Columbia
placeholder@ubc.edu


I am a Principal Software Engineer at Coho Data where I established the company's networking strategy based on Software Defined Networking and OpenFlow. Among many things, I am responsible for the design and implementation of the network controller and load balancer. Previously, I was a Researcher in the Packet Technology Group at Ericsson Research. I worked on StEERING, a novel SDN framework that allows network operators to selectively steer traffic through different chains of network appliances at a very fine granularity.

In 2011, I completed my PhD under the supervision of Profs. Andrew Warfield and Mike Feeley in the Department of Computer Science at the University of British Columbia. My PhD thesis is on the offline dynamic analysis of entire systems, including the operating system's kernel, using virtualization and detailed execution traces.

Tralfamadore, the framework described in my thesis, performs dynamic analyses offline on recorded execution allowing repeated analyses over the same execution. Tralfamadore aims to bridge the semantic gap between instruction level traces and a developer's understanding. Architected as a dataflow engine similar to a streaming database, Tralfmadore's analyses are built using composable and reusable operators. My thesis is available here.

During my PhD, I did two internships in the Advanced Development Group at VMware, under the mentoring of Jim Chow. At VMware, I developed multiple low-level debugging mechanisms including adding support for deterministic replay in Valgrind as part of the Crosscut project. Earlier, I did an internship at Intel Research in Cambridge, where I investigated fast inter-VM communication using shared memory pages.

I also collaborated with my labmates on Remus, a virtualization based fault-tolerance framework, and Parallax, a distributed storage system that provides fine grained copy-on-write block storage and unlimited lightweight snapshots. Using some of the pieces from Remus and Parallax, I built the Difference Engine, a tool to capture the execution of a virtual machine by continuously taking snapshots.

I am interested in most aspects of systems design from low-level binary translation to large-scale cloud computing and big data systems. I hold several patents in the area of network virtualization and load-balancing.

Publications