22 years at IBM

Looking back at my career so far, and what this could mean for what comes next…

when: August 2003 – June 2007
title: Associate Software Engineer
roles: Development, System Test, Level 3 Service
product: IBM MQ
then WebSphere MQ

I did a few different jobs across a few years – rotating through Development, Test, and Level 3 Service teams. I learned a lot, about middleware and the role of messaging in enterprise architectures, and more importantly about what software development at scale with high standards looks like.

when: June 2007 – August 2008
title: Software Engineer
role: Level 3 Service
product: IBM Business Automation Workflow
then WebSphere Process Server

Another Level 3 Service role, another chance to quickly understand and implement fixes in production enterprise software. But this time in a new product space (business process management), and on a new platform (z/OS mainframes).

when: August 2008 – June 2011
title: Software Engineer
team: IBM Research
then Emerging Technology Services

A client-facing role – helping clients to understand and adopt emerging technologies. My projects spanned a wide range of technology areas, including IoT and sensors, web 2.0 and social, mobile apps, and AI and ML. This was sometimes through presentations and workshops, but often through building demos and proofs-of-concept.

when: April 2011 – April 2012
title: Senior Software Engineer
role: Developer
product: IBM Watson
transitioning research project

In February 2011, the Watson research project was demonstrated on a US TV gameshow. For a year following this, the code was adopted by a small team of developers to take the research breakthrough, and commercialize it through working aspects like scalability, performance, security, and manageability.

when: April 2012 – December 2014
title: Senior Software Engineer
role: Developer
product: IBM Watson
then IBM Watson Group

The Watson platform derived from the Research breakthrough project was applied in large-scale projects in industries such as healthcare and financial services. I was responsible for the tooling used to develop and deliver the projects, with a focus on accuracy analysis for a large-scale complex machine learning system.

when: January 2015 – December 2016
title: Staff Software Engineer
role: Lead Developer
product: IBM watsonx
then IBM Watson Developer Cloud

The Watson strategy shifted from a small number of large-scale dedicated clusters used by AI/ML experts on long-term specific projects, to providing reusable cloud services for developers without an AI/ML background to quickly create diverse projects. I worked on the creation of several new multi-tenant AI cloud services and the developer tooling to access them.

when: January 2017 – December 2017
title: Staff Software Engineer
role: Lead Developer
product: IBM Event Endpoint Management
then Managed Event Streams

I worked on developing an idea for a new software offering (bringing the discipline of API management to event streaming protocols like MQ, MQTT, and Kafka) and prototyping the new technologies needed to enable it (leading to the creation of a first-of-a-kind Kafka-protocol aware Event Gateway).

when: January 2018 – July 2021
title: Staff Software Engineer
role: Technical Lead (2018-2020), Architect (2020-2021)
product: IBM Event Streams

Event Streams was Apache Kafka, with additional supporting components for running, managing, and monitoring it in Kubernetes clusters, and a focus on design and user experience.

when: January 2021 – July 2021
title: Staff Software Engineer
role: Architect
product: IBM Event Endpoint Management

We revived and released the “Managed Event Streams” prototype project that I’d worked on in 2017 (which we’d paused to build and launch Event Streams). This was a new type of product, enabling clients to use Kafka in new and different ways.

when: August 2021 – January 2023
title: Staff Software Engineer
role: Platform Engineer
team: IBM Client Engineering
then Technology Garage

I worked with our clients to rapidly prototype and validate solutions using IBM technologies. In addition to building a wide range of Minimum Viable Products (MVPs) solutions for UK companies in a variety of industries, I also learned how IBM brings products to market and approaches sales, which I’d not seen working in product development.

when: January 2023 – now (April 2026)
title: Principal Software Engineer
role: Chief Architect
product: IBM Event Automation

I returned to Kafka, taking technical responsibility for the Event Streams and Event Endpoint Management products that I’d worked on before, and adding Event Processing to the set. Event Processing is an event stream processing platform based on Apache Flink, together with a business-user-friendly low-code event stream processing authoring tool.

next?

And that brings us to now.

This isn’t meant to be a implied announcement that I have a plan for what comes next. (And I’ve written similar posts before in 2008, in 2013, and in 2021.)

But, I have been in my current role for a few years now, which my history suggests is a long time for me. It is a good time to reflect about what might come next.

I’d like to get back into AI/ML again – I miss my Watson days. Plus I watch more than a few AI projects today with frustration as they make many of the same mistakes that we made a decade or more ago.

I think there is more interesting work to do in the Kafka world – it’s not as widely adopted it could be. And Flink is only just getting started.

I’d like to go back to being more hands-on as a developer again – agentic coding tools are changing the game for the role of a technical leader. I’m excited about how this could improve the job of a “Chief Architect”.

But who knows what’s next? I’ve never been great at long-term career planning, and instead just looked for opportunities to build new things and solve new problems. Some of the most fun I’ve had came from jumping to something new outside of my comfort zone. ¯_(ツ)_/¯

Tags:

Leave a Reply