I’ve been in the computer business since 1968, when I went to the United Kingdom Atomic Energy Authority to spend a year between grammar school and university. I spent some time in various UK government agencies, did post-graduate work on OS command language design, and worked for start-up and established computer companies in the UK. In 1981 I moved to the USA, and after working for Raytheon Data Systems and a workstation start-up, I joined Sun Microsystems in 1985. I stayed at Sun until March, 2006, and a few months later I relocated to Seattle to work at Amazon.com. In June 2009 I moved from Amazon to Huawei Technologies, where worked on cloud computing (IaaS) for telco customers. After 14 months at Huawei (during which I racked up six trips to China) I was tempted away by Yahoo! to work in their Cloud Computing group. However organizational issues within Yahoo made it difficult to get traction, and in January 2012 I left and became an Entrepreneur-in-Residence and independent consultant.
Most of my technical work has involved programming languages, network protocol design, and distributed computing, especially computing at large scale. However I’m also interested in the issues of engineering culture, and how these affect distributed teams and software engineering methodologies.
Work at Cisco.
In December 2013 I joined the Cloud Services Group in Cisco. This role is new enough that I think I’ll wait for a few months before filling in any details. However it’s worth mentioning that this represents yet another switch between product development and service provider roles….
Work at Vyatta, a Brocade company.
Between January and December, 2013 I worked as a cloud computing architect for the Vyatta business unit of Brocade. I focussed on the integration of Brocade’s networking products – routers, switches, and load balancers, both physical and virtual – into OpenStack and other IaaS cloud environments.
During 2012, I acted as a consultant, advisor, and mentor to a number of established companies and startups. Some examples:
- A large enterprise building out a private IaaS cloud with stringent compliance requirements.
- A networking software company, carrying out a strategic pivot and successful re-launch.
- An application performance management startup, adapting their VMware-based technology to work in public and private clouds.
- A social media startup, needing to adapt their initial architecture to meet anticipated scale and availability requirements.
- A venture capital fund, seeking an independent check on the technical viability of a startup business plan.
EiR at USVP
In January 2012 I joined US Venture Partners as an Entrepreneur-in-Residence. This was planned to last a maximum of 12 months, and I wrapped it up in January, 2013.
Work at Yahoo!
In September 2010, I joined Yahoo! as Cloud Services Wrangler – effectively, the chief architect for the Cloud Services division of the Products organization. At Yahoo, I led an initiative to create an IaaS solution for Yahoo based on the OpenStack open source project. This cross-functional program reported to the corporate CTO, and involved teams from the Products and Operations organizations. The architecture brought together multiple systems traditionally handled by different teams across the company and around the world, including automated software deployment and service elasticity, network virtualization, hypervisor technology, infrastructure management, and cloud service APIs. Unfortunately the widely-publicised problems at Yahoo made it difficult to get traction, and at the beginning of 2012 I decided to leave.
Work at Huawei
Huawei is one of the world’s largest, and fastest growing, manufacturers of telecommunications equipment. In June 2009 I joined their US operations as part of the Core Networking division. At Huawei I was part of a distributed team, in Shenzhen, Xi’an, and Santa Clara, that was working to apply “cloud computing” technologies to the data centers which Huawei sells to its telco customers. The initial thrust was in the area of Infrastructure-as-a-Service, but the workloads of telcos and their customers provided great opportunities for techniques like PaaS containers.
Work at Amazon
I arrived at Amazon.com in August 2006. Initially I worked in Distributed Systems Engineering, the group responsible for much of the communications middleware (request-reply, pub-sub messaging, software load-balancing, and service discovery) and persistence (caching, specialized persistence solutions, etc.). In the spring of 2007 I moved across to the Website Platform team, where I had responsibility for the overall architecture of Amazon’s website technologies. As a Senior Principal Software Development Engineer, I was also involved in various company-wide initiatives. I left Amazon in March, 2009.
Work at Sun
I joined Sun Microsystems in August, 1985, as the first development engineer hired into the newly-formed East Coast Division. I was the architect of PC-NFS, and a software engineering manager on the innovative Sun386i workstation. Over the ensuing years, I worked mainly on Sun’s Network File System (NFS) technology, particularly the PC networking product line. I became a recognized authority on PC networking within the Internet community, and represented Sun in a variety of forums. From 1988 to 1990 I worked within X/Open to develop the X/Open standards for NFS, including “(PC)NFS” and “XNFS” (Unix NFS). I was one of the four authors of the Windows Sockets (“WinSock”) specification which led to the explosive growth of PC-based TCP/IP networking. As a result of this work, I received the Sun President’s Award.
I became a Sun Distinguished Engineer in January, 1992 – the first person outside California to be promoted to this position. At the time, I was involved in the multivendor effort to design NFS version 3. In 1995 I became Chief Technology Officer for Sun’s networking software products. In this capacity, I was the technical lead in a number of major strategic partnerships, and worked closely with companies such as Tivoli, Apple, and IBM. I was also involved in the definition of Sun’s systems and network management strategy.
In 1998 I moved into SunLabs, Sun’s advanced research group, where I established a team to investigate asynchronous software architectures such as multi-agent systems. As part of this work, I became a board member of FIPA, the Foundation for Intelligent Physical Agents, and I was active in the development of Java standards for agent software. After 9/11/2001, when my good friend and colleague Phil Rosenzweig was killed, I volunteered to contribute to Sun’s company-wide systems management program office. Much of this work evolved into the N1 initiative on network-centric systems architecture and automated management. During 2002-2003 I also devoted about 40% of my time to people management within the Labs.
In November, 2003 I decided that it was time to re-invent myself yet again (or else how could anyone work 18+ years in one place?). I left the Sun Labs organization to work for Rob Gingell, Sun’s Chief Engineer. After Rob departed, I worked for Greg Papadopoulos, Sun’s CTO. I was the technical lead for a team doing strategic technology planning, in collaboration with the Software and Network Storage divisions.
Starting in April 2005, I got involved in a number of M&A (merger and acquisition) activities. I worked with the engineering organizations of StorageTek, Storability, SeeBeyond, and Tarantella to integrate them into the engineering culture of Sun – and also to learn from them to enhance Sun’s engineering practices. In August 2005 I celebrated 20 years with Sun – who would have thought it?! And in March 2006 I was caught up in a large-scale Sun RIF (reduction in force).
Work before Sun
In chronological order, I worked or studied at the following places:
- UKAEA, Harwell, Oxfordshire (1968-1969), doing econometric modelling work
- University of Essex, Colchester (1969-1972), majoring in Computer Science
- Ministry of Technology, London (1970), mathematical modelling for the UK Treasury
- UKAEA, Harwell, Oxfordshire (1971), reactor control systems and programming tools
- University of London Computer Centre (1972-1973), systems programmer on CDC 6600 and 7600
- University of Newcastle on Tyne (1973-1976), post-graduate research into networking systems and operating system command languages
- Pentagram Software, Little Chalfont, Bucks, England (1976-1979), design and implementation of a complete DBMS, including its application language
- CMC, Hemel Hempstead, England (1979-1981), design and implementation of a distributed OS for a network of bit-sliced workstations
- Raytheon Data Systems, Norwood, Massachusetts (1981-1983), architect for a fault-tolerant network switch, then manager of PC software and director of advanced R&D
- Mosaic Technologies, Billerica, Massachusetts (1983-1985), networking software at a Sun-wannabe workstation start-up
A recent resume can be found here. [last updated May 8, 2013.]