Christopher Angelo Provenzano:Resume Christopher Angelo Provenzano
Somerville MA 02144 Home Phone: 617-***-****
Email: ******@******.***
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.