Tomorrow is my first day working for ServiceNow. It was a tough decision to leave IBM – and I know that I will certainly miss working with my former co-workers – but I think it was the right one for me.
While IBM has its share of faults, I remember my time there positively. Over the course of twenty years, I was part of the WebSphere customer integration and execution teams – in that role I traveled a lot and met many WebSphere Application Server customers. I learned a lot from that job – both technical and life skills.
The next stop in my IBM career was my first true development role: I worked on WebSphere’s serviceability mechanisms including the logging/tracing framework, first failure data capture (FFDC), and various tools to assist in problem determination. From there, I went on to work on the Enterprise JavaBeans (EJB) Container development team. We implemented EJB 3.1 – I participated in building the embeddable EJB Container as well as helping out with asynchronous session beans.
When the Server Runtime team lead left for another job inside IBM, I took over that team. This was my first team lead experience, and once again, I was learning a lot. I learned a lot about Java (and WAS) classloading as well as OSGi and Java server frameworks in general. We had a great team that really made it easy for a first-time team lead.
After serving in the team lead role for a while, I was “taxed” by the WebSphere eXtreme Scale (WXS) organization and worked on the cache team for IBM’s data grid team. That experience was less fun for me, but I still learned a lot – especially about data integrity, caching, performance, etc.
I moved back to the WebSphere organization after a few years in WXS – this time, I worked as part of the WebSphere Liberty kernel team and also was the lead developer for a not-so-well-known product called WebSphere Community Edition (CE) – basically an IBM-branded version of Apache Geronimo. Over the next few years, I would basically play a support role while CE slowly went out of service and a pure development role on the Liberty kernel at the same time. Once again, I got to learn more about server runtimes, OSGi, classloading, etc. – this time with a more streamlined and parallelized runtime.
IBM decided to centralize product development teams, and so the WebSphere organization made the decision to close the China and India development labs and bring the work they were doing to the UK and North America labs. One of the missions coming stateside was JAX-RS, and management asked me to lead that team. As part of the same centralization, the WXS mission moved to Canada and India, so my JAX-RS team was staffed by three of my former colleagues in WXS. I worked on JAX-RS for about 4 years – and like every role, I learned a lot. I learned more about how HTTP works, what makes a RESTful service, client side issues, server side issues, Server Sent Events, etc. During this time, our organization also open-sourced Liberty, so I got to learn about new tools like Git, Gradle, Maven, BND, etc. Eventually, I developed some expertise with JAX-RS and was asked to speak at various conferences around the world on the topic. I also got involved in the MicroProfile Rest Client project to build a type-safe client API for consuming RESTful services. Building on my REST experience, I also got involved with GraphQL, co-founding the MP GraphQL project and delivering the Open Liberty implementation of it.
While this work was very interesting to me, and I think that there is still more to do in that space, I was starting to get the “seven-year itch” and wanted to see what else was available. It also didn’t help that IBM was losing people, not backfilling them, but still expecting the same productivity. So after looking at the employment opportunities, I came across a recruiter from Proven Recruiting who introduced me to ServiceNow. I’d heard of ServiceNow but didn’t know much about them. In IBM we use SalesForce to handle our support cases – ServiceNow is basically a competitor to SalesForce. Since then, I’ve come to find out that various family members use ServiceNow in their organizations. So if nothing else, it should be easier to explain to my family what I do for a living.🙂
Near my last working day at IBM, I made the decision to send an email to my organization announcing my decision to leave. I’m so glad I did. I received a lot of replies wishing me well. I definitely worked with some talented and classy people. I definitely wish them – and IBM in general – the best.
Starting tomorrow, I’ll be working for ServiceNow. I’m really looking forward to learning a new platform and working with more talented and classy people (I got to meet a few of them already during the interview process!). Like any job, I expect that there will be some high points and low points, but I’m looking forward to this next adventure.