At Red Hat Research, we hire creative, passionate students ready to work and learn with a global leader in open source solutions. Our interns bring fresh ideas and new connections to challenging problems in the open source community, unlocking their own potential while contributing to the innovative power of open development.
This month’s intern spotlight shines on Jake Correnti, a University of Massachusetts Lowell senior who just completed his second summer as a software engineering intern with Red Hat Research. Jake spoke with us about learning to be an effective open source contributor, his work on Podman with the Container Runtimes team, and the value of asking questions.
Check out Jake’s Red Hat Research people profile to see his final presentation, Improving Podman Machine. You can also find some of his work in his GitHub repository and see more of his background on LinkedIn.
How did you get interested in open source research?
The first time I heard about open source, I was watching a documentary about Richard Stallman and GNU. I remember being amazed that someone could put their code on the internet and an individual from across the globe could contribute to their effort. Since then, I’ve wanted to get involved in an open source project and its community. After being at Red Hat and working on Podman, an open source project with nearly nineteen thousand stars, I’ve finally had that opportunity. Working in open source has made me realize just how much of a collaborative effort it is to make sure a project succeeds, whether the contributor is a part of the core team or a student in another country.
What have you been working on during your time with Red Hat?
I am working alongside the Container Runtimes team, specifically with Podman, to help develop and improve podman-machine. My goal for the summer was to help the team add features and fix bugs, especially within the domain of podman-machine. This goal involved two main tasks: adding a debug console window on MacOS and beginning a refactor of the podman-machine code.
The purpose of adding the debug console window to MacOS was to ensure that Podman has a uniform experience across the different platforms we support. Refactoring a portion of a code base is a big task, but it’s important for making sure the code is usable and maintainable. Having easy-to-read and maintainable code will make a developer’s job much easier when working on a project.. Not only did I have a responsibility to complete these tasks, but I also had a responsibility to the internal and external stakeholders of the project. This meant that I also was responsible for non-podman-machine tasks that came up and needed my attention, which could range from customer CVEs to a feature request on GitHub.
What knowledge, experience, or skills did you gain through your experience as an intern?
Over the six months I’ve been at Red Hat, I’ve learned an incredible amount. Being an intern, it’s natural to have tons of questions when working on a new project. Working on the Podman team taught me not only when to ask questions when I was stuck, but also how to ask the right questions to get what I wanted. By working on a large upstream open source product like Podman and its other related projects within the Containers organization, I inherently learned how to contribute to an open source project effectively.
As a side effect of working on multiple different repositories at once, sometimes in different languages, I learned how to get up to speed with a new code base relatively quickly. Learning to get comfortable with new codebases allowed me to be productive significantly faster the better I got at it. Working on these different projects also built my soft skills. Sometimes these projects weren’t owned by the Containers organization or weren’t a project my team was responsible for. If I had any questions about how to implement something—why a certain feature worked the way it did, or where a certain area of code may be located—I needed to set up a meeting with the right person or reach out to that group in order to find the right person to talk to.
Who were your mentors and how have they helped you?
I’ve had the pleasure of being an intern at Red Hat for multiple summers now, so I’ve also had the chance to learn from multiple mentors. My first mentor in Summer 2022 was Matt Heon, one of the original authors of the Podman project. Being my first mentor at my first internship, Matt played a pivotal role in laying the foundation for my development as an engineer. Coming into the summer, I had familiarity with different tools and languages like Git, Golang, and Rust. However, I had never used any of these things outside of personal projects or school assignments. Diving into the deep end of open source development on a project with a large community didn’t come without its challenges. Matt showed me the ropes when it came to learning a new and established code base, dealing with mistakes using Git, and contributing to an open source project.
After finishing my junior year at UMass-Lowell, I came back to the Container Runtimes team for Summer 2023. This summer, the team wanted me to work on a different aspect of Podman, so I needed to work with a different subject matter expert on the team. This led me to work with Brent Baude. Coming into this summer, I was much more confident working with the code base and open source projects. This comfort allowed Brent and I to have a different mentor/mentee dynamic. Brent also played a significant role in helping me further develop my skills and become a better engineer. He has allowed me to take on more complicated projects and tasks, reaching across various repositories inside and outside our organization. These complex tasks have really pushed me to think differently and taught me to quickly learn a new code base to be productive. Although Matt and Brent were my designated mentors, the entire Container Runtimes team has mentored me in one way or another. Without fail, if I have any questions or need help, anyone on the team is happy to help guide me in the right direction and help me succeed.
What advice would you give to a new Red Hat Research intern?
Coming into a new internship can be stressful, and I think it’s important to remember that you’re not expected to come into the internship knowing everything. It’s okay that you don’t know what you’re doing, and you’re here to learn, so don’t put too much pressure on yourself if you don’t pick things up in the first hour. Another classic issue interns have is getting stuck, but waiting too long to ask for help. Ask questions. Lots of them. You’re here to learn, and everyone knows that. Everyone wants to see you succeed and is happy to help answer any questions or direct you to someone who can. I think it’s also important to make sure you have some sort of mentoring during your internship. The work can feel very daunting at times, and it’s nice to have someone to reach out to when you have questions or concerns, technical or not.
What are your talents or hobbies?
In my free time, I like to load up the kayaks and go fishing with my friends. I also enjoy endurance training, specifically cycling and running.