Brent B. Welch

October 2013

1805 Orangetree Lane
Mountain View, California 94040
(650) 400-3482 (please text first and identify yourself)

Research and Career Interests

High Performance Storage Systems. I have helped build two great distributed file systems, Sprite, and the Panasas parallel file system (PanFS).

Tcl/Tk; application design and development, distributed systems; file systems; operating systems; systems management; user interfaces; system integration.


University of California, Berkeley

Doctor of Philosophy, 1990.
Thesis: Naming, State Management, and User-level Extensions in the Sprite Distributed File System

University of California, Berkeley

Master of Science, 1986
Thesis: The Sprite Remote Procedure Call System

University of Colorado, Boulder

Bachelor of Science, with honors, in Aerospace Engineering, 1982.



Senior Software Engineer

November 2013


Chief Technology Officer

April 2012 to October 2013

Director, Software Architecture

April 2006 to April 2012

Principal Architect

June 2004 to April 2006

Software Architect

February 2001 to June 2004

The Panasas file system is a high-performance clustered file system built from object storage devices and out-of-band metadata servers. The system is in production with some of the largest super computers in the Top500, and with applications including scientific simulation, seismic data processing, digital animation, bioinformatics, finace, and general purpose computing.

I lead the architecture team that is responsible for planning technical direction and ensuring a robust system design. I enjoy coding, when possible, general problem solving, customer presentations, and "whatever it takes" in a pre-IPO company. I am also active in the IETF NFSv4 working group and the Parallel NFS extension.

In April, 2012 I was promoted to Chief Technology Officer.

Staff Engineer, Interwoven

November 2000 to January 2001

Interwoven acquired Ajuba Solutions on October 31, 2000, primarily for its people. I worked on their integration of TeamSite with Microsoft Commerce Server.

Sr. Web Engineer, Scriptics Corporation/Ajuba Solutions

March 1998 to October 2000. (Scriptics changed its name in May 2000 to Ajuba Solutions.)

Implemented, its electronic commerce system and back-end customer database system. Also implemented the Tcl Developer Xchange, This includes the TclHttpd Web server platform, AOLserver, Sybase, Oracle. This was done mostly in Tcl, some SQL, and trace amounts of C for custom extensions.

I contributed to the design and implementation of the Ajuba2 and Ajuba3 integration server, primarily in their use of TclHttpd as an application server. I managed the release of TclPro 1.4.

Staff Engineer, Sun Microsystems Laboratories

May 1995 to March 1998.

A member of the Tcl/Tk project. Built Internet applications including exmh, an extensible e-mail user interface, webtk, a combined WWW browser and HTML editor, and TclHttpd, an extensible web server. Developed the web site, including dynamic HTML features built into the web server. Spoke many times to promote the use of Tcl and Tk in industry. Made various contributions to the Tcl/Tk core.

Member of Research Staff, Xerox Palo Alto Research Center

April 1990 - May 1995.

Worked on the LiveBoard project that developed a large screen computer system with a wireless pen input device. Developed device drivers, on-board firmware, calibration and diagnostics software for three generations of the pen input device. Investigated the structure and performance of multithreaded runtime systems. Designed and developed driver, image processing, and user interface software for a color scanner project. Contributed to the design of a replicated database system designed to work well in a disconnected environment of mobile computers. Designed, developed, and distributed a user interface for electronic mail. Promoted and supported the use of Tcl and Tk.

Research Assistant, University of California, Berkeley

June 1984 - March 1990

Member of the team that designed and built the Sprite network operating system. Primary designer and developer of the remote procedure call network protocol and the distributed file system. Features of the file system include a naming system based on prefix tables, transparent remote access to devices and files, and extensibility via user-level service processes. Designed and built a state management system for the file system that supports a high-performance client caching system, process migration among workstations, and a server crash recovery protocol. Wrote other miscellaneous OS modules such as disk and network drivers, synchronization code, and profiling support. Helped maintain the system as it grew to a network of 50 workstations supporting the day-to-day computing needs of several other work groups.

Teaching Assistant, University of California, Berkeley

September 1983 - May 1984

Teaching assistant for the introductory programming class. Taught a laboratory session and a recitation session. Graded homeworks and exams.

Research Assistant, University of Colorado, Boulder

June 1981 - March 1983

Developed a source-level debugger for Fortran as part of the Toolpack project. The debugger worked by annotating program sources with additional statements containing calls to runtime analysis and debugging routines. Helped maintain the UNIX and VMS computer systems.


5,341,155 Method for correction of position location indicator for a large area display system. This concerns the transformation of sensor input to an X,Y location on the Liveboard display.

5,845,075 Method and apparatus for dynamically adding functionality to a set of instructions for processing a Web document based on information contained in the Web document. Uhler, Steve, and Brent B. Welch.

6,985,995 Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data.


Practical Programming in Tcl and Tk, 4th Edition. Prentice Hall. Jun 2003. ISBN 0-13-038560-3.

This book is in its 4th edition and has been translated to German, Japanese, and Chinese. It is the leading Tcl/Tk book.

MH & xmh: Email for users & Programmers. 3rd Edition. Jerry Peek. O'Reilly & Associates, Inc. 1995. I contributed three chapters to this book. ISBN 1-56592-093-7

