Many junior or entry-level developers struggle to get opportunities because of little or no significant work experience. Good coding skills are essential, but employers today are looking for developers who know more than just how to write good code. One of the vital elements recruiters are looking for is soft skills and work experience.
The frustrating part of all this is that you need to work at a job to get any work experience.
While some developers immediately start getting opportunities after graduating from college or boot camp, many developers still face this issue. Speaking from experience, I have built plenty of projects, cloned websites from end to end, and won a few hackathons. Yet my first tech job came from a somewhat overlooked territory by many developers.
I'm talking about open source—the key to getting valuable connections and opportunities. But before we begin, a proper definition of the term is required.
What is Open Source
According to Wikipedia
Open-source software is a term that refers to software released under a license in which the copyright holder grants users rights to use, study, change, and distribute the software and its source code to anyone and for any purpose.
In this article, I'll outline ways open source can advance your career as a developer, and In some of the steps mentioned, I have taken the pleasure of adding real-life testimonies to re-enforce my points further. So without further ado, here are the ways open source can boost your career as a developer.
1. Grow your network
This is one of the most significant benefits of contributing to open source. A lot of developers in different niches contribute to open source projects. We have maintainers, engineers, software developers, and companies, and you may not believe it, some recruiters too. Contributing to projects gets you noticed by this diverse number of individuals.
How do you grow your network?
The easiest way to do this is to check out projects you're interested in. It doesn't have to be the popular open source projects like React or Linux; early-stage projects are usually more accessible to junior developers because not many people are contributing to them. It's also easier to make an impact on smaller projects.
A one-time pull request to a project is reasonable, but the consistent contributions and collaboration to individual projects get you noticed. As you become a frequent contributor to such projects, maintainers will start remembering your name. When there's an issue they know you can handle, they'll assign it to you. This is why I advise contributors to avoid jumping from project to project.
Another great way to grow your network is by joining communities around these projects. There's a good chance some of the projects you're contributing to have communities outside of GitHub, like discord channels, slack groups, etc. This is a great place to interact with the maintainers and fellow contributors in a more friendly environment. Join the communities, and participate in discussions. You'll be surprised how your network will snowball. 🏂🏽
2. Upgrade your skills.
Open source helps you grow your skills and not just with coding; you can also learn valuable soft skills like communication, effective collaboration, management, leadership, and so on. These are skills top organizations are looking for in a candidate.
Some of the skills that can be improved while contributing to open source projects include:
The ability to collaborate effectively is a great skill I believe every developer should have. While it might sound easy, I promise you, it is not. I once had the pleasure of collaborating with a group of over 50+ developers and designers in an internship, pushing code, and reviewing pull requests. This process taught me a lot about how developers have formed strong opinions around specific technologies, coding styles, and best practices in areas like their preferred folder structure, favorite tool for writing tests, favorite way of writing CSS, preferred JS framework, etc.
While most top organizations already follow a consistent pattern, you can still encounter these differences from time to time.
Contributing to open source can improve your collaborating skills, which will, in turn, help you make the best decisions and wise judgment in conditions like:
- How to be flexible to correction and admit when there's a better way of doing something you usually do differently.
- How to positively reject pull requests or issues that don't comply with the project without hurting the contributor's feelings.
- How to drop clear and reasonable feedback
- How to write better commit messages. 😅
Open source encourages good communication ethics. Just thinking of writing your "commit messages" to comply with specific project guidelines is excellent training on its own. You tend to know how people interact in real collaborative work, and you learn best practices. Different maintainers have particular ways they expect you to interact with fellow contributors. This can be found in a CODE OF CONDUCT file, which is a tool for defining community standards, and procedures for handling abuse.
3. Becoming a vital contributor
A lot of top projects with over 30,000+ stars we use and love today once started small and un-noticed. Becoming a contributor at that early stage has its advantages, like people getting to know you better, your contributions to the project can be easily felt, and you can earn certain positions that can be rewarding to your career in the long run.
Many developers are under the impression that they must contribute to those popular open source projects to get ahead quickly. While this might be possible, many other developers are trying to do the same, so it's more challenging, especially for a junior developer.
I bet when Dan was contributing to "React" at that early stages, it wasn't the most popular frontend framework.
Another similar example is the story of how Ian Sutherland became one of the core contributors of the "Create React App" project. He started by being active in the conversations and contributing to discussions, and not before long; he became one of the core contributors of Create React App.
Create react app top contributors as of 22/08/2022
The point I'm trying to make with these stories is don't be afraid of being part of something small, you never know what project will take off next, and your contributions will become investments in your future.
4. Build a developer profile
GitHub has a great way of showcasing your achievements and contributions to improve your developer profile. Showcasing metrics like contributions, pull requests, issues raised, discussions, reviews, etc. Any activity that falls under these categories is recorded in your profile.
You must have seen this contribution graph on your profile if you have a GitHub account.
The more you contribute, the more green squares you get, and your profile keeps improving. GitHub also awards achievements based on contributions.
Why is this important? Companies and recruiters are now looking on GitHub to find good developers, and a strong profile will stand out from others. This ultimately leads to opportunities like jobs and freelance contracts.
Here's an example of how a strong profile can be beneficial.
Ishita got her first full-time job through her GitHub profile.
There are many other stories of how contributing to open source can reward one's career. But I think the examples I have shared in this article will suffice.
Start contributing to open source immediately if you're a developer without enough work experience. This, in my opinion, is the fastest way to solve the no-experience problem most junior developers have. And if you are consistent, you'll have a resume filled with achievements and contributions hiring managers would be interested in discussing with you about.
I hope you learned a few things from this article. I'll share a series very soon to help developers who want to learn how to contribute to open source, find projects, and more. So like, share, and follow me, so you don't miss any new episodes.
Thanks for reading. If you like what I do, share it with a friend, or buy me a coffee, and I'll sincerely appreciate it.