Patrick Tullmann

Millbrae, CA 94030
pat (at) tullmann.org
http://www.tullmann.org/pat/
Broad experience in operating systems implementation, language run-times, virtualization, networking and storage systems with large and small teams.

EDUCATION:
MS, Computer Science, December 1999. University of Utah.
Emphasis in melding operating systems and language run-times. Author or co-author of eight publications and one thesis. Coursework included graphics, vision, networking, formal methods, operating systems, and compilers.
Thesis: The Alta Operating System. Alta is a Java operating system: a Java Virtual Machine that leverages type-safety to support and isolate multiple applications with similar guarantees and features as a traditional operating system.

BS, Computer Science, summa cum laude, May 1995. University of Vermont.

EXPERIENCE:
Senior Staff Engineer at VMware, Inc.February 2003 - September 2011
Palo Alto, California
VMware builds virtual machine software for running multiple operating systems simultaneously on a single x86 computer. Development on the ESX Server team, development in the hypervisor kernel, ESX reliability services, and storage replication.

Java Community Process JSR-121 Expert Group, via InternetApril 2001 - Dec 2003
JSR-121 proposed support for starting, controlling and managing multiple applications in Java. Representative for the Flux Research Group at the University of Utah. Drive discussions on design and on technical details, maintain CVS repository and several group documents. Built prototype implementation.

Staff Research Associate in Flux Research GroupSeptember 1997 - June 2001
Department Of Computer Science, University of Utah, Salt Lake City, Utah
Technical lead for the Janos project, a resource-aware Java Virtual Machine that is the operating system for an active networking node. Implementation in Java and C. Research in resource management including memory, CPU, and network controls. Managed a small team of staff and students. Wrote about designs and evaluations for publication. Presented conference papers, proposals, and status reports. Took on additional responsibilities as needed, including: project web page design and maintenance, regression testing infrastructure maintenance, software release management.

Graduate Research Assistant in Flux Research GroupMay 1996 - August 1997
Department Of Computer Science, University of Utah, Salt Lake City, Utah
Coding lackey. Wrote a multi-process checkpointer; assisted core kernel development. Experimented with formal methods. Most coding in C. Helped write about designs and evaluations for publication (five published papers), presented several.

Teaching Assistant for undergraduate graphics seriesSeptember 1995 - April 1996
Department Of Computer Science, University of Utah, Salt Lake City, Utah
Graded homework and tests, evaluated tests and quizzes, managed grades, maintained class web page, held office hours.

MEMBERSHIPS:
JSR-121 Expert Group: Member of the Java Community Process expert group tasked with specifying multiple application support for the Java platform. (2001 - 2003)
Kaffe Core Team: Member of the Kaffe Core Team with commit privileges to the public CVS repository. (2000 - 2003)
NodeOS Interface Specification Committee: Member of the DARPA Active Networking working group to define a common API for node services in an active network (API Draft). (1998 - 2001)
Usenix: Advanced Computing Systems Association. (1998 - 2001)

AVAILABLE PROJECTS:
Janos: Design and implementation with a team of 3 to 9. Resource-aware node operating system for hosting untrusted Java bytecode. Java and C code, including threading systems, garbage collection, network stacks, and low-level systems management. Open source.
Amphion: Design and implementation of a simple networked music playlist server. C++, Python, Perl, Java and shell scripting were used. Open source.
Javadoc Taglets: Authored a simple and customizable @todo javadoc taglet. Java. Open source.

COMPUTER SKILLS:
Languages (Expert): C, Java, Latex, (GNU)make, sh.
Languages (Proficient): C++, Python, Perl, Tcl/Tk, HTML, SQL, Pascal, BASIC, x86 assembly, sed, autoconf, m4.
Languages (Familiar): csh, awk, ML, Javascript, Postscript, Lisp, XML.
Operating Systems: Android, UNIX (Linux, FreeBSD, Solaris), Windows, Alta, Janos.
APIs/Protocols/Libraries/Tools: Berkeley sockets, POSIX, Java2, C++ STL, SWIG, SQLite, OpenGL, SDL, CVS, Eclipse, GNU toolchain, vi, emacs, HTTP, PowerPoint, Excel.

IRRELEVANT SKILLS:
Intermediate mountain biker, expert skier, novice rock climber. Skilled with Aperture Science handheld portal device.

REFERENCES:
Available upon request.

SELECTED PUBLICATIONS:
See my publications page for a complete list of publications.

Janos: A Java-oriented OS for Active Networks.
Patrick Tullmann, Mike Hibler, and Jay Lepreau
IEEE Journal on Selected Areas in Communications, special issue on Active Networks, March 2001.

Techniques for the Design of Java Operating Systems.
Godmar Back, Patrick Tullmann, Leigh Stoller, Wilson Hsieh, and Jay Lepreau
Proceedings of the 2000 USENIX Annual Technical Conference June, 2000.

Nested Java Processes: OS Structure for Mobile Code.
Patrick Tullmann, Jay Lepreau
Proceedings of the Eighth ACM SIGOPS European Workshop September, 1998.

Formal Methods: A Practical Tool for OS Implementors.
Patrick Tullmann, Jeff Turner, John McCorquodale, Jay Lepreau, Ajay Chitturi, and Godmar Back
Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HOTOS-VI). May, 1997.

User-level Checkpointing Through Exportable Kernel State.
Patrick Tullmann, Jay Lepreau, Bryan Ford, and Mike Hibler
Proceedings of the 5th International Workshop on Object-Orientation in Operating Systems (IWOOOS `96) October, 1996.
The slides from my presentation are available (Postscript).

Microkernels meet Recursive Virtual Machines.
Bryan Ford, Mike Hibler, Jay Lepreau, Patrick Tullmann, Godmar Back, Stephen Clawson
Proceedings of the Second Symposium on Operating Systems Design and Implementation (OSDI `96) October, 1996.

webhead@tullmann.org
Last updated on Wednesday, February 01, 2012