Résumé of Reid Spencer 3059 70th Ave SE, Mercer Island, WA 98040 (206) 236-1199 (home) (206) 579-4994 (mobile) http://reidspencer.com/ rspencer@reidspencer.com Employment Summary During my career I have worked as an employee or independent contractor for several companies. Below is a summary of the positions I’ve held since entering the work force in 1981. Company Position /Title Location Dates Oracle Database Project Independent Contractor Mercer Island, WA 02/2006 – 04/2006 Mercury Interactive Corp. Chief Performance Consultant Mtn. View, CA 11/2002 – 12/2005 Performant, Inc. Chief Product Strategist Bellevue, WA 07/2000 – 10/2002 Concero, Inc. Chief Technologist Bellevue, WA 08/1997 – 07/2000 Technical Resource Connection, Inc. Architect & Project Manager Tampa, FL 07/1996 – 07/1997 Boeing, CAIL, McCaw, ODI, NNG, EBT Independent Contractor Seattle, WA 01/1992 – 01/1998 Teknekron Comm. Systems, Inc. Senior Software Engineer Bellevue, WA 06/1990 – 01/1992 MPR TelTech, Inc. Senior Software Engineer Burnaby, BC 07/1989 – 06/1990 SoftQuad, Inc. Senior Software Engineer Surrey, BC 10/1986 – 06/1989 Versatron Technology, Inc. Software Engineer Burnaby, BC 01/1986 – 08/1986 Unitek Technologies Corp. Software Engineer Surrey, BC 02/1985 – 12/1985 U.B.C, Environment Canada Independent Contractor Vancouver, BC 05/1981 – 12/1984 Technical Skills I am skilled in many areas of software technology and through all phases of the software development life-cycle (requirements analysis through production roll-out). I have a dedication to producing high-quality, efficient, self-documenting software and possess excellent technical writing, presentation, and communication skills. At various times, I have been an expert in the following technical areas: Programming: C++, C, Objective-C, Java, Perl, awk, sed, OMG IDL, Unix Shells (sh, bash, csh, ksh) Markup Languages: XML, XML Schema, XSLT, Xpath, SGML, HTML Software Design: OOA, OOD, OOP, Compilers & Parsers, Distributed Object Systems, CORBA Software Methods: Pattern Oriented Software Architecture, Extreme Programming, Domain Engineering, RUP, CRC Operating Systems: Linux, Solaris, SunOS, Other POSIX, Windows 2000 Development Tools: GNU Tools (GCC, GDB, autoconf, automake, make, etc.), Apache HTTPD, Apache Xerces-C, Apache Xalan, ACE/TAO, Visibroker, CVS, ClearCase, ODI ObjectStore, Oracle I have also used and am competent with the following technologies: Programming: Object-Pascal, Pascal, Ada, TCL, Lisp, Eiffel, Prolog, Assembler, Visual Basic Databases: Sybase, MS Access, SQL Server Development Tools: Rational Rose, Requisite Pro, ClearQuest, MS Visual Studio, Sun Visual Workshop, MQ/Series, BEA WebLogic Server, ATG Dynamo, Tuxedo, UML, Load Tools: Mercury Load Runner, Mercury Diagnostics, Performant OptiBench, Rational Robot Authoring: Open Office, Microsoft Office/Outlook/Visio, Adobe Framemaker /Acrobat/Photoshop, Macromedia Dreamweaver, Netscape Composer, JASC PaintShop Pro,vi, emacs, etc. Open Source Projects I am active in open source software development projects in the areas of virtual machines, distributed computing, extensible programming, and web technologies. I am the principal or a significant contributor to the following projects: eXtensible Programming System (XPS), http://x-p-s.org/. I founded this project which aims to implement a domain specific language based on XML. Low Level Virtual Machine (LLVM), http://llvm.org/. I am the second largest contributor to this project, implementing several key components, the build system, and many enhancements and bug fixes. High Level Virtual Machine (HLVM), http://hlvm.org/. I founded this project recently to implement the higher level virtual machine functions that LLVM will not provide. The goal is to create a platform for the interoperability of multiple dynamic programming languages. XPS will use this as its foundation. Additionally, I have made less significant contributions such as testing and filing bug reports to the following projects: GNU Compiler Collection (GCC), http://gcc.gnu.org/; Linux 2.4 Kernel, http://www.kernel.org; PHP, http://php.net/. Career Highlights I have been fortunate to work on many different projects through my career, which has provided experience in a variety of fields. This section highlights my accomplishments over the years. 2/2006 – 4/2006: Oracle Diagnostics Project, Independent Contractor Mercury Interactive hired me for a short project to research and implement a diagnostic probe for Oracle 10g that would fit in with their existing Diagnostics platform. Reference: Erez Barak, Product Manager 5/2003 – 12/2005: Mercury Interactive Corp., Chief Performance Consultant Working with the Active Test group, I was hired by Mercury to assist in the delivery of products and services to the J2EE Application Server diagnostics market. My previous work with Performant, Inc. (acquired by Mercury) gave me key insights into the delivery process and allowed me to kick start Mercury's diagnostic services in the field. I was able to assist in the generation of several millions in product and service revenue for Mercury by successfully introducing the diagnostic technologies to SAP, eLoan, Bank of America, Metavante, CitiBank, FDA, and many others. Reference: Eyal Friedman, Director & Ashutosh Tiwary, Director 07/2000 – 10/2002: Performant, Inc., Chief Product Strategist I joined Performant, a technology startup, as the fifth employee after assisting the founders for two years with the business plans. In this executive position, I defined and specified the product (OptiBench), developed test plans, ran the beta test program, and assisted Performant’s first customers with their use of OptiBench. Being a startup, I was also tasked with: completing a detailed competitive analysis of the Application Performance Management market segment; performing market research; surveying potential customers and conducting a focus group; producing Performant’s logo, web site, and initial marketing collateral, hiring strategic personnel (VP of Product Development, VP of Professional Services, key software engineers, the QA Manager, the office manager, and a product manager); gathering feedback from customers; developing portions of the OptiBench product including the installation and user guides, the demonstration application (e-Bank), and various analytical tools for processing OptiBench data (written in SAS and MS Excel). Reference: Ashutosh Tiwary, CTO & Founder. 08/1997 – 07/2000: Concero, Inc. (neè PSW Technologies), Chief Technologist I was employed at Concero, Inc. as a Chief Technologist. This is the highest technical position Concero offers but also involves significant business and managerial skill. At Concero I worked on the following projects: Cobalt Group (6/00 to 9/00). In this short assignment, I helped the Cobalt Group (a web services provider to the automotive industry) re-architect their web applications from CGI/Perl to J2EE. This approach allowed them to have a maintainable software base and to improve their business processes to eliminate inefficiencies. Reference: Rajan Krishnamurty, CTO. Wireless Strategy (4/00 – 6/00). In this short assignment, I lead and defined the strategy for Concero’s wireless practice. I gathered market research, identified key technologies, defined the client services offerings, mentored technical staff, and built support for the practice internallly. Reference: Wayne Preston, Seattle Sales Director Christianity.com (2/00 – 4/00). I briefly acted as the chief architect for this project, which aimed to build the premier online community for all Christian faiths. My role was to assess the current state of the project, define project risks and mitigation strategies, introduce and enforce a strong project method (RUP), lead the requirements and domain analysis team, and provide technical leadership in all areas. Reference: Chuck Schneider, Director of West Coast Business Development AT&T Wireless Services (2/98 – 2/00). As the lead architect for the AWS CORBA Infrastructure I accomplished the following: wrote a “vision” paper that set the common ideal for the CORBA infrastructure across all application domains; provided consulting and mentorship in all CORBA related standards and technologies; developed web-based training, background, and instructional tools for AT&T staff; compared the interoperability of three ORBs (Orbix, VisiBroker, OAK) and made recommendations based on the results; integrated three languages and two ORBs using CORBA technologies; assisted with the definition of a comprehensive set of infrastructure services and frameworks to support development and production rollout of the first application (NBO) based on the infrastructure; managed a team of 2-3 software engineers in production of the frame works & services; introduced a comprehensive application management tool and provided for its configuration; provided automated IDL to HTML documentation translation; and assisted with the definition of the IDL interfaces for the entire AWS Business Object Model. Reference: Hide Horiuchi, Manager Customer System's Architecture LCI (11/97 – 2/98). I was the lead architect of a team of three that provided an architectural migration assessment. LCI was considering the benefits of a multi-tier CORBA based architecture instead of their then current 2-tier PowerBuilder architecture. The resulting report captured the existing architecture, the target future architecture and the steps necessary to migrate from the existing to the future architecture. The project spawned 12 proposals to LCI of which eight were accepted. Reference: Terry White, Architect 07/1996 – 07/1997: Technical Resource Connection, Architect & Project Manager As a senior infrastructure architect and project manager for TRC, I was selected to lead the Swiss Bank Indigo Event Messaging System (IEMS). This project produced a global, distributed, fault-tolerant, CORBA compliant, event messaging system that was used as part of Swiss Bank’s internal infrastructure and as a development tool for their financial applications. I wrote over 200 pages of documentation for the requirements, design, and development plans for IEMS, which resulted in TRC being awarded the $1.75 million development contract. I managed a team of five engineers to complete phases, 0, 1A, and 1B of the project on time and under budget. We created a state-of-the-art cross-platform development environment based on ClearCase, MS VC++, Sun Workshop Pro, and Purify. Reference: Robert Sturgis, VP Financial Markets 01/1992 – 01/1998: Multiple Companies, Independent Consultant During this period, I was an independent consultant working for a variety of companies but mostly focusing on my expertise in object-oriented databases. Below is a summary of the projects I worked on: Electronic Book Technologies, Portland, OR (1/96 – 11/96). I provided performance tuning and other consulting services to EBT. This company is a leader in SGML and HTML management systems for electronic books. I provided expert assistance with their ObjectStore database to accomplish the following: re-wrote the fundamental collection classes to achieve a 35% performance gain by using C++ templates and making them “ObjectStore aware.”; profiled critical operations in the software and recommended or implemented changes (the largest single improvement was the index query performance with a 90% improvement); designed, implemented and tested a set of C++ classes that encapsulate the TCL C functions for testing with support for multi-threading, multiple concurrent interactive TCL interpreters, mutex locked I/O separation, etc.; provided leadership and consulting on ClearCase, ObjectStore, OO programming, OO design, etc.; recommended architectural changes to the software to support better collaborative work. All software at EBT was written in C++ and ported to multiple platforms including Windows/NT, Windows/95, Solaris 2.5, and SGI IRIX 6.0. Reference: Graham Ross, Project Manager Northwest Natural Gas, Portland, OR (10/94 – 11/96). I provided object database design and implementation services for the IBM/NNG Customer Information System. I accomplished the following on this project: designed, coded, and tested a highly optimized B-Tree index that minimized network traffic over 56Kbit lines and provided queries over millions of keys in under 50 milli-seconds; optimized the performance of the NNG CIS database schema; re-implemented the “Phase 0” C++ software to use principles of object-orientation (encapsulation, polymorphism, inheritance, etc.); mentored other developers on the project in OO programming; recommended object technology product selections to IBM/NNG; re-designed and rewrote the development environment for integration with ClearCase and to better support building, installing and distributing the software. Reference: Guy Morgante, West Coast Sales Director, ODI McCaw Cellular, Kirkland, WA (12/93 – 9/94). I worked on the Axys 2.0 customer information project where I accomplished the following: designed and implemented "Yet Another Modeling Language" (YAML, a design/modeling/specification language), its parser, compiler and C++/SQL code generator; ported the RogueWave tools.h++ software library for use on three platforms (NEXTSTEP, HPUX and Ultrix); designed and implemented various foundation components of the software architecture including a C++ exception handling mechanism, various abstract base classes, utility classes for handling simple numeric types (time, money, etc.); acted as an object technology mentor for C++ programmers and provided suggestions for development process definition and software engineering techniques; investigated and benchmarked five Object-Oriented Databases (ObjectStore, Versant, Ontos, Objectivity, and UniSQL). Reference: Hide Horiuchi, Project Manager Object Design, Inc., Framingham, MA (11/92 – 4/95). This project provided an impartial comparison of two object-oriented database management systems (Versant and ObjectStore). The evaluation resulted in a 71-page report that defined the important differences between the products. I presented the report in January 1993 at ODI's annual meeting to an audience of 150. In 1993, I provided an in depth comparison of ObjectStore with Objectivity. In 1995, I updated my Versant/ObjectStore report with a focus on the Telecommunications industry. Reference: Bill Blundon, VP Marketing Boeing Commercial Airplanes Group, Inc., Seattle, WA (5/92 – 11/93). On this project, I helped BCAG re-engineer its electrical engineering business processes. I lead a small team to develop the Business Process Modeler, a NeXT application written in Objective-C and based on semantic networks. Reference: Pat Riedl, Project Manager Canadian Airlines Int., Vancouver, BC (1/92 – 7/92). CAIL engaged me to design and implement an object-oriented prototype for a multi-media courseware management system for flight and maintenance training systems. The work included the use of the Objectstore ODBMS, C++, Windows 3.1 and Novell Netware to provide a multimedia management system in a client-server environment. Although promising, Canadian Airlines canceled the project because of lack of funds. Several of the original ideas developed later became part of the Icon Author and Authorware products. Reference: Jean-Pierre Deshaies, Manager CBT Systems 06/1990 – 01/1992: Teknekron Communication Systems, Senior Software Engineer My position with TCSI involved the specification, design, development and testing of OSI NM/Forum compliant network management systems. The work required close involvement with TCSI clients to produce object-oriented systems that control large networks of telephone and digital switching equipment. I developed and demonstrated the user interface prototype for the Netherlands PTT SS7 Network Management System resulting in a $50M contract being awarded to TCSI & AT&T. I was also a technical leader for the US Sprint InSite project, did a performance analysis study for the British Telecom Concert system, and wrote several software engineering guides for TCSI. Reference: Rick Baugh, General Manager, Bellevue Office 07/1989 – 06/1990: MPR TelTech, Inc, Senior Software Engineer I was responsible for designing and integrating an X.51 sub-rate channel management package into an existing T1 network management system. Additional duties involved writing coding standards for the C++ language, researching the use of SQL relational databases (Ingres, Sybase) as a persistent storage for objects, and maintaining and documenting a T1 network management system. Reference: George Myers, Project Manager 10/1986 – 06/1989: SoftQuad, Inc., Senior Software Engineer My responsibilities in this position were to work as a team member in the development of a Macintosh desktop publishing application based on SGML (Standard Generalized Markup Language, ISO 8879). The product was developed on a Macintosh Plus using the Macintosh Programmer's Workshop (MPW), Object Pascal, Object Assembler, C, and MacApp (Macintosh Application Framework). The core SGML processing software (C++) I designed in 1988 is still being used in SoftQuad’s XMetaL 3.0 product. I designed and implemented all SGML representation classes and persistent storage; was responsible for all methods pertaining to editing and general application management; acted as the integration, build and configuration manager; and wrote software specifications, verifications, tests and documentation. Reference: Peter Sharpe, Project Specialist 01/1986 – 08/1986: Versatron Technology, Inc., Software Engineer In this position, I was responsible for all software development at VTI. The projects included the following: production of embedded real-time software for a "double-feed" detector for Pacific Press (written in MC6801 Assembler); production of data presentation and analysis software for a Vehicle Monitoring System (written in "C" for the Macintosh with an interface to VersaDOS); production of radio modem software based on the Motorola MDI 7031 Mobile Data Terminal (found in taxi-cabs, written in C and Z-80 Assembler on a VAX Ultrix);and, production of various system development tools for VME/10 (VersaDOS) and Unix Systems. Reference: Barry Rowlands, Motorola Western Canada Technical Rep. 05/1981 – 12/1985: Various Technical Positions During this period I held various positions, including: Thesis typist for graduate students at UBC; Research Assistant for the Psychology, Soil Sciences, and Social Work Departments at UBC; Stikine River Project for Environment Canada; Software Engineer for Unitek Technologies, Inc. Education I have completed two years in a Bachelor of Science Program, majoring in Computer Science, at the University of British Columbia in 1982. Since leaving college, I have also continued my education with the following training courses. Year Course Description 1986 Dale Carnegie Course Human Relations & Public Speaking 1989 Data Communications I & II 1 week course in Data Communications 1990 OO Methodology A workshop in Object-Oriented Analysis & Design from Parc Place Systems 1991 Expert Hiring Teams An intensive short course on hiring and interviewing. 1992 Versant OODBMS Vendor supplied training of the Versant OODBMS 1992 ObjectStore Advanced Vendor supplied advanced training of ObjectStore. 1993 Objectivity Vendor supplied training of the Objectivity OODBMS 1993 Pro Kappa Vendor supplied training of an expert system shell. 1994 ObjectStore Performance Vendor supplied performance tuning training for ObjectStore 1995 ISIS & X/Shell Vendor supplied introductory training to these products. 1999 Management Training Concero Training on meetings, hiring, policies, etc. I have educated myself in a variety of other subjects, including: project management, business process re-engineering, distributed transaction processing, distributed object-oriented technology, network management and ISO standards, compiler and language design, operating system theory, software engineering techniques, software quality assurance, technical documentation, algorithmic design, multimedia, web technologies, etc.