Skills and Strengths
I have a wide variety of skills and experiences related to high-availability, software development, software tools, and system management. I am innovative and have substantial technical depth in many areas, typically becoming an expert in areas I work in. For example, I am generally regarded as a notable world-class expert in High-Availability (HA) systems.In addition, I have been influential in many organizations, affecting major product evolution far beyond my nominal job scope. I enjoy new challenges and come up to speed in new areas quickly. These characteristics combine to make me an exceptional and innovative problem solver. Additionally, I actively cultivate good working relationships with those I work with, and put priority on ensuring those around me are treated with dignity and respect. I am a good team leader and mentor, with extensive experience managing both in local teams and diverse global teams, with extensive experience managing both in local teams and diverse global teams, helping those around me to grow in their work, and helping the team work together. I am well-regarded as a verbal communicator and am an experienced and internationally-recognized and frequently-requested public speaker and panelist. I work to inspire those around me to their best work, providing a good example, vision, guidance and encouragement. I am privileged to say that some of my teams have achieved great things, sometimes against great odds.
Software Architecture and Development
Over time, I have programmed in many different programming languages and designed, implemented, planned for, or supported many different environments. I am fluent in and have written tens of thousands of lines in the following languages: C++, C, Perl, Python, HTML, UNIX shell, and FORTRAN, and am familiar with many others including Java. I have designed and written software for many different environments. I have written software for Linux, many versions of UNIX, MS-DOS, MVS, and custom operating systems. I have designed and written CGI-bin code for WWW servers, user interface software, compiler software, database access methods, kernel-level device drivers and filesystems, software development tools, network performance tools, system administration tools, brought up operating systems on new hardware, created kernel and user-level debugging tools, and many other kinds of software for diverse environments. I have an excellent understanding of computer hardware and systems, and am very comfortable working close to the hardware. I founded and was the leader of a well-regarded open source software development project for 10 years.
I have created systems, tools and procedures for administering software development environments for projects ranging from a few people to thousands of software developers. I am an expert in configuration control and software build tools.
I have managed, administered and designed procedures and/or tools for administration of a wide variety of platforms including Linux systems, DEC VAXes, Amdahl UTS machines, MIPS RS6000s, Suns, MS-Windows and Windows/NT, and Network Appliance file servers.
July 2008 to present:
IBM Senior Managing Consultant - PowerCare Availability Assessment. I evaluated a broad scope of customer hardware, software, processes, and procedures related to service availability, and delivered reports detailing how their current processes worked, and comparing their situation to best practices for availability on the IBM Power platform (AIX and Linux). Final reports were delivered to upper level management in the customer data center organizations.
October 2007 to June 2008:
IBM Industry Leadership Team - solution enablement. I was a member of a team which delivered $350 million impact in sales by delivering technology / industry-specific solutions. In this role I interacted with dozens of high-profile customers and IBM sales teams, creating new solutions and business opportunities surrounding business continuity and Linux - with an emphasis on customers in the public sector. Part of this role is to create trusted long-term relationships with customers to make IBM their preferred hardware vendor.
March 2001 to September 2007:
IBM Linux Technology Center - Open Source Software Development at IBM. I was a member of IBM's Linux Technology Center where I led IBM's Open Source High-Availability development efforts for Linux and lead the open source High-Availability Linux project. I gave many talks on the subject, some of which are listed in the Papers and Presentations section at the end. In addition to leading the Open Source effort in Linux-HA, I have helped IBM learn how make money from Linux-HA, including adding more support for IBM hardware and software. These efforts resulted in several significant IBM deployments of Linux-HA. In this capacity, I also founded the Open Cluster Framework Cluster Standards effort (now a part of the Free Standards Group). As part of this effort, I led a team of geographically dispersed members from several countries and time zones who created the most advanced open source HA package, surpassing most commercial HA packages.
February 2000 through Feb 2001: SuSE Labs - Open Source Software Development at SuSE Inc., / SuSE GmbH I was a member of SuSE Labs' open source software development team, where I led SuSE's Open Source High-Availability development efforts for Linux. As part of these responsibilities I lead the open source High-Availability Linux project, and am the principal author of the heartbeat High-Availability system, which is installed in tens of thousands of customer sites.
April 1994 through Feb 2000: Advanced Technology Planning and Prototyping at Bell Labs (Lucent Technologies) in Denver. I was a member of a computing strategy team whose focus is creating a strategy for deploying advanced computing technologies to make the R&D computing environment a competitive advantage to the corporation. I have concentrated on Linux, the World Wide Web, Java (and other Internet technologies), collaboration, information management, and storage management technologies, and also served as editor for our documents, all of which were authored on the web. As a part of this planning process, I prototyped and deployed a number of web applications. During this process, I acquired a great deal of experience in the WWW, CGI programming, and HTML. I was also an active and effective advocate for the use of Linux at Bell Labs. I founded and was a key developer and coordinator for the High-Availability Linux project. During the last half of 1998, I was loaned out to provide critical UNIX kernel expertise for a voice mail project. During this time, I redesigned a SCSI chip driver, and was instrumental in solving several hardware design problems associated with the project.
During this time I have also been a reviewer for the Bell Labs Technical Journal, and a campus recruiter.
May 1993 through April 1994: PC support at Bell Labs in Denver. I led an effort in creating and deploying a set of PC support technologies and procedures. I researched, documented and recommended solutions to problems with networking hangs, and desktop backups in a Microsoft Windows environment.
August 1992 through May 1993: UNIX Systems Development and Support at Bell Labs in Denver. I was designed and implemented a comprehensive automated data backup/restore system for our SUN/MIPS computing environment, with more than 600GB of disk and more than 12 million files. This project was successfully completed ahead of schedule.
September 1988 through July 1992: Multimedia Software Development at Bell Labs in Denver. I worked for the Definity AUDIX voice mail project as an architect, and designer/implementor of a new voice mail system based on a new hardware design and UNIX System V Release 4. I was responsible for architecting low-level (kernel portions of the system, and for designing and implementing three device drivers and a file system type, and was one of two people who ported UNIX System V Release 4 to our voice mail platform.
I was also responsible for inventing and implementing a C++ based data dictionary system for the complex database used by the AUDIX system. It dramatically shortened the interval required to design new data upgrade tools for each release.
I provided key input into the architecture and design of this new product, using my extensive UNIX expertise to help the project understand how best to use the SVR4 features to the advantage of the project. I also made use of this expertise in my design and delivery of the drivers and filesystem code, all of which were of high quality and delivered on time. Additionally, I made significant innovations in the kernel debugging environment which saved many staff-months of time for kernel developers, and proactively uncovered a broad class of memory overwrite problems.
I solved key problems for the project as a whole (especially quality and testing), and used my ability to quickly come up to speed in solving critical problems in many different areas.
June 1983 to September 1988: UNIX Systems Development and Support at Bell Labs in Denver. During this time, I served as a UNIX systems programmer for a large UNIX computation center serving over 1000 software developers. Over this time, I served as planner, software developer and troubleshooter for UNIX internals on many platforms. My most prominent single accomplishment was the inception, architecture, design and development of a front end (and driver software) for Amdahl's UTS version of UNIX. This front end was developed in about 1 staff year, and saved AT&T more than $25 million. This project was part of leading the effort to create a UNIX-based development environment using mainframes.
November 1979 - May 1983: Software Tools at Bell Telephone Labs in Naperville, Illinois. I joined my last major project at Naperville in November 1979. I was a chief architect/designer of a software development environment for the 5ESS family of electronic switching systems. Specifically, I was responsible for various portions of the planning, designing, and implementation of these UNIX-based support tools. This software development supported more than 400 software designers.
Elements of this environment included local area networking, source code management systems, project tracking systems, an integrated product (object file) construction mechanism, compilers, loaders, editors, etc. This also included (for about 1-1/2 years) coordination of the load building (integration) activities for the project. The environment was spread across various DEC and IBM platforms, all running UNIX. UNIX/370 was developed specifically to support this project, and I was a major participant in its acceptance testing.
My last assignment in Bell Labs in Naperville was as project leader for a tool project called capability build. This team consisted of two technical associates, a contract employee, one to three other members of technical staff, and myself. I was responsible for the planning and coordination for all aspects of this project, from obtaining requirements to testing the final product. This project turned out three timely, high quality releases under my direction, while significantly developing the technical skills of my less-experienced staff.
May 1978 - November 1979: DBMS Development at Bell Telephone Labs in Naperville, Illinois. My first major assignment at Bell Labs involved the design and implementation of a UNIX-based database management system for use with the 4ESS.
September 1977 - May 1978: Compiler Research at Oklahoma State University. I was a research associate performing research on compiler techniques under an NSF contract.
May - August 1977: Summer Intern at CONOCO Research and Development Division. I designed and implemented a stockroom checkout system using a Data General Nova minicomputer for CONOCO R&D in Ponca City, Oklahoma.
Relocation - I currently live in beautiful Colorado, and if possible, I would prefer not to relocate.
Education Master of Science in Computer Science received in May 1978 from Oklahoma State University. Grade Point Average 4.0/4.0. My thesis topic was Transformational Grammars: Their Applications and Implementation, which I completed in May of 1978. Sponsored by NSF Grant number NSF-MCS576-6090. This thesis was primarily concerned with the application of transformational grammar techniques to compiler construction problems. It included a working implementation using an LR(1) parser with a novel error correction/recovery scheme.
Abbreviated List of Papers, Presentations and Patents
12 March 2008, Linux-HA – “World-class High-Availability Software for Linux” presented at the Linux Foundation Japanese Linux Symposium in Tokyo, Japan
13 November 2007 Full-day Linux-HA tutorial at LISA2007 in Dallas, TX.
17 January 2007 Linux-HA (Heartbeat) Release 2 Introductory Tutorial at Linux.conf.au 2007
29 August 2006, Linux-HA full-day tutorial at LinuxKongress
04 October 2005 Program Committee for the 2005 High Availability and Performance Computing Workshop
Overview of Linux-HA Release 2. IBM High Availability 'Best Practices' Topical Conference IV at Toronto, Ontario. 10 Aug 2005
10 Aug 2005Linux-HA Release 2 – Providing World-Class High Availability Software for Linux (2), Alan Robertson, presented at the LinuxWorld Conference and Expo, San Francisco California ''Linux-HA Release 2 Hands-On workshop Alan Robertson and Dave Blaschke, presented at the LinuxWorld Conference and Expo, San Francisco California
21,23 Sep 2004. OSS High-Availability for pSeries Linux, IBM Linux and pSeries University - Las Vegas Nevada, and Munich, Germany.
21-24 Jan 2003. ''Emerging Standards: The Open Cluster Framework'', presented at the LinuxWorld Conference and Expo, New York City, New York,
26-29 June, 2002. PILS: A Generalized Plugin and Interface Loading System, Alan Robertson, presented at the Ottawa Linux Symposium, Ottawa, Canada,
October 16-18, 2000. ''Linux-HA Heartbeat Subystem: Storage Considerations'', Alan Robertson, presented at the 2nd Annual Linux Storage Management Workshop, Miami, Florida
Method and apparatus for detecting references to deallocated memory in a dynamic memory allocation system, Connors, Paul A. and Robertson Alan L. US Patent 5,559,980, Sept. 24, 1996.
A Relational Database System for Electronic Switching Systems, R. A. Medhekar, F. K. Ng, A. L. Robertson, S. M. Salchenberger, Proceedings of COMPSAC, Chicago, Illinois, November 1979.
MASSFORM - A Computer Program for the Assignment of Elemental Compositions to High Resolution Mass Spectral Data, A. L. Robertson and M. C. Hamming, Biomedical Mass Spectrometry, vol. 4 No. 7 (1977)
Some Grammars for ALGOL 68 Format Denotations, A. L. Robertson, G. E. Hedrick, and M. Goto, presented at the 5th International Conference on the Design and Implementation of Algorithmic Languages - May 1977
A Portable Compiler for an ALGOL 68 Subset, A. L. Robertson and G. E. Hedrick, presented at the 1975 International Conference on ALGOL 68 - June 10-12, 1975
I have interests, experience and training that are compatible with the following buzzwords: AUDIX, Active Content, Automated Backup/Restore, Automation, Backups, Browsers, C, C++, Collaboration, Compilers, Complexity, Configuration Management, CGI-bin, Customer Satisfaction, DBMS, Databases, Debugging, Desktop Publishing, e-mail, Electronic Messaging, Electronic Publishing, File Systems, Firewalls, Free Software, High-Availability, HTTP, HTML, HTML Tools, HotJava, International Development organizations, Internet, Internet Terminals,Java, Linux, Open Source Software, OSS, RAS, Metrics, Multimedia, Networking, OOP, Operating Systems, Patterns, Performance, Perl, PostScript, Portable Software, Problem Solving, Programming, Python, Shell programming, Source Control, Software Design, Software Construction, Software Integration, Software Tools, SVR4, System Performance, System Support, System Administration, TCP/IP, UNIX, Voice Processing, World Wide Web (WWW), Web Terminals, Web Servers.