Christopher Angelo Provenzano


95 Liberty Avenue
Somerville MA 02144
Home Phone: 617 818 4449
Email: proven@proven.org

Objective

To find a position as a Senior Software Engineer working on interesting system level problems ideally in the file system or in the internals of multi-threaded systems.

Work Experience

Software Engineer
Vividon
December 1999-December 2001
Sudbury, Massachusetts

Joined Vividon, a small startup, to work on XOK and ExOS, the "kernel" for Vividon's Streaming Media Servers. XOK is an exokernel that came out of MIT and gives applications more direct access to the underlying hardware thus reducing overhead. See http://www.pdos.lcs.mit.edu/exo/ for more details.

Rearchitected and rewrote the file system with the goals of performance, stability, reliability, and recoverability. Added an inode layer, concurrent file system access locking, support for large directories, and support for creating large files with contiguous blocks. Some of the file system work has resulted in two patent applications.

Additionally designed an coded an event system for asynchronous disk access and future thread support, reworked the PCI layer so multiple PCI cards could use memory mapped I/O, and designed and coded a cascading interrupt system for XOK.

Part of the team that ported Real Server to XOK. Real Server is the streaming media server from Real with over 250000 lines of C++ code. Additionally I rewrote the memory management layer to support Real Server.
Chief Check on Reality
FastEngines
January 1999-December 1999
Cambridge, Massachusetts

Joined a small startup company to work on the entire spectrum of engineering tasks, including: maintaining the legacy version of the Fast.Serv product on various Unix platforms; maintaining the Fast.Serv product on WinNT (which required rewrites of several subsystems of the originally ported version); and helping design the new 2.0 version of Fast.Serv. Other responsibilities included testing, support, release engineering, and systems administration. The Fast.Serv product includes a webserver plug-in that implements the FastCGI "persistent CGI" protocol, a process manager, and a toolkit for migrating existing CGI applications to FastCGI.

Was a major proponent of engineering process at FastEngines. As such acted as a driving force in the transformation of FastEngines from from a minute-to-minute, crisis-oriented garage operation to a professional software company capable of setting deadlines and shipping products.
Systems Software Engineer
Cygnus Solutions
March 1996-November 1998
Cambridge, United Kingdom

Part of the eCos team. eCos is a configurable Real Time OS. Ported eCos to run on top of Linux as a synthetic target. Designed and coded all the serial RS232 device drivers, the serial RS232 testing infrastructure, and the generic device driver API for eCos. Wrote the configuration tools for an early version of eCos using autoconf and automake. Coded the target manager controller GUI using Tcl/Tk. The target manager is a router for remote target debugging. Helped port compiled Java to run on top of eCos.

Part of the Source Navigator (SN) team. SN is a graphical code browser. Integrated SN into the existing Cygnus source tree and configuration system. Ported it to run on Windows NT using both the CygWin API and also the native API.

Part of the Kerberos network security team. Integrated networked CVS to use Cygnus's Kerberos V GSS-API for authentication. GSS-API is the IETF standardized Generic Security System API.
Systems Programmer
MIT-Distributed Computing and Network Services
December 1994-February 1996
Cambridge, Massachusetts

Part of the Kerberos V team. Redesigned and implemented the key storage system to allow principals to have multiple keys and also to support multiple encryption engines. Implemented ticket forwarding. Rewrote most of the Kerberos V library to reduce the overall code size.
UNIX Consultant
Hewlett Packard-Apollo Division
November 1993-October 1994
Chelmsford, Massachusetts

Designed and implemented changes to the DCE thread scheduler for HP-UX. Part of a team that designed and implemented a distributed test management (DTM) tool. Designed and implemented the core engine which included explicit functionality to synchronize tests between hosts, the daemon which is run on each test host, and the communications protocol between the daemons on the various hosts.
Programming Contractor
Novus
August 1993-October 1993
Burlington, Massachusetts

Designed and implemented a terminal emulator for testing a proprietary protocol. Worked on implementing a store and forward subsystem for the same protocol.
Systems Programmer
Compuserve
January 1993-July 1993
Columbus, Ohio

Part of the Systems team. Designed and implemented a user library of the POSIX1003.4a draft 6 thread standard, for a 386/BSD system. It included a fully preemptible scheduler, wrapper functions for most blocking system calls, mutexes, condition variables, and a signal handler. Helped port and set up Kerberos for internal network security.
UNIX Consultant
Hewlett Packard-Apollo Division
Septembet 1991-January 1993
Chelmsford, Massachusetts

Ported the high speed networking system UltraNet to HP-UX. The first port required device drivers for an EISA to VME adapter to communicate with the UltraNet VME card. The second port was for a new UltraNet EISA card.
Software Engineer
N/Hance Systems
January 1991-April 1991
Dedham, Massachusetts

Worked on a WOFS a write once file system for SCSI optical disk drives running on SunOS. The file system integrated with SunOS through NFS.

Areas of Knowledge

Programming Languages
Over fifteen years work experience with C. Work experience with many different assembly languages, 80x86, 680x0, Mips, Sparc, PA RISC, and Alpha. Several years experience with C++. Some knowledge of Java, PERL, Tcl/Tk, and other scripting languages.

System Internals
Extensive experience with file system internals on such file systems as CFFS, NFS, WOFS and the VFS. Extensive experience with the internals of the C library, POSIX threads and DCE. Extensive experience implementing multithreaded systems, schedulers and locking. Significant device driver experience with SCSI, PCI, VME, EISA and RS232 devices. Significant experience with networked systems and protocols. Experience with Real Time OS and Embedded systems. Experience with the internals of TCP/IP.

Startups
Extensive experience with startup companies and am very familiar with the entire software engineering process of design, implementation, code review, testing, release, and support. Experience with system management and project management necessary for startups.