Résumé of Reid Spencer
Mercer Island, WA 98040
(206) 579-4994 (mobile)
http://reidspencer.com/ rspencer@reidspencer.com
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 |
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.
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/.
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.
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
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
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.
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
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
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
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
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
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
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.
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.
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.
-