On 2nd August, I handed back my IBM badge, just shy of twenty years after I first joined the company. I’ll come back to the ‘why?’ and ‘where next?’ questions and start with a recap of those intervening years (with apologies for the consequent length of this post!).
I started at IBM Hursley on 6th October 1998, fresh out of university with a degree in Engineering and Computer Science. I was a month late for the beginning of the graduate programme having taken some time out to travel across Canada by Greyhound coach! I began working on IBM’s C++ CORBA offering (Component Broker) with a brief spell in test before switching to development in the transactions team. (Remember when ‘test’ and ‘development’ were two different teams?) Many of my colleagues in that team (too many to name but they should know who they are) formed the basis of a network that would define the shape of my future career. (My Component Broker mug is still going strong but I’m afraid I ditched the set of foils describing the product that I found when clearing out my desk!)
At university I’d used, the then nascent, Java in a couple of projects and those skills were to become of use as we started to add a Java client. Before long, the focus switched to the newly-defined J2EE specifications and WebSphere Application Server was born. After working on the JTA and Activity Session implementations, I joined a team looking at integration with MQ. When the time came to implement an embedded JMS provider in WebSphere Application Server V6, it was natural I should move to work on that.
Six years in, I was starting to make architectural decisions but desired a better understanding of how customers were actually using our products. When the opportunity came up to work as a software consultant in IBM Software Services for WebSphere (aka Lab Services), I jumped at the chance. The next few years were spent travelling across Europe, doing everything from performance bake-offs, resolving critical situations, to participating in first-of-a-kind projects. I particularly enjoyed this time, learning to survive on your wits on those occasions when it wasn’t possible to draw on that all important network. This was also the period during which this blog began.
On returning from a short-term assignment to Norway a, by now one-year old, daughter meant it was time to get my feet back under a development desk. Having worked with customers on WebSphere ESB, it was natural to join that team. From there, I had the pleasure of building and leading a new development team to take over what was to become WebSphere Appliance Management Center. We had great fun, rewriting the offering to build on the new WebSphere Liberty Profile with a shiny new JavaScript front-end (thankfully IBM later moved on from Dojo though) in what I still think was one of the most passable efforts at agile I’ve seen in IBM.
Eventually, the team were moved to work on IBM API Management. The eight-hour time zone difference to the half of the team in California didn’t work for me and, after a nine-year break, I rejoined the WebSphere Application Server family. Initially, I was working on the open source Cloud Foundry buildpack. A side project relating to Netflix OSS was the start of an interest in microservices. From there, I lead efforts relating to containerization, including the publication of official images on Docker Hub.
This, in turn, led to Microservice Builder: a platform for developing, building and deploying, cloud-native applications on Kubernetes. This was then rolled into an offering called Microclimate which added a greater emphasis on the developer experience and that brings us to the current day.
So why, after so many years working with such great people on such a variety of interesting projects, am I now set to leave? Sure, there have been frustrations in working for IBM, but I’m sure many of those are common to all large, shareholder-owned, multi-national companies. As an example, take the laying down of corporate instructions that mandate that all 380,000 employees be treated in some particular way that cannot possibly be equally applicable to all. Thankfully I’ve been blessed with managers who have all excelled in the flexible interpretation of those rules. Many of those same managers are helping to revive Hursley as the vibrant technical community that I first joined.
Really, my departure just boils down to wanting to experience working for a different company. I’ve often said that IBM is the best employer within a two-mile radius of my house and I’ve set a lot of store by that convenience. My LinkedIn profile has been ‘open to offers’ for a few years now but I’ve been resistant to the lure of London money/startups or the peripatetic life of the solution architect. In this case though, I was offered the opportunity to work from home, not as the lone outcast, but for a company that is almost entirely distributed. It was also an opportunity that would utilize the skills around the cloud and DevOps (in particular Kubernetes and Jenkins) that I’ve garnered over the past few years. Such is the overlap that I even credited one of my technical interviewers in a presentation I gave earlier this year when citing their work!
So, without further ado, from 28 August I will be a Senior Sofware Engineer at CloudBees where I’ll be joining the architecture team for their core (Jenkins) offering. At eight-years-old, the company is very much a late-stage venture but, with the distribution list for my leaving email at IBM having more people on it than there are in the entire company, it will be quite a different prospect to working at IBM. Much more than that, I can’t tell you because, quite frankly, I don’t know, but I’m looking forward to new colleagues and challenges. Stay tuned to this blog to find out what happens next!