Meet our open-source champions: Kathryn Kodama, Developer Experience Champion
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.
Introduction:
Kathryn is a software developer on the Open Liberty Developer Experience team at IBM Canada. She has contributed to a number of open-source projects within the MicroProfile ™ and Jakarta EE ™ community, such as the Language Server for MicroProfile (Eclipse LSP4MP), the Language Server for Jakarta EE (Eclipse LSP4Jakarta), and the MicroProfile Starter for Visual Studio Code (VS Code). Kathryn has also contributed to the development of dev mode for OpenLiberty, and corresponding editor plugins.
Tech introduction:
Recently, Kathryn has been working on and contributing to the following projects:
Open Liberty Dev Mode is a hot deployment tool that is made available as a goal of the Liberty Maven plug-in or as a task of the Liberty Gradle plug-in. This enables developers to iterate quickly when developing their cloud-native Java applications with Open Liberty.
The Language Server for MicroProfile (Eclipse LSP4MP) and Language Server for Jakarta EE (Eclipse LSP4Jakarta) both offer language specific support in an IDE or editor for their respective technologies. They help to deliver language support capabilities, such as diagnostics, code completes, hover for more information, directly within the developer’s IDE of choice.
The MicroProfile Starter for VS Code which makes use of the MicroProfile Starter, the VS Code Extension Pack for MicroProfile, and the Open Liberty Tools for VS Code and IntelliJ projects are all IDE specific plugins that users can download from the VS Code or IntelliJ marketplace.
Table of contents:
Q&A:
Why is developer experience important? What is involved in this role? Give a brief description of the day-to-day activities you do in this role
Developer experience is important because creating a positive experience for developers will enable them to be more productive and create quality software. A better experience for developers means that more developers will be inclined to continue using our products.
On the Liberty Developer Experience team, there are a number of projects we regularly contribute to. My day-to-day involves adding enhancements to dev mode (recently adding multi-module support for Maven projects), or any of the IDE extensions we support, such as the MicroProfile Starter for VS Code, or Open Liberty Tools for IntelliJ tech preview. Part of this role also involves talking about our tools at conferences and keeping up with the open-source MicroProfile and Jakarta EE community.
What benefits do the plugins you mentioned offer?
IDE plugins, specifically the ones our team works on for MicroProfile and Open Liberty, offer our users an improved experience within their editors. From within their IDE, they are able to use tools like the MicroProfile Starter or Open Liberty dev mode, without having to reference external documentation or visit an external site. This enables developers to focus on the actual code of their application, as opposed to some of the details around initially creating a project, configuring Open Liberty, and deploying to a server. The Liberty developer experience team supports a number of editor plugins, such as the MicroProfile Starter for VS Code, the Generator for MicroProfile REST Client in VS Code, and Open Liberty Tools for VS Code and IntelliJ.
How can open-source projects create better developer experiences? Could you give an example?
By developing our projects in the open-source, we can receive direct feedback from our users through avenues like GitHub issues. Open-source projects also allow us to collaborate with other interested parties in order to build better tools for developers. For example, both our team and developers at Red Hat are actively contributing to Eclipse LSP4MP, the Language Server for MicroProfile. When there is a technology like MicroProfile that is widely used by many developers, it is helpful to be able to leverage the community to build these tools, as they are also the ones that will benefit from using them.
In addition to contributing to code within these open source projects, what other contributions have you made? (i.e. documentation, tutorials, blogs, etc)
I have contributed to the documentation on our IDE extensions; Open Liberty Tools for IntelliJ and VS Code, MicroProfile Starter for VS Code, the VS Code Extension Pack for MicroProfile (Tools for MicroProfile), etc. I have also created blog posts about our Open Liberty Tools for IntelliJ initial tech preview release, and the Language Server for MicroProfile (Eclipse LSP4MP). Beyond these forms of communication, I have spoken at a number of presentations and conferences with the team.
What impact have open-source projects had on your work or on you personally?
Being involved in open-source projects has greatly improved my technical skills and introduced me to a whole new community of developers. I have really enjoyed having the opportunity to network and meet many new people in the community, whether through conferences or directly in pull request comments. I have also gained a deeper understanding of technologies like MicroProfile and Jakarta EE which has made me a stronger Java developer.
How did your internship help you to transition to a full-time role?
My internship gave me the opportunity to ensure that this is the right role for me as I start my career. As an intern I was given ample opportunity to experience the different aspects of my current role, from development to testing, presenting at conferences, meeting my team, and getting involved in volunteer opportunities like STEM for Girls.
Given my positive internship, I was able to confidently transition into my full-time role as I knew the technologies, the kind of work I would be doing, the team, and that IBM was the best company for me as I knew I had support to pick up new projects, learn new technologies, and pursue volunteer opportunities.
As someone who is regularly involved with local universities, how do you see open-source projects viewed by students?
From my perspective, now more than ever students are looking to contribute to open-source projects in order to build their technical skills, portfolios and their networks. The challenge comes in helping students find an open-source project they are interested in and getting over the hurdle of a first commit or pull request. We can help by raising awareness for our projects, through blog posts, youtube videos, etc. and participating in programs that help introduce students to open-source software development.
Our team has been collaborating with a the Canada Open Source Projects (CANOSP) academic program throughout the past year. This program connects students with open-source projects and mentors in exchange for course credit. With this program we have seen a lot of interest from students when contributing to open-source projects. Open-source software clubs are also becoming more prevalent on university campuses. These are clubs where students get together and find open-source projects to contribute to as a group.
What advice would you give to developers that are interested in getting started with an open-source project?
Seek out programs or clubs that help beginners get started contributing to open-source software, whether that is an academic program like the Canadian Open Source Projects (CANOSP) academic program or an event like Hacktoberfest. Seek out projects that you interest you or perhaps you have used in some of your other work. You can also filter by the "good first issue" tag on GitHub to find issues that need to be picked up that have been specifically tagged as good introductory issues on open-source projects. Do not be afraid to open your first PR, maintainers of these projects will be happy to see others contributing them and helpful in the comments!
Outside of work, what do you like getting up to?
Lately I have been camping and hiking a lot as that is one of the safer activities to do throughout the pandemic. I have really enjoyed spending more time outside and getting to visit many of the beautiful provincial parks here in Ontario!
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/