In 1999 I started work as a Researcher at the Compaq Systems Research Center in Palo Alto, and I have worked for Microsoft Research in Silicon Valley since 2002. The majority of my early research was in the field of visual tracking and sequential filtering, and I helped to introduce particle filters to the computer vision community with the Condensation algorithm. From the time I joined Compaq my interests have broadened to include distributed systems research, and this is where I am spending the majority of my time at Microsoft.

I spent much of mid-2003 to early 2005 working closely with the MSN Search product group on the design and implementation of their V1 search engine. I was involved from the start of the project and owned several production components in the live query pipeline. I was particularly involved in the design and implementation of the monitoring and failure recovery systems, the query distribution and result aggregation system, and the inverted file lookup.

Current research projects focus on programming models for large-scale distributed systems. I led the Dryad project to build a large-scale distributed execution platform for datacenters that is now widely used internally by Microsoft product groups, and worked on the successor DryadLINQ project. My main systems activity at the moment is as a collaborator on the Naiad project, which combines support for iterative and incremental computation in a large-scale distributed system.