Meet our open source champions: Gilbert Kwan, Open Liberty Guides Lead
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:
Gilbert Kwan is an advisory software engineer at the Toronto laboratory of IBM Canada. He joined IBM in 1998, and since then he has worked on test automation for WebSphere Liberty Application Server (WAS), batch and compute grid development for WAS Extended Deployment (XD) edition, and tWAS and Liberty installation. In more recent years, Gilbert has helped design and implement the installUtility
tool to install WAS Liberty features, and developed WAS and Liberty serviceability and monitoring (PMI/metrics). Since 2018, he has worked as the team lead for Open Liberty guides development.
Tech introduction:
The mission of the Open Liberty guides is to enable developers to learn new technologies in a hands-on and interactive manner to help them develop effective applications with Open Liberty.
Each guide contains a finish directory and a start directory. The finish directory contains the finished project that readers will build. The start directory contains the starting project that readers will build upon. The Open Liberty website is able present these guides interactively so as readers read the content and move their mouse to hover over words, the right code pane will highlight where the code is exactly located. This all helps to speed up the learning curve.
As of July 2021, 22 of these guides are now also provided as a cloud-hosted version. This enables users to start those guides right away from within their browser, without the need to set up any prerequisites on their local machines. The cloud-hosted guides run in the IBM Skills Network environment. You can find out more about this new way of using our Open Liberty guides in this blog post.
Table of contents:
Q&A:
When did you first interact with IBM?
The first time I came across IBM was when I was a 3rd year undergraduate student. I applied to the internship at IBM. It was my first job interview and I was a little nervous. Unfortunately, I was rejected due to my poor communication skills at the time. However, after working on a small software development company for several years, I was able to gain experience and build my skillset. Following this, I joined IBM. Ironically, I now use my communication skills everyday - leading a team of university students, and working with a wide range of teams within IBM to produce the Open Liberty guides.
What projects have you worked on since joining IBM?
When I joined IBM in 1998, I started on the functional test automation development for WebSphere Commerce. With this team, I got my first patent for Automated testing of computer system components. Before I joined the Open Liberty guides development, I worked on the WAS system verification test automation framework, WebSphere XD compute grid, SCA project, IBM Installation Manager, tWAS and Liberty installation, and tWAS and Liberty serviceability and monitoring.
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? How has your involvement in open-source projects impacted upon your work or impacted you personally?
My first open source project was the SCA project. At the time, I was only contributing test code, and I don’t think I fully understood or appreciated what open source really meant or was really all about. However, when WAS Liberty moved to open source, I started to make more contributions to the Open Liberty runtime and this gave me a much more varied and deeper insight into open source communities and developing an open source project.
As a developer, I do not see any major differences between working on open source and proprietary projects - I’m still developing great code for great software. When I first started contributing to open source, I felt more restricted in what I could do and felt that there were more processes I now had to follow. However, at that time I was only focused on contributing code, not really in getting involved or understanding more about the open source community. Now that I regularly contribute to open-source projects, it has helped me to become a better developer as it has made me make sure that the code I produce is easy to understand and is good quality. Now, I feel more satisfied and successful in my career because I know my work is visible to the software development world and that it’s making a difference through the open source I contribute to. Also, working in open source software has given me the chance to work with, communicate, and learn from a huge variety of developers from different companies all around the world. I would not have had this opportunity otherwise.
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?
After I took over the responsibility of leading the development of the Open Liberty guides, my contribution to open source is now very much not limited to coding. I now manage 50+ open sources guides repositories. My regular tasks include reviewing pull requests, prioritizing work and new guides to be produced, responding to issues opened by internal and external users, assigning issues to my team members, and more. As a result of all of this hard work, the team and I have successfully created 30+ guides that enable developers to learn about a huge variety of technologies and tools, including Kubernetes, Istio, reactive programming, contract testing, social media login, different MicroProfile and Open Liberty features, deploying Open Liberty application to different cloud environments, and more.
What are the benefits for developers of using the interactive guides you helped create for Open Liberty?
When using these guides, developers do not need to know how to download, install, and configure Open Liberty. Instead, they can jump straight in to learn about the technologies explained within these guides. The Open Liberty website displays the guides interactively for the code and explanation. Developers can precisely understand how the things work. Since the end of July 2021, 22 guides are available in cloud-hosted format, with more guides published continuously. Developers don’t have to worry about setting up any prerequisites, especially to install Docker and Kubernetes. They can run the guides on their browser.
When developers want to start their own Open Liberty application, they can follow the steps laid out in these guides or create a starter project. For more information about the Open Liberty starter application, check out our recent blog on this starter project.
What do you most enjoy about working with a team of university placement students?
I have been a software developers for 30 years, but the great part about working with students is that as well as using my experience to teach them, I learn from them as well! Since starting my role as lead for the Open Liberty guides team, I have had the pleasure of working with 21 interns. I love that through this role, I am not limited to contributing only code, I am also able to help my colleagues (the university interns) grow and develop their skills. Beyond just learning new technologies, I also help them to learn clean coding techniques, application design, testing methodologies, development process, problem solving skills, time management skills, prioritization skills, presentation skills, etc.
As someone who works closely with the university interns who join our organization and who is regularly involved with local universities, how do you see open-source projects viewed by students?
It is an exciting opportunity for the students to showcase themselves, their work and their skills. If students solely work on proprietary projects, only their team leaders or managers can provide a reference/referral for their resume or potential job applications. There is no other way employers or other individuals can see the work they have completed or contributed to. However, if they can get involved in open-source projects, all of their contributions are then visible to everyone and this can provide students with an invaluable online portfolio of their work for their future career path.
What advice would you give to developers that are interested in getting started with an open-source project?
Don’t be afraid to open an issue against any open source project. Even better, submit a pull request to any open source project with your suggestions or fixes. Or alternatively, if you have a great idea for a new project, do not hesitate to create your own project on Github. Another simple way to contribute to open source is to write and contribute a guide or documentation, we’d certainly love more people to do this for Open Liberty!
What is your most enjoyable moment at work?
IBM Toronto laboratory, where I now work, is located close to a beautiful ravine and stream. Before COVID 19, I would regularly walk through the ravine twice a day as I journeyed from the parking lot where I’d park my car to the main building. It was a usually my favourite time of the day. I always kept an eye out, looking to see if I could see anything. Usually, I could see different animals, including birds, geese, rabbits, squirrels, chipmunks, and rarely I’d meet snakes, tortoises, frogs, deer, and even beavers twice! I love the connection we are still able to have with nature and wildlife even though we spend most of our time as developers at a desk staring at a computer. I love that my office at IBM offers me this opportunity to take a break and reconnect with nature.
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/