How to Find a Mentor and Get Started in Open Source
Open source has permeated the tech industry. Upwards of 80% of organizations say they use open source. It makes sense to want experience in it, as it could help you find your next job. Plus, it’s free to use, so the bar to entry is much lower.
But the Cloud Native Computing Foundation has more than 138,000 contributors making over 7 million contributions to more than 100 open source projects. It’s reasonable that getting started in open source would feel overwhelming — to say the least. So how do you get started as a contributor to cloud native projects? How do you find a mentor or guide to help you along?
That was the topic of the mentees panel at this year’s KubeCon+CloudNativeCon North America. The talk included Kunal Kushwaha, a developer advocate from Kubernetes startup Civo; CNCF ambassador and HSBC team lead Divya Mohan, and Grafana Labs’ software engineer Uchechukwu Obasi, and was moderated by CNCF developer advocate Ihor Dvoretskyi.
Your Open Source Contributions
What separates open source from its proprietary counterpart is the open source community, made up of a mix of volunteers, super-fans and über-users of a product or suite of products. So while it’s reasonably overwhelming to think where to start, there’s the unique benefit of built-in communities to support you.
It’s good to start with an idea of what you want to get out of your contribution — a job, a mentor, experience in a methodology, service, interest or coding language. Use the CNCF project landscape to search by your interest — monitoring, securing, or deploying, for example — or by organization or skillset. Next, think if you want to be part of one of the biggest, horizontal communities or if you’re feel more comfortable in a smaller niche.
And then it’s about deciding what you want to put in to achieve that goal.
For Mohan, contributing to open source projects gives her experience in a wider breadth of technologies outside of her job, including in Kubernetes and chaos engineering. She has grown to be co-chair of the documentation special interest groups (SIG) for both Kubernetes and LitmusChaos, as well as a CNCF Ambassador.
“There are no shortcuts to anything. Whatever you put into the journey is what you get out of it.” Mohan advises to “be consistent with your efforts. Whether you’re a student or a working professional or a gap year out, you’re going to find it difficult to make time and life gets in the way… including the pandemic.”
She suggests you set aside at least a couple hours a week — though she gave the caveat that she works crazy hours, including her full-time gig as a tech lead at a major bank, and doesn’t recommend that to anyone else. Whether your end goal is learning or visible experience, you need to put in consistent effort over a period of time to achieve that. And you need to stay focused.
“Have your work speak for you, rather than picking up every issue and assigning it to yourself. Putting your hands in many projects, you may get visibility, but to understand a project and to navigate the ecosystem gives you experience,” Mohan continued, suggesting Slack stand-ups are a good place to start.
Kushwaha is a university senior and a developer advocate at Civo. He started contributing first to Java-based open source projects his freshman year. He similarly recommends, start by being a fly on the wall in SIGs — the best part of open source is its openness after all.
“Try to attend one, you won’t understand anything. Try to attend the second, you will understand part. But by the fifth, you can contribute to the conversation,” he said.
Or follow the simpler advice of Obasi: “Show interest. Be brief. Just go for it.”
Ask for Help
These are often big — sometimes huge — open source communities. It’s natural that you’d want a guide. It’s natural, as open source is grounded in experimentation and learning, that you will have questions. We’ve already covered how to give and receive technical help in open source communities, and it’s a mix of science and art. First, do you homework. Get nosey in the project Slack and forums. And always Google first.
If you’ve begun attending those SIG or Slack meetings, you’ll start to know who you’re working with and for and start to feel more confident asking questions — because you’ll start to understand who is best to ask them of. It just takes a bit of confidence building.
“Trying out a new thing can be very intimidating” and Mohan thinks that it doesn’t matter whether you are a student or a professional, there’s fear in figuring out who to approach or how to speak up at a meeting. She said to remember “There are no stupid questions or concerns. Everyone started out as a beginner. If you are looking to contribute, please just access these skills and get started.”
You’ll soon learn you know something someone else doesn’t know — even if it’s where to start or who is good at helping with that kind of technical query.
As Kushwaha said, “Once you know how to contribute, you can help others to get started. The only thing better than helping people is helping people who help people.”
Open Source Mentoring Programs
There are internship programs attached to many open source projects, that come with mentorship, a stipend and a more steam-lined way to contribute. They can be highly competitive, but they are often the simplest way to find your way in an open source community — and, often, to get paid for your contributions.
For Obasi, open source mentorship programs provided him with the structure to learn and grow.
“My experience was an unbelievable experience because that was the first time I was working on a real-life project that had real-life users.” Obasi said, while the stipend didn’t hurt, the ability to work closely with quality mentors is what made his experience.
He has since become the first CNCF ambassador in Sub-Saharan Africa.
Neither Mohan or Kushwaha were accepted to the paid mentorship programs, but still found the application process to be deeply educational.
When applying for mentorship programs, Mohan recommends you reach out to each of the listed mentors on your project of choice in order to establish a rapport early on. Email she finds usually most successful for this outreach.
“Understanding what their vision of success for that particular project really, really helps a lot, as does understanding what is expected of an applicant and if they think you’d meet the baseline,” she continued.
Mohan looks at being rejected for these programs as a blessing in disguise, redirecting her to a better route, exploring projects with similar mindsets and skillsets.
All three panelists recommended getting involved before you apply.
“You can still contribute if you don’t get selected. You don’t have to wait for these programs to start.” Kushwaha mentioned that contributing ahead of applying could even increase your chances of getting into one of these programs. And even if you don’t, you’ve started making a name for yourself and gaining experience in open source.
When it comes down to it, the best way to get involved is to get involved. Once you get involved, that bar to enter the community is lowered more.
Non-Code Contributions, too
The open source world has this constant struggle — it desperately needs more non-code contributions like docs writers and translators, but it often only acknowledges the technical contributions. Mohan’s first contributions were to documentation, something that developers historically complain is often lacking, but often lack time to contribute to.
You also don’t have to contribute to the open source project itself to make an impact on the open source community. There’s always a need to raise awareness for these often unpaid jobs contributing to codebases that come with often smaller marketing budgets.
“Embrace a culture of sharing openly,” said Obasi, pointing out that there are ways to contribute to a community indirectly too, like writing blogs and articles about your learned experience. He always makes sure to at least take the time to tweet out what he’s learning working on Thanos.
And, for those who have gotten to know a community, don’t be afraid to connect with new members, even if you aren’t setting up a formal mentoring relationship.
In a follow-up interview after the panel, Mohan spoke of the power of informal mentoring on her open source experience, namely by finding someone who can point you to the right answer, offer you advice or feedback, without a formal mentoring relationship:
“Informal mentorship is one of those things you actually get to see firsthand when you’re a part of an open source project. The only thing such mentorships demand is your dedication and that, when the time comes, you pay it forward to another person who needs help. This is what I’ve lived by and learned.”
You never know who you might impact, too.
“I think open source really changed my life,” Obasi said. “I’m African, I live in Africa, but having the opportunity to work on software that impacts millions of lives, it’s an opportunity that I never take for granted. If open source can change my life, it can change yours too.”