Naming, State Management, and User-Level Extensions in the Sprite Distributed File System. Ph.D. thesis, University of California, Berkeley, March 1990.

Journal Articles

A Comparison of Three Distributed File System Architectures. Computing Systems Journal, Summer 1994.

Measured Performance of Caching in the Sprite Network File System. Computing Systems Journal. Summer 1991.

The Sprite Network Operating System. IEEE Computer. February 1988. (with John Ousterhout, Andrew Cherenson, Fred Douglis, and Mike Nelson.)

Caching in the Sprite Network File System. ACM Transactions on Computer Systems. February 1988. (with John Ousterhout and Mike Nelson.)

Conference Papers

Scalable performance of the Panasas parallel file system. In FAST 2008 (Vol. 8, pp. 1-17). (Welch, B., Unangst, M., Abbasi, Z., Gibson, G., Mueller, B., Small, J., ... & Zhou, B.)

Managing Scalability in Object Storage Systems for HPC Linux Clusters. 2004 Conference on Mass Storage Systems and Technologies. (with Garth A. Gibson)

Object Storage: Scalable Bandwidth for HPC Clusters. 2003 ClusterWorld Conference. (with Garth A. Gibson, David F. Nagel, and Bruce C. Moxon)

Applications of a Computerized Whiteboard. Proc. of the 1994 Society for Information Display Symposium, Seminar, and Exhibition. June 1994. (with Scott Elrod, Tom Moran, Kim McCall, Frank Halasz, and Richard Bruce.)

Using Threads in Interactive Systems: A Case Study. Proc. of the 14th Symposium on Operating System Principals. October 1993. (with Carl Hauser, Christian Jacobi, Marvin Theimer, and Mark Weiser.)

Customizing Mobile Applications. Proc. of the USENIX Symposium on Mobile Computing. August 1993. (with Marvin Theimer and Bill Schilit.)

Liveboard: A Large Interactive Display Supporting Group Meetings, Presentations and Remote Collaboration. Proc. of the 1992 Computer Human Interaction Conference. June 1992. (with Scott Elrod, Richard Bruce, Rich Gold, Dave Goldberg, Frank Halasz, William Janssen, David Lee, Kim McCall, Elin Pedersen, Ken Pier, and John Tang.)

The File System Belongs in the Kernel. Proc. of the 2nd Mach Symposium. November 1991.

Pseudo-Devices: User-Level Extensions to the Sprite File System. Proc. of the 1988 Summer USENIX Conference. June 1988. (with John Ousterhout.)

Prefix Tables: A Simple Mechanism for Locating Files in a Distributed Filesystem. Proc. of the 6th International Conference on Distributed Computing Systems. May 1986. (with John Ousterhout.)

Workshop Papers

"Integrated system models for reliable petascale storage systems." Proceedings of the 2nd international workshop on Petascale data storage: held in conjunction with Supercomputing'07. ACM, 2007.

Tcl/Tk HTML Tools. Proc. of the 4rd Tcl/Tk Workshop. July 1996.

Flexibility and Customization in the EXMH mail user interface. Proc. of the 3rd Tcl/Tk Workshop. June 1995.

"Web enabling applications." Proc. of the 4th Tcl/Tk Workshop. July. 1996. (Welch, Brent, and Stephen Uhler.)

Operating System Issues for PDAS. Proc. of the Fourth Workshop on Workstation Operating Systems. October 1993. (with Marvin Theimer and Alan Demers.)

A New Model of Abstraction for Operating System Design. Proc. of the 1992 International Workshop on Object Orientation in Operating Systems. September 1992. (with Gregor Kiczales and Marvin Theimer.)

A Comparison of the Vnode and Sprite File System Architectures. Proc. of the USENIX File System Workshop. May 1992.

A Proposal for a Public Domain Systems Library. Proc. of the 3rd Workshop on Workstation Operating Systems. April 1992.

A Proposal for Computer System Schemas. Proc. of the 1991 International Workshop on Object Orientation in Operating Systems. October 1991.

Sprite Position Statement: Use Distributed State for Failure Recovery. Proc. of the Second Workshop on Workstation Operating Systems. September 1989. (with Mary Baker, Fred Douglis, John Hartmann, Mendel Rosenblum, and John Ousterhout.)

Technical Reports

The Sprite Remote Procedure Call System, Technical Report UCB/CSD 86/302, June 1986

The Safe-Tcl Security Model, Technical Report SMLI TR-97-60, Sun Microsystems, 1997.

Conference Work

Invited Talk Co-Coordinator. USENIX 1995 Winter Conference, USENIX 1994 Summer Conference, USENIX 1994 Winter Conference.

Program committee member. USENIX 1996 Winter Conference. USENIX 1992 Winter Conference.

Program committee member. International Conference on Configurable Distributed Systems, 1996, 1998.

Local Arrangements Chair. 4th Workshop on Workstation Operating Systems.

Local Arrangements Chair. 2nd International Workshop on Object Orientation in Operating Systems.

Professional Society Memberships

IEEE Computer Society.

Association for Computer Machinery.


Married to Jolene. 3 children: Christopher, Daniel, and Michael.

Other Interests

Footbag. 7-time Mixed Doubles Footbag Net World Champion with my wife. Member of the International Footbag Advisory Board (IFAB). See