Reid Spencer Consulting

Consulting Services

I am currently providing and available for consulting and contract work. Please visit the Consulting page for details on the kinds of services I can provide and my availability.

Overview

I have been in the software industry continuously since 1981, at various companies from Vancouver, Canada to Tampa, Florida. I am currently located in the Seattle area.

Over the years, my experience has allowed me to develop expertise in backend server systems with expertise in Java, C++, object databases, and distributed systems. I've worked for companies in several industries including ISVs, telecommunications, airlines, utilities, and manufacturing. Through this experience, I've gained a keen insight into how businesses use software and have developed the ability to bridge the gap between business needs and technical feasibility.

In all my work, I am dedicated to quality and ensuring that the resulting software or services meets actual customer needs. I ensure ensure the timely delivery and high quality of my software or services. I am also a capable manager, technology mentor, entrepreneur, and visionary.

Current Interests

Business

I am interested in assisting companies to realize their business goals through the application of software technologies. My diverse experience as both an advanced technologist and a business executive have given me a unique perspective on how to make technology work for companies. I can bring my depth of experience in business processes and system performance optimization to arrive at an efficient and effective use of technology to satisfy business goals.

Technical

My recent work has focused on the following areas:

  • compiler development - developing cutting edge technology for both static and dynamic lnaguages (Linux, C++, LLVM, GCC, autoconf, Gnu Make, etc.)
  • application server performance optimization - assisting users of J2EE application servers to resolve bottlnecks and architectural deficiencies that allow the applications to run more efficiently (Java, J2EE, Mercury Diagnostics, WebLogic, WebSphere, Eclipse, Tomcat, Apache, etc.), and
  • LAMP web development - using the LAMP (Linux/Apache/MySql/PHP) tool suite as a foundation for building dynamic web sites. (TikiWiki, XOOPS, PHP, shell scripts, Perl, XML, XHTML, CSS, etc.)

I would like to continue working in these three areas but I am always open to new and interesting technologies. I am also very interested in the following areas:

  • distributed computing - using networking efficiently and permitting higher order architectures to be developed more rapidly (CORBA, SOA, Web Services, TCP/IP, XML).
  • object databases - providing effective ways to make object instantiations persistent either with a pure OODMBS or an ORDBMS (Oracle, SQL Server, ObjectStore, Versant, SQL).
  • performance optimization - I have solved some of the toughest performance problems around and I enjoy the pursuit of tracking down what makes a system slow down or become unscalable.
  • meta programming - having pioneered the concept of extensible programming (XPS), I continue to enjoy the areas of meta programming and domain engineering. I believe this will be the next evolutionary leap forward in software as it allows domain and task specific languages to be utilized for better clarity and expressiveness.

I wish to pursue these technical interests to solve real world problems that either enhance quality of life or increase corporate profits.

Open Source Projects

In addition to my consulting work, I also contribute to several open source projects:

  • LLVM - Low Level Virtual Machine (significant contributor).
  • HLVM - High Level Virtual Machine (founder)
  • XPS - eXtensible Programming System (founder