Tim Mann's Curriculum Vitae



Updated January 2009

Home:

Timothy Mann
518 Channing Ave.
Palo Alto, CA 94301

Email: tim at tim hyphen mann period org

Web page: http://tim-mann.org/


Professional Interests

My interests within computing are rather broad. I enjoy working on lower-level software, from the hardware/software boundary on upward. I also enjoy working on networking and distributed systems problems. My professional experience has been in naming, file systems, clock synchronization, operating system kernels, software configuration management, virtual machines, and power management. I've also done nonprofessional work in emulation and user interfaces. Some specific projects that I've worked on are described below.

VMware: I'm currently working for VMware, Inc. on virtual machine software. It's interesting and challenging work, and I hope to be with the company for a long time. I'm formally attached to the ESX Server project, in the VMkernel group, but my work has crossed over through all of our virtual machine products and through several layers of the system. I've worked extensively on time-related issues, including a redesign of the virtual timer devices that guest operating systems see when running in a virtual machine, and a redesign of the physical timer service in the ESX VMkernel. I've also worked on extensions to the VMkernel to support user-space processes, the buffer cache, and power management. At present I'm serving as tech lead for the VMkernel Hardware group.

Vesta: Vesta is an integrated system for software configuration management, consisting of a repository that stores immutable, versioned source code in a file system name space, a builder that automates the process of making derived objects from source, and a site-wide shared cache that speeds up the builder by allowing it to avoid redoing work that has been done before. I designed and implemented the repository, the tools that use the repository for source control, and the features and tools for replicating source code at multiple sites and doing cross-site checkout. I also contributed to the design, debugging, and documentation of most other parts of the system. For over two years, Vesta was in daily use by a group of about 130 developers working on a large microprocessor design, distributed across two sites on opposite coasts. During this period I helped provide second-line support and implemented several new features that were requested by our users. Vesta has been released as free software with source code available under the LGPL.

Itsy: I implemented a Linux flash-memory based file system for the Itsy pocket computer. The initial version was done quickly by modifying and gluing together several existing pieces of code, but I later worked with a summer intern on Cloudburst, a new implementation with built-in compression. Unfortunately our work was rendered irrelevant by the release of MTD and JFFS2.

Frangipani: Frangipani is a distributed file system built on top of the Petal scalable network storage system. I was co-designer of Frangipani and wrote most of the paper.

Echo: Echo was a research file system with replication for high availability, logging for rapid crash recovery, and extensive write-behind caching for performance. I worked mostly on the client side, including the cache and failover.

Clock synchronization: I've done some unpublished work with Leslie Lamport on clock synchronization, including both implementation and algorithm design. I spoke on part of it at the March 1996 Dagstuhl-Seminar on Time Services.

Decentralized naming: My Ph.D. thesis work was on a scheme for doing name lookup using multicast, thus eliminating name servers as a point of failure.

Nonprofessional Interests

Music: I play the guitar and lead singalongs on a regular basis for some church groups I'm involved with.

Chess: I am the main author of xboard and WinBoard, which are free graphical user interfaces for playing chess against a chess program or against another user on an Internet Chess Server. Over 100 chess programs now work with these interfaces.

Retrocomputing: I am the main author of xtrs, a free Radio Shack TRS-80 emulator for Unix. I've also written a set of free tools for reading and writing unusual floppy disk formats with the Catweasel universal floppy disk controller.

Education

Memberships and Professional Activities

Member ACM, Phi Beta Kappa, Pi Mu Epsilon, Sigma Pi Sigma. Referee for conferences SOSP, OSDI, ASPLOS, PODC, ISCA, ISWC; journals TOCS, TPDS, SP&E, TON, TSE. Program committee for 2nd WMRD, 1990.

Employment History

VMware, January 2008 to present, Senior Staff Engineer. August 2004 to December 2007, Staff Engineer. September 2001 to July 2004, Senior Member of Technical Staff.

Compaq Systems Research Center (formerly Digital Equipment Corporation Systems Research Center), May 1987 to August 2001. Promoted from Member of Technical Staff to Senior Member of Technical Staff in October 1999. I worked on several research projects (mostly described above) and consulted with various product groups.

Stanford University Computer Science Department, September 1981 to May 1987. Graduate Research and Teaching Assistant. As a research assistant, I worked on many parts of the V distributed operating system, concentrating on the microkernel and the naming service. I also edited the V user manual and coordinated system releases to users outside Stanford. As a teaching assistant, I prepared and graded tests and homework, and gave individual tutoring.

Other Employment, June 1978 to May 1987. At various times during this period I had summer or part-time positions at Silicon Graphics (consulting), Bell Laboratories (summer intern), Marquette University (research assistant), Galactic Software (TRS-80 operating system programmer), and Lutheran Hospital (programmer and special projects).

Personal Data

Born March 9, 1959 in Milwaukee, Wisconsin. I have lived in the San Francisco Bay Area since 1981 and prefer to stay here.

