David W. Richardson

Ph.D. Candidate
Computer Science and Engineering
University of Washington
Expected graduation: December 2011

About Me

I am a Ph.D. student at the Computer Science Department at the University of Washington where I am advised by Professor Steven D. Gribble. I am expecting to graduate by November of 2011. For more details, please refer to my resume.

I am broadly interested in the design, implementation, and analysis of computer systems. My thesis research has focused mainly on the Web and Cloud Computing, although I have done research in many other areas of computer science including large-scale distributed systems, virtualization, malware detection, machine learning applied to systems problems, and software model checking.

I received my Bachelors degree in Computer Science from Cornell University, and my Masters degree in Computer Science from the University of Washington.

Entrepreneurship

In 2006 I took a 2.5 year leave from graduate school to co-found and serve as Chief Scientist of Skytap Inc. Skytap was founded to commercialize technology stemming from my research at UW. The company provides pay-per-use cloud automation solutions for enterprises and software vendors to develop, test, migrate, evaluate, demo, and train on new and existing applications in the cloud. Using only a Web browser, customers can provision, deploy, change, interact with, and manage scalable cloud resources such as virtual machines, virtual machine clusters, and custom network configurations.

Skytap has raised over $23 million in venture capital from Madrona Venture Group, Ignition Partners, Bezos Expeditions, OpenView Venture Partners, and Washington Research Foundation. Now profitable, Skytap has won numerous industry awards (e.g., 2010 Top 10 Cloud Computing Startup, 2010 Product of the Year), and its customers include Oracle, HP, CSC, and Savvis.

As a co-founder and the Chief Scientist of Skytap, I was integrally involved with nearly every aspect of the company from its inception, including developing the initial software prototype, raising venture capital, hiring, managing, building and running datacenter operations, designing product and technology strategies, taking part in board meetings, speaking with the press, and acquiring customers. Here's a link to an early article in the Seattle Times when Skytap was just getting started (and was originally named illumita).

Research Projects

Viper: Long-Running Browser Services
Traditional desktop operating systems support background services, such as file system indexing, file synchronization, and event notification. Despite advances in Web browser technology, browsers do not yet support an equivalent notion of a service. I built Viper, a research browser that supports long-running, background Web programs called browser services [1].

Maverick: Local Device Access For Web Applications
Web browsers do not provide Web applications with safe, convenient access to local devices. To expose local devices to Web applications, I built Maverick, a secure Web browser that on-demand downloads and runs in the browser JavaScript and Native Client implementations of USB device drivers and frameworks [2].

Skytap: On-Demand Desktop Apps Over The Web
Delivering feature-rich applications, such as Office, over the Web requires developers to rewrite them from scratch. I built a system that leverages virtualization and thin-client technologies to allow clients to use their Web browser to interact with unmodified desktop applications running in the cloud [4,5].

Automatic OS Fingerprint Generation
Remote operating system fingerprinting tools require expert manual effort to construct discriminative fingerprints and classification models. I performed an in-depth evaluation at scale of the effectiveness of various machine learning techniques for automatically generating these fingerprints [3].

Internet Worm Detection
Global scanning worm detection systems monitor network traffic for anomalous increases in worm probes to detect the growth of a new worm. I constructed analytic models, simulations, and measurements to understand how background Internet noise impacts the detection fidelity of these systems [6].

Undergraduate Projects
As an undergraduate at Cornell, I was involved in a number of research projects, including a software model checker for C source code, and various network flow algorithms [7].

Publications and Patents

  1. David W. Richardson and Steven D. Gribble. "Viper: A Browser Architecture For Managing Long-Running Browser Services." Under submission Nov. 2011.
    Paper: [TBA].
  2. David W. Richardson and Steven D. Gribble. "Maverick: Providing Web Applications with Safe and Flexible Access to Local Devices." In Proceedings of the USENIX Conference on Web Application Development (WebApps '11), Portland, OR, June 2011.
    Paper: [PDF].
  3. David W. Richardson, Steven D. Gribble, and Tadayoshi Kohno. "The Limits of Automatic OS Fingerprint Generation." In Proceedings of the 3rd Workshop on Artificial Intelligence and Security (AISec '10), Chicago, IL, October 2010.
    Paper: [PDF].
  4. U.S. Patent Application No. 12/434,619, Publication No. 20100138830. "Multitenant Hosted Virtual Machine Infrastructure." June 3, 2010.
  5. U.S. Patent Application No. 11/532,419, Publication No. 20070260702. "Web Browser Architecture for Virtual Machine Access." November 8, 2007.
  6. David W. Richardson, Steven D. Gribble, and Edward D. Lazowska. "The Limits of Global Scanning Worm Detectors in the Presence of Background Noise." In Proceedings of the 3rd Workshop on Rapid Malcode (WORM '05), Fairfax, VA, November 2005.
    Paper: [PDF].
  7. J. Ezick, D. W. Richardson, and T. Teitelbaum. "Practical model checking and example generation for context-free processes." Technical Report TR2002-1851, Cornell University, August 2001.
    Paper: [ PDF].

Coursework and Teaching

I have taken a wide range of graduate-level Computer Science courses, including Design and Analysis of Algorithms, Computability and Complexity, Computer Networks, Artificial Intelligence, Computer Graphics, Operating Systems, Computer Vision, Concepts of Programming Languages, Computational Biology, and Operating Systems and the Web.

I designed and taught a Masters level class on Model Checking and Automated Verification.

I have also had a lot of experience teaching as a TA for undergraduate courses, including Data Structures and Algorithms, Introduction to Programming II, Programming Languages, and Operating Systems.