
Greater Los Angeles Area

Greater Los Angeles Area
I have over twenty years of experience in operating systems, including more than ten in the Unix kernel. I've worked in Darwin/MacOSX, FreeBSD, Linux, BSD/OS, Unixware and many others. I'm a software engineer and I try to make that term mean something with respect to my work. I'm what Robert Glass refers to as a "practitioner." I use software engineering techniques to get the job done right and I try to avoid the catchphrase-of-the-year syndrome.
I want to remain both challenged by and interested in my work. I'm very interested in kernel-level problems, extending to networking, distributed systems, clustering and a number of other professional interests.
High availability, clustered and distributed systems, realtime design and implementation, storage virtualization.
Operating systems internals; realtime, clustering, distributed systems, SMP support, networking, file systems, memory management, scheduling, concurrency, file sharing, cache management, fine-grained locking, performance, scalability issues.
Unix kernels: MacOSX (Darwin) 10.4, BSD/OS, FreeBSD, Linux 2.4 and 2.6, NetBSD, Unixware, others.
(Public Company; 10,001 or more employees; GOOG; Internet industry)
March 2007 — Present (1 year 5 months)
Doing cool stuff at Google.
(Sole Proprietorship; Myself Only; Computer Software industry)
July 2000 — Present (8 years 1 month)
I work with and sell GPS-based computer timing devices.
(Privately Held; 51-200 employees; Computer Hardware industry)
December 2006 — March 2007 (4 months)
Design and develop software to support new compute and I/O backend device.
(Privately Held; 1001-5000 employees; Information Technology and Services industry)
March 2006 — November 2006 (9 months)
Contract-to-hire at Sparta, doing kernel work on DARPA Control Plane and other projects.
(Public Company; Computer Software industry)
November 2005 — March 2006 (5 months)
(Via acquisition.) Continued maintenance and enhancement of storage virtualization platform software.
(Computer Software industry)
February 2005 — November 2005 (10 months)
Maintenance and enhancement of storage virtualization platform software. Added synchronous mirroring support functions, other minor API extensions and improvements.
(Computer Software industry)
November 2003 — February 2005 (1 year 4 months)
Hired 11/2 to write a system of three Linux device drivers to support and control a system communicating over Myrinet and 100BaseTX networks for demonstration 12/2, succeeded despite extremely aggressive schedule. Wrote Linux 2.4/RTLinux realtime system to support network simulator. Implemented multilayer IPsec in Linux 2.6 from draft specification, successfully demonstrated to customer despite effort having been vastly underestimated. Later completely redesigned and reimplemented multilayer IPsec. Senior of two software engineers and one of only two kernel programmers.
(Public Company; Computer Software industry)
April 2001 — January 2003 (1 year 10 months)
Through Wind River's acquisition of the BSDi name and operating system. Continued work on BSD/OS started at BSDi, helped bring BSD/OS 5.0 to release.
(Computer Software industry)
August 2000 — April 2001 (9 months)
Primary and eventually sole member of a team to complete fine-grained locking/threading in BSD/OS kernel. Designed, implemented locking techniques for various parts of the kernel using existing primitives.
(Public Company; Computer Hardware industry)
1998 — 2000 (2 years)
(Via acquisition.) Continued cluster work from previous position.
(Public Company; Computer Software industry)
1996 — 1998 (2 years)
Helped port Locus SSI clustering technology to Unixware 2 and 7. Supported Cluster Membership Service (CLMS); implemented coherent state transition support to allow a reliable Membership API; added failure recovery and support of failure recovery of other key cluster services to CLMS; restructured CLMS for reliability and ease of maintenance; improved reliability and correctness. Began port of NSC to Linux. Work now publically available as part of the Cluster Initiative for Linux project and OpenSSI.
(Public Company; Computer Software industry)
August 1995 — August 1996 (1 year 1 month)
(Via acquisition.) Continued cluster work from previous position.
(Computer Software industry)
July 1994 — April 1995 (10 months)
Designed and implemented CLMS support of failure recovery of other key cluster services; eliminated single points of failure for key services and for CLMS. Fixed bugs in CLMS and other subsystems. Helped port Locus TNC technology to Unix SVR4.2ES/MP. Distributed PROCFS, the asynchronous I/O mechanism, the priority control mechanism (priocntl()), part of the signalling mechanism (sigsendset()), part of the generic /dev/tty device driver, FDFS and PROFS, using RPC mechanisms in an SMP environment and including recovery in the event of node failure. Worked on the distributed process mechanism, ported the file block token mechanism used to keep the offset and flags of the file structure coherent between processes running on separate nodes. Wrote initial design of the system startup mechanism. Added SMP support to existing single-processor code.
(Computer Software industry)
March 1993 — July 1994 (1 year 5 months)
Helped designed and write an AIX NFS-based caching file system involving complex interactions between various user- and kernel-level processes. Wrote fsck and logging functions, co-wrote a device driver and a file system import utility. Provided technical expertise and guidance to junior members of team. Instrumental in implementing software engineering methodology. Helped design a hierarchical storage system, subsequently abandoned.
(Public Company; 11-50 employees; Computer Software industry)
May 1987 — December 1991 (4 years 8 months)
Enhanced and maintained the file management subsystem of the CP-6 mainframe operating system.
Science fiction, kernel stuff, FreeBSD, high-resolution timing, NTP, music
IEEE, IEEE Computer Society, Usenix