Papers and Patents

  1. Carl Waldspurger, Michael Craig, Ramesh Dharan, Rajit S. Kambo, Timothy P. Mann, Stephen A. Muckle, Boris Weissman, and John Zedlewski. Method and System for Improving the Accuracy of Timing and Process Accounting Within Virtual Machines. United States Patent 7,945,908. Issued May 2011.

  2. Timothy P. Mann. Method and Apparatus For Emulating Multiple Virtual Timers in a Virtual Computer System When the Virtual Timers Fall Behind the Real Time of a Physical Computer System. United States Patent 7,475,002. Issued January 2009.

  3. Allan Heydon, Roy Levin, Timothy Mann, and Yuan Yu. Software Configuration Management Using Vesta. Springer, Monographs in Computer Science series. ISBN 0-387-0029-4, February 2006. (An early version appeared as Compaq SRC Research Report 177, cited below.)

  4. Marcos K. Aguilera, Minwen Ji, Mark Lillibridge, John MacCormick, Erwin Oertli, Dave Andersen, Mike Burrows, Timothy Mann, and Chandramohan A. Thekkath. Block-Level Security for Network-Attached Disks. Proceedings of the 2nd USENIX Conference on File and Storage Technologies (FAST '03), March 2003.

  5. Robert M. Hyatt and Timothy Mann. A Lockless Transposition Table Implementation for Parallel Search. ICGA Journal, International Computer Games Association, 25(1):36-39, March 2002.

  6. Allan Heydon, Roy Levin, Timothy Mann, and Yuan Yu. The Vesta Software Configuration Management System. Research Report 177, Compaq Systems Research Center, Palo Alto, CA, January 2002.

  7. Timothy Mann. Partial Replication in the Vesta Software Repository. Research Report 172, Compaq Systems Research Center, Palo Alto, CA, August 17, 2001.

  8. William R. Hamburgen, Deborah A. Wallach, Marc A. Viredaz, Lawrence S. Brakmo, Carl A. Waldspurger, Joel F. Bartlett, Timothy Mann, and Keith I. Farkas. Itsy: Stretching the bounds of mobile computing. IEEE Computer, 34(4):28-36, April 2001.

  9. Allan Heydon, Roy Levin, Timothy Mann, and Yuan Yu. The Vesta approach to software configuration management. Research Report 168, Compaq Systems Research Center, Palo Alto, CA, March 2001.

  10. Gretta Bartels and Timothy Mann. Cloudburst: A compressing, log-structured virtual disk for flash memory. Technical Note 2001-001, Compaq Systems Research Center, Palo Alto, CA, February 2001.

  11. Chandramohan A. Thekkath, Timothy P. Mann, and Edward K. Lee. Scalable Distributed File System. United States Patent 6,173,293. January 2001.

  12. Allan Heydon, Jim Horning, Roy Levin, Timothy Mann, and Yuan Yu. The Vesta-2 Software Description Language. Technical Note 1997-005c, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, June 1998.

  13. Chandramohan Thekkath, Timothy Mann, and Edward K. Lee. Frangipani: A scalable distributed file system. Proceedings of the 16th ACM Symposium on Operating Systems Principles, pages 224-237. ACM Press, October 1997.

  14. Timothy Mann, Andrew D. Birrell, Andy Hisgen, Chuck Jerian, and Garret Swart. A coherent distributed file cache with directory write-behind. ACM Transactions on Computer Systems, 12(2):123-164, May 1994. (A preliminary version appeared as DEC SRC Research Report 103.)

  15. Garret Swart, Andrew D. Birrell, Andy Hisgen, and Timothy Mann. Availability in the Echo file system. Research Report 112, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, September 1993.

  16. Andrew D. Birrell, Andy Hisgen, Chuck Jerian, Timothy Mann, and Garret Swart. The Echo distributed file system. Research Report 111, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, September 1993.

  17. Andy Hisgen, Andrew D. Birrell, Chuck Jerian, Timothy Mann, and Garret Swart. New-value logging in the Echo replicated file system. Research Report 104, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, June 1993.

  18. Andy Hisgen, Andrew D. Birrell, Chuck Jerian, Timothy Mann, and Garret Swart. Some consequences of excess load on the Echo replicated file system. Proceedings of the IEEE Workshop on the Management of Replicated Data, pages 92-95. IEEE, November 1992.

  19. Michael Burrows, Chuck Jerian, Butler Lampson, and Timothy Mann. On-line data compression in a log-structured file system. Proceedings of the 5th Conference on Architectural Support for Programming Languages and Operating Systems, October 1992. (Also appeared as DEC SRC Research Report 85.)

  20. Andy Hisgen, Andrew D. Birrell, Chuck Jerian, Timothy Mann, Michael D. Schroeder, and Garret Swart. Granularity and semantic level of replication in the Echo distributed file system. Proceedings of the IEEE Workshop on the Management of Replicated Data, November 1990.

  21. Andy Hisgen, Andrew D. Birrell, Timothy Mann, Michael D. Schroeder, and Garret Swart. Availability and consistency tradeoffs in the Echo distributed file system. Proceedings of the 2nd IEEE Workshop on Workstation Operating Systems, pages 49-54. IEEE, September 1989.

  22. Timothy Mann, Andy Hisgen, and Garret Swart. An algorithm for data replication. Research Report 46, Digital Equipment Corporation, Systems Research Center, Palo Alto, CA, June 1989.

  23. David R. Cheriton and Timothy P. Mann. Decentralizing a global naming service for improved performance and fault tolerance ACM Transactions on Computer Systems, 7(2):147-183, May 1989.

  24. Timothy Paul Mann. Decentralized naming in distributed computer systems. Stanford University, School of Engineering, Computer Science Department, Stanford, CA, May 1987. Ph.D. Thesis. (Available as Computer Science Technical Report STAN-CS-87-1179.)

  25. David R. Cheriton and Timothy P. Mann. A decentralized naming facility. Technical Report STAN-CS-86-1098, Computer Science Department, Stanford University, Stanford, CA, February 1986. (Above link is a scanned image. Also available in PostScript, without figures.)

  26. Ross Finlayson, Timothy Mann, Jeffrey Mogul, and Marvin Theimer. A reverse address resolution protocol. Request For Comments 903, Network Information Center, SRI International, June 1984.

  27. David R. Cheriton and Timothy P. Mann. Uniform access to distributed name interpretation in the V-System. Proceedings of the Fourth International Conference on Distributed Computing Systems, pages 290-297. IEEE, 1984. (Co-winner of Best Paper award. Above link is a scanned image. Also available in Scribe, without figures.)