In 2000, I co-founded the MSR BIG project. Ahead of our time, we discovered many principles of cloud computing five years ahead of Amazon. Over 30 US Patents issued for the cloud computing technologies we developed. During a leave from MSR to move these ideas into Microsoft products, I was the Group Program Manager for Windows Automated Deployment Services. My group created two of the core technologies for Microsoft’s Dynamic Systems Initiative: the Dynamic Data Center and the System Definition Model.
Before BIG, I was a Researcher in the Systems and Networking Group. I worked on the Millennium Project; Continuum, a distributed version of the .NET Common Language Runtime (CLR); and Coign, a system that converted existing COM-based desktop applications into client-server distributed applications without access to application source code. I’ve worked on running DCOM over System Area Networks (SANs), the Detours package for instrumenting Windows binaries, and a proxy device driver for creating Windows NT user-mode drivers.
As a MSR summer intern, I developed the prototype for the protocol and implementation for what became, after reworking by a cast of hundreds, Microsoft’s Advanced Streaming Format (ASF) and Windows Media Player.
I have Ph.D. (1998) and M.S. (1996) degrees in Computer Science from the University of Rochester, a B.S. (1992) degree in Physics from the University of Utah, and an A.S. (1987) degree from Dixie College.
While at the University of Rochester, I was part of Michael Scott’s Cashmere team developing fast Software Distributed Shared Memory (SDSM) systems on memory mapped networks. I also modified the GNU Compiler Collection Objective-C runtime to support full multi-threading.
Before graduate school, I lead software development at a small start-up, Software Migrations, Inc.. My greatest achievement at SMI was DPX, an advanced structure-mapping and data-migration tool. We rocked the tax-preparation software market by creating programs that automatically migrated tax records from one tax package to another. With just 5 people, we produced over 100 separate transfer programs each year and ate the lunch of everyone else in the business. It was an excellent experiment in leveraging automated software development tools.
As an undergraduate, I contributed to the Linux 0.11 text console driver. Before that, I started programming in C as a teenager.
- Don Porter (2009) created a user-mode version of the Win32k subsystem to allow complete Windows application isolation for sandboxing, legacy compatibility, and process migration.
- Aaron Shulman (2008), prototype kiosk scenarios.
- Ryan Braud (2007) prototyped kiosk authentication using a TPM.
- César Spessot (2006) ported a subset of SQL to Singularity.
- Mike Spear (2005) created an entirely declarative I/O device driver configuration system for Singularity.
- Prince Mahajan (2004) wrote a number of device drivers and a transacted file system for Singularity.
- Tom Roeder (2004) worked on Singularity’s application abstraction and installer.
- David Oppenheimer (1999) built a distributed hash table on an unnamed research OS.
- Rob Stets (1998) created a distributed DCOM-based implementation of the Win32 API called COP (the Component-based OS Proxy).
- External Review Committee, 21st ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2016), Atlanta, Georgia, April 2016
- External Review Committee, 20th ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2015), Istanbul, Turkey, March 2015.
- External Review Committee, 11th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2014).
- Program Committee, 8th ACM International Conference on Virtual Execution Environments (VEE 2012), London, UK, March 2012.
- Program Committee, Posters and Works-in-Progress, 23rd ACM Symposium on Operating Systems Principles (SOSP 2011), Cascais, PT, October 2011.
- External Review Committee, 17th ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2012), London, UK, March 2012.
- External Review Committee, 16th ACM International Conference on Architectural Support for Progamming Languages and Operating Systems (ASPLOS 2011), Newport Beach, CA, March 2011.
- Steering Committee, USENIX 13th Workshop on Hot Topics in Operating Systems (HotOS XIII), Napa, CA, May 2011.
- Steering Committee, USENIX 12th Workshop on Hot Topics in Operating Systems (HotOS XII), Monte Verita, Switzerland, May 2009.
- Progam Committee, USENIX Advanced Technical Conference 2010, Boston, MA, June 2010.
- Program Committee, EuroSys 2009 . Nuremberg, Germany, April 2009.
- Program Committee, 8th USENIX Symposium on Operating Systems Design and Implementation (OSDI ’08). San Diego, CA, December 2008.
- Program Committee, EuroSys 2008. Glasgow, Scotland, April 2008.
- Program Committee Chair, 11th Workshop on Hot Topics in Operating Systems (HotOS XI). San Diego, CA, May 2007.
- Sponsorships Chair, 20th ACM Symposium on Operating Systems Principles (SOSP). Brighton, United Kingdom, October 2005.
- Treasurer, 19th ACM Symposium on Operating Systems Principles (SOSP), Bolton Landing, NY, October 2003.
- Program Committee, Ninth International Conference on Architectural Support for Programming Languages and Operation Systems (ASPLOS-IX), Cambridge, MA, November 2000.
- Review Panel, NSF Information Technology Research (ITR) Program, Arlington, VA, April, 2000.
- Committee, 1999 DARPA ISAT Study on Probabilistic Methods in Computational Systems and Infrastructure, Woods Hole, MA, August 1999.