Microsoft and me: a winding journey from mainframes to Kubernetes
In case you missed the news, Kinvolk was acquired by Microsoft. As a result, after five years of startup life, today I start the next phase of my career as an employee of the largest software company in the world.
This is a good time to pause and take stock of the winding journey that brought me here — a journey that in many ways feels like it has come full circle, and through which I have learned some valuable lessons.
First, some ancient history
A long time ago, in a London suburb far far away, I started my first programming job at Data Connection Limited (DCL) during my gap year before university.
No, we didn’t use punch cards, but we were working on mainframe technology. Specifically, bringing mainframe networking to our customer’s strategic next generation operating system, called “OS/2”. The boot screen looked like this:
Yes, that customer was Microsoft. The technology went through several evolutions, first as DCA/Microsoft Communications Server, then SNA Server, and I believe is still being shipped today as Microsoft Host Integration Server.
“DCA/Microsoft Communications Server will provide an Application Program Interface and terminal emulation functions compatible with IBM’s Systems Network Architecture… A new Workgroup Services business unit at Microsoft will handle its server-based products — currently the SQL Server and Communications Server.” (Article from April 1989)
After university, I went back to DCL full time and my first project was working on some innovative conferencing technology that had just been invented by a small team of colleagues (including a young, super-smart engineer named Alex Pollitt). Back in those days, Internet connectivity was via dial-up modems, and our team did some truly incredible engineering to enable sharing of screens and even specific windows (including remote mouse/keyboard control) over low-bandwidth connections.
This was really exciting, cutting-edge stuff, and we got the attention of Microsoft. They were planning a major release of Windows, at that time known by the codename “Chicago”, and wanted to include this technology. That release became Windows 95 and our technology was bundled in Microsoft NetMeeting. I still remember the excitement of knowing that our software was being used across the world by millions of people.
The following year, I was assigned my first major project as an engineering manager, again on a project for Microsoft. The goal was to take the window sharing technology developed for NetMeeting to enable multi-user remote desktop access.
This time, I got to take my first proper business trip, to the Microsoft campus in Redmond. The product would eventually become Windows NT Terminal Server Edition (along with the RDP protocol) — although as we found out on that trip, Microsoft initially put my project on hold for a few months while they explored the option of using X Windows instead.
While it was disappointing at the time to lose this opportunity to lead a high-profile project for Microsoft, it resulted in my managing the development of our collaboration products for Unix platforms. Through that, I got to work closely with Sun, SGI, IBM and HP, as well as maintaining the relationship with the Microsoft NetMeeting team to ensure ongoing interoperability.
In retrospect, this was a much better learning opportunity as the role combined engineering, product management, customer management and business development — leading indirectly to my next move, to the San Francisco Bay Area.
To San Francisco, containers, and startups
Scroll forward a few years and I’m still at DCL —in the meantime renamed to Metaswitch. Now running the networking business unit, I again find myself working with Alex Pollitt, that smart young engineer from the NetMeeting days. This time, we are researching the exciting new field of software defined networking (SDN).
Realizing we need more networking industry experience, I hire the brilliant iconoclast Christopher Liljenstolpe, who doesn’t just refine the approaches we were pursuing but comes up with an entirely new approach to container networking. We release the first version in 2014 as the open source Project Calico.
It was soon clear to us that the container space was moving too fast, and our competitors were too well funded, for us to be able to have the kind of impact we knew was possible, within Metaswitch. As a result, with the support of the Metaswitch CEO and board, we raised $13 million of VC funding and founded a startup, Tigera, to bring Calico to the world (and build a business in the process).
Azure, Kubernetes, and Calico cats
Around this time, Microsoft launched their Azure Kubernetes Service (AKS), and I found myself back in Redmond again, this time talking with Saurya Das (AKS PM) and Aanand Ramachandran (Azure Networking PM) about how we could implement network policy in AKS.
After a successful joint development and product launch, it was really exciting to be invited to present our work at Microsoft Ignite 2018 in Orlando.
Saurya and Aanand may have been the key PMs, but the whole effort took a collaboration across a large cast of Microsoft folks including Madhan Arumugan, Gabe Monroy, Harish Sachidanandan, Sean McKenna, Lachie Evenson, Jason Hansen, Narayan Annamalai, Jack Francis, Nick Greising, & more. As you can see from this list, getting to this point took a lot of “joining the dots” across the Microsoft organization, getting to know many teams, and quite a few trips to Redmond. You could really start to see the impact of the “One Microsoft” culture introduced by Satya Nadella, as teams pulled together across the organization to make things happen.
But we weren’t done yet, because about this time, Microsoft was starting to look more seriously at enabling Kubernetes on Windows. Cue another project, this time adding support for Calico network policy to Windows Server. This later extended to include container networking as well and drove many small enhancements in the Windows Server networking stack.
As with the other times I’d engaged with Microsoft, while the technical aspects were interesting, what really made this project rewarding was the relationships I built with the folks in Redmond, including Mike Kostersitz, Jason Messer, Dinesh Kumar Govindasamy, Nick Wood, and Ravi Rao. While it was clear there were many competing pressures, all were incredibly supportive and collaborative (with the team at Tigera, and each other), again reinforcing my positive impression of the culture at Microsoft.
A move to Germany… but not away from Microsoft
After 19 years in the Bay Area, and five years in the world of containers, open source, and startups, we decided, as a family, that we really wanted to spend some time in Europe — and for me, it was time to move on from Tigera. So, in 2019, we moved back to Germany, and I joined the lovely volks at Kinvolk.
While this wasn’t the path I had envisaged when we founded Tigera, it was definitely the right step for me to take at that time, and again resulted in unexpected opportunities — the first of which was to work closely with Microsoft again!
The very week I joined, we announced our collaboration on Service Mesh Interface (SMI), working again with Lachie and Gabe.
Kinvolk’s relationship with Microsoft deepened through their sponsorship of our Cloud Native Rejekts conference, followed by a strategic agreement with the Azure business team (where I worked with the fantastic Guy Bowerman, Daniel Sol, and Catherine Zhang) to ensure smooth migration of CoreOS users to Flatcar Container Linux, and then the development of Flatcar Pro for the Azure Marketplace.
Furthering our partnership, we joined Microsoft Germany’s Cloud Native Accelerate program, through which I worked closely with Silja Weese and Benjamin Tokgöz — and even participated in my first German-language webinar, the Techwiese Cloud Native Club, hosted by the fabulous Robin-Manuel Thiel!
=SUM(ABOVE)
Looking back over the past 20+ years, it is incredible to me how much Microsoft has been a constant throughout my career, from my first programming job, to developing my MSc dissertation project using Visual C++, to collaborating on the latest cloud technologies, to, today, finally joining as an employee.
With this hindsight, I would pull out a couple of lessons, or themes.
First, everyone gets knocked off course from time to time. But I have found that today’s disappointment is often tomorrow’s opportunity. I guess it’s obvious that, while at the time it can be painful, adversity forces you to rethink objectives, and not just continue on the “easy” path.
Second, after years of building technology businesses, I appreciate now more than ever that what endures is not the technology, or the deals you win, but the relationships you build along the way. I have got to know so many truly wonderful people at Microsoft over the years, and I couldn’t be more excited to call them colleagues. I hope at least some of them think the same about me :-)
Epilogue
In an auspicious twist of fate, the company where I spent the first two decades of my career, Metaswitch, was also recently acquired by Microsoft — so as Kinvolk merges into Microsoft, I am joining hundreds of long-time friends.