Special Strengths
"People Skills" management/interpersonal training, 1994
"Software Project Management" short course, 1998
VMware, Inc. (Dec 03 - current)
Senior/lead individual contributor and mentor to junior engineers working on the product now known as the VMware Infrastructure Client, since shortly after the release of VirtualCenter 1.0 (where the name was VirtualCenter client). This C# application is the primary UI for VirtualCenter and related Virtual Infrastructure systems. Since ESX version 3.0 it is also the primary client for direct management of individual ESX servers when VirtualCenter is not present.
Primarily responsible for the interfaces for virtual machine configuration, the most detailed and technical area of the product. Configuring virtual hardware settings has much of the complexity of configuring a physical server, although virtual machines are more malleable than physical hardware.
Also played a key role within the VI Client team, assisting the manager in tracking potential upcoming problems integrating disparate features, mentoring junior engineers, and interacting with technical marketing and product management to clarify the scope and details of requirements driving new features. Before the advent of a formal User Experience department within the company, performed most of the UI design work for the VM configuration area. Even with a User Experience staff, the highly technical aspects of this area require constant communication to clarify issues.
Filemaker, Inc. (WOS of Apple Computer) (Jul 02 - Dec 03)
Open-ended contract position. Aided debugging and finishing development on a new version of the Filemaker product, primarily helping with Windows and cross-platform drawing code.
AvantGo, Inc. (Aug 00 - Nov 01)
Participated in development of a new generation of the AvantGo trimodal (sync/surf/push) web client for handheld computing devices. Primarily worked on RIM's OS for the then-current-generation BlackBerry devices and on the PocketPC versions of WinCE, with some work on PalmOS and Symbian/EPOC.
This new version ofthe client was 90% cross-platform code, written entirely in C with object implementations compiled from the W3C dialect of IDL using in-house tools. This approach both maximized portability (not all anticipated platforms support C++) and allowed direct implementation of W3C DOM standard APIs. The RIM and EPOC platforms entailed a larger quantity of platform-specific code; the lack of dynamic linkage on RIM especially required some interesting workarounds.
My own contributions included both cross-platform utility classes built to optimize memory usage on all devices (including the "interesting" memory environments on Palm and RIM), and the design work necessary to fit the more advanced features of the client onto the relatively primitive RIM platform. In fact, some of this work involved writing standard C library functions, notably setjmp and longjmp implementations and a primitive exception-handling system, for that platform.
Did preliminary designs for similar work on the EPOC OS. Also provided some information to the marketing department, on technical requirements for 21CFR11 compliance in pharmaceutical applications built on AvantGo technology.
Scientific Software, Inc. (Nov 99 - Jun 00)
Participated both in maintenance of existing chromatography instrument control software and in development of a new intranet-based laboratory data archiving product. Designed and implemented an entire software-only license security system to replace existing protected-floppy and dongle systems. Participated in preliminary and prototype specification, design, and implementation for the data archiving product. Developed a replacement implementation for an instrument control module, replacing ISA architecture elements (user-entered, jumper-configured i/o port numbers) with PCI elements (PCI bus walking to find and configure the card) for the new PCI versions of the relevant interface cards.
Oceania, Inc. (Jun 96 - Oct 99)
Team leader for components group responsible for converting vertical application pieces into a saleable set of components. Rewrote the note editing OCX, led design and implementation of remaining component pieces. Provided technical feedback to UI design/usability testing group. Consulted with in-house users of component suite on integration of new components into the revised vertical application. Assisted the system architect, especially serving as a more available single point of contact for questions on system architecture and design.
Earlier, technical lead developer for the OCX component portion of a comprehensive electronic medical record system, also involved with UI design and system architecture. Provider of expertise and advice on technical and UI elements of C++ and Windows system design. Evangelist for techniques for reliable and easily-maintained code and designs, emphasizing object orientation and attention to maintainability during coding and debugging.
Radmedia, Inc. (Mar 96 - May 96)
Participated in final development and some cleanup of a crossplatform slideshow application originally written for Unix and relying heavily on the Galaxy crossplatform library.
Verity, Inc. (Jun 95 - Mar 96)
Provided key expertise in the design and implementation of a class library balanced between platform-blind and platform-specific elements to facilitate development of applications on multiple platforms (Windows, Macintosh, Motif) with "best of breed" user interfaces on each platform driving common implementation code. Participated in efforts to move the company from a chaotic development model into a more normal design, implementation, and quality assurance model, primarily by engineering leadership of a project according to those principles. Served as Windows and C++ "guru", assisting various development efforts and explaining language and OS features.
Berkeley Systems, Inc. (Jun 93 - Jun 95)
Technical Director Nov 94 - Jun 95
Managed the tools and libraries group, including senior QA staff working on
testing tools and engineering staff assigned to library work. Coordinated
maintenance and enhancement of the company's proprietary cross-platform
(Windows/Macintosh) class library, by engineers working for library-using
projects. Personally ported/modified the library to support 32-bit Windows
as a third target. Played a major role in specification and technical design
of the new After Dark for Windows 95 engine. Conducted several lectures in the
engineering department's informal series (known as "Schools for
Scandal"), especially bringing back knowledge and techniques from various
technical conferences.
Senior Software Engineer Jul 94 - Nov 94
Wrote documentation on the cross-platform class library, helped specify major
revsions of the library, trained new users including out-of-house contractors,
provided DTS for those contractors during their projects. Advised
non-screensaver project managers and leads on ways to apply the
library technology to their projects. Conducted a few sessions in the "Schools for Scandal".
Software Engineer Jun 93 - Jul 94
Wrote screensaver modules (including the flagship Bad Dog) using the
cross-platform class library as well as directly with the Windows API.
Ported a module written for the Macintosh to Windows.
Performed maintenance on the library. Helped specify a new generation After
Dark for Windows engine. Championed a documentation effort for the library,
and began the documentation writing myself.
Twin Dolphin Games, Inc. (May 92 - May 93)
Producer Oct 92 - May 93
Took over management of a major MS-Windows game project after previous manager
quit. Presented product concept to prospective publishing affiliates and the
press. Oversaw continuing development until the project was shelved just before
the company ceased operation. Began project design work, program design, and
initial code prototyping on a more modest game intended to ship only 4 months
after project start.
Senior Software Engineer Apr 92 - Oct 92
Participated in product design, led initial software system design, and later
performed much of the development work for a new, large-scale game product for
MS Windows 3.1. Evaluated tools for Windows and MS-DOS software development.
Origin Systems, Inc. (Jul 90 - Feb 92)
Modified and enhanced third-generation modified and poorly-documented code from existing MS DOS game products (Ultima VI and Savage Empire) to implement a different game (Martian Dreams). Redesigned and reimplemented several subsystems without documentation on their interfaces. Also contributed to the storyline and wrote significant portions of dialogue for Martian Dreams. On a second project (Ultima VII), designed and wrote the low-level combat system, as well as a Windows application for maintaining the databases for that system.
Cadnetix Corporation (Feb 86 - Jul 90)
Designed, wrote, and maintained applications and subsystems for electronic CAE software. Participated in object-oriented design of a new generation of CAD/CAE/CAM tools. Converted Metaware Pascal CAE software, written very platform-specifically to 80386 systems, to run on SPARC systems. Provided informal Macintosh support for Product Development department.
National Center for Atmospheric Research (Jun 84 - Jan 86)
(student assistant position, concurrent with CU-Boulder position)
Maintained, enhanced, and documented a system for graphic display of climate simulation output and satellite data. Wrote user documentation for that system in TeX. Advised other users on TeX.
University of Colorado, Boulder (Apr 84 - Jan 86)
(student assistant position, concurrent with NCAR position)
Provided front-line technical support for student, faculty, staff, and external users of University computing equipment. Answered questions, interpreted error messages, and gave advice, often via telephone. Performed light programming to support users (such as tape format conversions).
Bondar-Clegg, Inc. (Oct 79 - Aug 81)
(after school and summer position during high school)
Programmed and trained nontechnical users on data-entry and communication systems. Implemented modules to upload laboratory data to mainframes and perform statistical analysis on them. Designed and wrote a turnkey system to allow remote employees without computer knowledge to host a computer for laboratory report printing in their offices, including transmission checksums. All work was in Applesoft BASIC.