Patrick Tullmann

Millbrae, CA 94030
pat (at) tullmann.org
http://www.tullmann.org/pat/
Looking to combine my experience in operating systems, language run-times or networking with a small team of smart people to create new products. Or, a position developing games.

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, multi-threading, 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 multiple applications with similar guarantees and features to a traditional operating system.

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

EXPERIENCE:
Member of Technical Staff, VMware, Inc.February 2003 -
Palo Alto, California
VMware builds virtual machine software for running multiple operating systems on a single x86 computer. I work on the ESX Server product.

Java Community Process JSR-121 Expert Group, via InternetApril 2001 -
JSR-121 adds 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 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.

Teaching Assistant for introductory programming classesSeptember 1992 ~ May 1995
Department Of Computer Science, University of Vermont, Burlington, Vermont
Covered C and Pascal. Ran labs, wrote quizzes, graded homework. (Over 6 semesters.) Given the job as a sophomore, though it was generally restricted to juniors and seniors.

Summer Internship(s) at Progress SoftwareSummer 1992, Summer 1993, Summer 1994
Burlington, Massachusetts
In-house application development, product bug fixing and bug closure verification.

MEMBERSHIPS:
JSR-121 Expert Group: Member of the Java Community Process expert group tasked with specifying multiple application support for the Java platform. (2001- )
Kaffe Core Team: Member of the Kaffe Core Team with commit privileges to the public CVS repository. (2000-)
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 (but very useful) and customizable @todo javadoc taglet. Java. Open source.

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

IRRELEVANT SKILLS:
Intermediate mountain biker, expert skier, novice rock climber. Skilled at Counter-Strike.

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, April 12, 2006