Résumé
W. Lee Duncan Home: 503-***-****
***** ** ******** ***. ****: 503-***-****
Hillsboro, OR 97123 ******.******@*****.***
SUMMARY
An enthusiastic performer with over 25 years experience in the Unix field who wants to find a great place to
work and grow, and who wants to make your company a success.
General experience includes:
o Expertise in low-level coding, but familiar with the entire software stack
o Experienced in architectures as well as a master coder
o Experience in SCSI, Fibre Channel, iSCSI, and OSD (with some InfiniBand)
o Expert in C, Python, and scripting, experience in C++, Java, XML
o Solaris, HP/UX, and Linux internals as well as extensive system- and user-level library and application
experience
o Experience with assembler/firmware/embedded systems and real-time considerations
o Device driver experience on CD-ROMs, Floppies, Disks, and Host Bus Adapters, as well as general I/O
subsystem design and maintenance
o Real Time OS experience, including QNX and POSIX Real Time extensions to Unix
o Extensive scripting experience, including several shells, Perl, Python, and PHP
o Embedded Linux storage experience
EXPERIENCE
Feb. 2009 – Present: VirtenSys, Inc. Being a small company, VirtenSys has given me the opportunity to work
in many areas, from low-level PCIe and RAID device driver code to using Python to talk to our Web Services
stack. Work here has included:
o Build Czar: wrote the scripts, own the process.
o RAID Development and support (resident RAID expert)
o Own low-level PCI code
o Own modifications to kernel drivers, when needed
o Added support for boot-from-virtual-RAID
o Script Guru – consult on or write many of our scripts (using Python if possible)
o Even wrote a Windows Python script for configuring servers
o GUI/Web Services layer support – I’m the backup person for this area
o Integration Engineer – There are two of us that integrate all the code, sanity check it, and triage any
problems found
Apr. 2008 – Dec. 2008: Wasabi Systems, Inc. Instrumental in the development of next-generation Object-based
Storage Device (OSD) Architecture, Design, and Implementation. Designed a Block-Storage layer, and then
designed and started implementing an object redundancy layer. The company was transitioning from being a
BSD-based consulting company to a Storage Appliance vendor.
Supported C version of a low-level program designed to talk to SCSI OSD Devices, working directly from SCSI
OSD Specification. Re-wrote the program in Python to make it easier to modify and support.
Nov. 2006 – Apr. 2008: HP/PolyServe (PolyServe was acquired by Hewlett Packard on 5/1/2007). Designed
and implemented low-level online cluster maintenance functionality based on high-level design from architect.
Worked closely with architect to implement, verify, and support this new functionality.
Redesigned a large Python configuration CGI script to be object-oriented then added several new pieces.
Dec. 2005 – Nov. 2006: Intel. Worked on next-generation Blade storage for Intel in Hillsboro, OR. Worked with
several vendors to implement various subsystems as well as planning for integration and testing. Helped
implement an application services layer in PHP using SOAP, CIM, and SNMP.
Mar. 2004 – Dec. 2005: Lefthand Networks, Sr. Software Engineer. Implemented an OEM project, putting
Lefthand’s software on a 3rd-party platform. Moved to the Data Path group, to support their generic SCSI layer
as well as work on the iSCSI code on top of the SCSI layer.
Supported and modified this generic SCSI layer. Work included designing and implementing SCSI-3 Persistent
Group Reservations, in addition to creating test programs that will verify correct behavior. Also implemented
support for iSNS in our iSCSI code.
Aug. 2002 – Mar. 2004: Pillar Data Systems
Oct. 2002 – Nov. 2004: Team Lead, Snapshot Team. Lead the Snapshot team in the Block Services group at
Pillar. Work here included:
o Helped design certain aspects of system supporting many rapid-use Snapshots (patent in progress)
o Leading team of 3 other engineers
o Created a tracing debug and logging system from scratch, and then created and implemented a
transition plan when a new tracing system was supplied
o Helped create a standard for coding and style, then implemented a nightly check of those standards
o Gatekeeper for our group, including creating/supporting our “Mojo” build script
Aug. 2002 – Oct. 2002: Senior Engineer, Block Services. Helped design and implement several sections of
Pillar’s Block Services subsystem, including Array Management (RAID 0 and 1), configuration, and Device
Management. I spent about a week as team lead in Device Management before reorganization moved that
responsibility to California.
Oct. 1993 – Aug. 2002: Sun Microsystems, Inc.
Apr. 1999 – Aug. 2002: Staff Engineer, SCSI & Target Drivers. Senior engineer and architect in Sun’s
Network Storage Division, working on the architecture of parallel SCSI target and Host Bus Adapter drivers
for Solaris. Work included:
o Rearchitecture and engineering support of the ISP/QLogic parallel SCSI device driver
o Hand-holding high-profile customers (including a major online auction house)
o Organizing the training of a new group of UNIX/SCSI/Solaris engineers
o Helping to define direction for major new projects, including driver merge and tape configuration
management
o Creating and managing an industry-leading project to protect user data end-to-end (2 patents filed)
o Internship on one of Sun’s major internal standards groups (PSARC)
Also worked during this time on SCSI Quality of Service, Device Driver Hardening and RAS, and followed
InfiniBand and iSCSI developing standards.
Dec. 1996 – Apr. 1999: Member of the Technical Staff, SCSI Fibre Channel Disk Group. Spent 3 years in
the Fibre Channel disk group creating a cutting-edge project using the emerging Fibre Channel standard and
created architecture that third party driver writers could use to supply hardware and software to Solaris for
Fibre Channel. Work here included:
o Project management and overall architecture design (within a team)
o Shepherding the project through Sun’s Architecture Review process
o Coding the “fcp” (Fibre Channel to SCSI) Upper Layer Protocol module
o Modification of interfaces for a user-level program to allow monitoring Fibre Channel disk boxes
o Membership on Sun’s internal change review team
Oct. 1993 – Dec. 1996: Member of the Technical Staff, OS Group. Worked in the area of user-removable
media management. Accomplishments here included:
o Reduced count of high-priority bugs from 125 to 40 in 6 months
o Created/modified several new user-level commands
o Received 3 patents on new features implemented or proposed
o Managed the group for 3 months (during a time of management transition)
o Presented papers at internal conferences
Aug. 1991 – Sep. 1993: Design Engineer, BNR, Inc. Member of a team at Bell Northern Research that tried to
bring Unix (HP/UX on 68000 “peripherals”) to BNR’s proprietary environment.
Work on this project included creating and implementing a TCP/IP server daemon to handle requests from user
processes, defining the interface between HP-UX and the proprietary OS, and creating a HP/UX device driver
that used this interface to satisfy I/O requests.
Nov. 1989 – Aug. 1991: Senior UNIX Consultant, Datronics, Inc. Contracted on two different projects while
consulting at Datronics. The first project was for GTE Government Systems, using low-level instrument bus
communications. The second project was for BNR (now Nortel) using expert systems.
Jul. 1988 – Oct. 1989: Senior Software Analyst, Data General, Inc. Worked in the Data Management group
and then in the DG/UX kernel group. In the database group, I worked on examining new hashing algorithms. My
kernel work centered on merging our stand-alone and multi-user disk format programs by making a memoryonly
bootable version of our kernel.
Jul. 1986 – Jul. 1988: Unix Consultant. Worked in various areas, including database design, UUCP
communications, and system administration.
Jul, 1985 – Jul. 1986: UNIX Analyst, AM Varityper, Inc. Worked as a system administrator, supporting about
50 engineers and another 50 production persons. Worked closely with the BSD UNIX sources for the DEC PDP-
11 (BSD 2.9).
Jul. 1983 – Aug. 1984: Software Engineer, Sonatech, Inc. Worked on a multi-process navigation application,
actually spending time at sea debugging the system. Promoted to lead designer after 3 months. Left to go to
graduate school.
Jan. 1981 – Jul. 1983: Development Engineer, Hewlett Packard, Inc. Worked as a test engineer, creating test
programs for HP’s custom calculator Integrated Circuits. Created a test program template and C test library used
by all other test engineers. Left to pursue a pure software career.
EDUCATION
Sep. 1984 – Jun. 1985 – MSCS work, Oregon State University. Concentration on Operating System internals
and Artificial Intelligence. Served as a teaching assistant and system administrator.
Sep. 1977 – Jun. 1981 – BSEE, Oregon State University. Graduated Cum Laude, with honors, concentrating
study on the application of microprocessors.
PATENTS
Sun Microsystems: Six patents awarded.
Wasabi Systems: One patent pending.
MILITARY EXPERIENCE
U. S. Navy, 3/73 - 3/77 -- Instruction on and repair of flight simulators. Honorably discharged.