In this blog series, we’re highlighting some of the amazing individuals who contribute to Open Source software (OSS). We’ll delve into their contributions within OSS, their career journey, how OSS involvement has helped them, and their advice to others for getting involved.
Kevin is co-lead of both the Jakarta EE ™ Platform project and the MicroProfile ™ project at the Eclipse Foundation. His involvement with these projects started during the initial investigative phases and continues with all aspects of code and specification development – project committer, PMC member, Steering Committee member, and Specification Committee member.
Kevin’s day job is leading the architecture of Enterprise Java for the WebSphere product family at IBM. Outside of work, he enjoys the outdoors (camping, biking, hiking, skiing) and working on family construction projects.
Jakarta EE is the reincarnation of Java EE ™ in the open source world. Jakarta EE operates under an open governance model at the Eclipse Foundation. Many more organizations and individuals now contribute to the future of Java in the Enterprise via the Jakarta EE Working Group and associated Specification Projects.
MicroProfile was created to innovate Enterprise Java in a microservices environment. At the time, Java EE was stagnant and had not started its journey as Jakarta EE. A few key organizations collaborated to create MicroProfile at the Eclipse Foundation and it has continued to grow, establishing a working group earlier this year.
Due to my involvement with these two key working groups at the Foundation, I was elected as a Committer Representative to the Eclipse Foundation Board of Directors early in 2021. This participation has allowed me to meet with and participate with other leaders across the open-source industry.
Table of contents:
What encouraged you to get started with open source projects? How does working on an open-source community project like this compare to working on a proprietary project?
An IBM assignment was my first introduction to open source. Back in 2006, I was asked to lead the JPA (Java Persistence API) effort for WebSphere. This assignment required me to participate on the OpenJPA project at Apache. This was my first exposure to the open source environment. And, to be honest, I have never looked back. My "team" was no longer just IBMers. It consisted of extremely talented individuals from other companies and organizations. At first, I was nervous about "meeting the bar", but, I quickly learned that not any one person knows everything and that everyone makes mistakes. The open source community is there to help you grow in your career.
I find open-source development very enjoyable and very educational. Everyday I am working with top-notch talent across the industry. This not only keeps me on my toes, but it’s also so good to learn from this set of talented individuals.
Schedules are also a little more flexible in the open-source environment. We still set goals and deadlines. However, since this is an open-source effort, we are dependent on the time and resources available from any given organization. We still find ourselves working long hours at times, but it’s more because of our desire and commitment to completing the task rather than because an executive needs something for a customer presentation by Monday morning.
How has your experience working on open-source project affected or influenced your work at IBM?
I have learned how important the community is. When I am working with so many unique individuals and organizations across the spectrum for completing some task, you need to rely on a much bigger and varied community. Community members start to work with and educate other community members and, pretty soon, you start to get contributions from people you have never heard of before. The community just continues to grow and thrive.
How has your role changed since getting involved in open-source? What impact have you been able to have within IBM through your role/involvement?
Recently, because of my shift to a part-time FWLOA (Flexible Work Leave of Absence) schedule, my focus for my three days of work is on our open-source activities at the Eclipse Foundation. I have allocated my WebSphere product development responsibilities to other individuals. Being able to focus on open-source almost exclusively has really been beneficial to the success of my part-time schedule.
Previous to being elected as a Committer Rep on the Eclipse Foundation Board, I was the backup participant for Pradeep Balachandran (IBM’s rep on the Board). My involvement with both the Jakarta EE and MicroProfile efforts were key factors in being selected for this role. And, now being an actual member of the Board, I participate and vote on the Board’s decisions to help shape the future of the Eclipse Foundation. To me that is pretty cool!
Why is JakartaEE an important open source project? What does it offer? How did this project come about? How did it evolve from EE4J?
Java EE had an amazingly large customer base across the globe. Of course, WebSphere supported this programming model. But, so did several other companies — with either products or services in support of Java EE. Now that Java EE has completely migrated to Jakarta EE at Eclipse, we have even a larger responsibility to grow and cultivate this important programming model.
One of the big changes that was first introduced was the changing from the "javax" namespace to the "jakarta" namespace. Although this was a challenge for everyone involved, it was a necessary step to completely break away from the old "ball-and-chain" of Java EE processes and regulations. We are now able to introduce new innovative features (and possibly remove some "dead weight") to the Jakarta EE programming model. The plans for Jakarta EE 10 are really shaping up to demonstrate this new frontier.
As far as the relationship between EE4J and Jakarta EE… When Java EE was first contributed to the Eclipse Foundation, we needed a project name to use in our conversations to differentiate it from Java EE. We knew that project names with the "for Java" suffix were okay to use, so we just reversed the order of the Java EE name and came up with "EE for Java", which is abbreviated EE4J. The EE4J name is still used in some of our artifacts such as our github repository — https://github.com/eclipse-ee4j.
What is it like to create a specification for an open-source project like this? How does it differ from working on code?
Specifications can be tricky. We use the English language to describe the programming model capabilities. And, the language has to be very specific (must, should, may, …) to get the proper semantic meaning. But, code still plays a part in the Specification process. We need to codify the Specifications with the associated APIs. We also need to develop a set of Technology Compatibility Kit (TCK) tests, which are used to verify any potential Compatible Implementations. The combination of the Specification, API, TCK, and Compatible Implementation is key to the success of the Specification.
How did you become a project lead for JakartaEE? What is involved with being a project lead for an open source project like this?
A project lead for a Specification project is really not all that special. We have no more control or influence on the Specification content than any other committer or contributor to the project. To be clear, a Specification project lead is not a Specification lead, like in the old days with Java EE. A Specification project lead helps ensure that the open-source specification process is properly interpreted and followed. Each component Specification project lead also maintains communication with the Platform project to ensure that we have cohesive platform.
As a fan of enterprise Java and its related open source projects, why would you recommend this language for those seeking to build cloud-native enterprise applications?
Enterprise Java has a long history and it continues to evolve as our customers' needs evolve. Java is still near the top of programming languages in use today. And, with the introduction of MicroProfile and other new innovations in Jakarta EE, this whole environment continues to thrive. I have no hesitancy recommending the whole Java ecosystem for microservice and enterprise development efforts.
What tips would you give for someone who is interested in getting involved in open source? Any specific tips for the JakartaEE or MicroProfile communities?
Just start! Pick an area you have an interest in, whether it’s a specific technology like Servlet or MVC, or a specific skill like documentation or testing. There are so many different ways to contribute. All of the projects have mailing lists and/or GitHub repositories. Start exploring. Find some Issue that interests you and try contributing. Case in point: most of the images in our platform specification are in png format. These are extremely hard to maintain. A new contributor noticed that we were looking for svg format replacements for these images and they started to contribute replacement images. This person had an interest and skill that filled a void in our Platform team.
Now a fun question — What activities do you enjoy outside of work?
Just about anything that is "real" and not "abstract" like what we do at work everyday. I enjoy carpentry work. Recently, I helped with re-modeling the basement of my daughter’s home. This included everything from drawing up plans, getting permits, doing the plumbing, and doing the electrical. The drywall is up, so all that is left is the finish work. With their home being built in 1920, there are always projects to keep me busy.
My wife and I enjoy many activities together including camping, biking, and hiking. We are also avid (American) football fans. I’ve been a Vikings fan all my life and my wife is a diehard Packers fan, but we still get along — even after the game where the Vikings defense broke the Packers quarterback’s collarbone and ended his season (2017).
Another activity I am very involved with is the VITA (Volunteer Income Tax Assistance) tax program. This program helps low-income and elderly people in our area with completing their tax returns each year. I have learned so much about our community while assisting with this activity. And, I’ve learned much more about our tax laws than I really ever cared to… :-)
Thank you for the opportunity to share my thoughts about open-source development.
Getting started with Open Source
If this article has helped inspire you to get started contributing to open source, why not consider contributing to Open Liberty. It’s easy to get started: https://openliberty.io/contribute/