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
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.
-