Maybe you are still entry-level.
Or maybe you are an experienced developer.
No matter the level, the world of tech is a place where you can (and should) strive to learn something new.
Open-Source allows you to build up skills and become better.
If you are an entry-level or newly graduated junior, you may find yourself stuck in the famous “cannot-get-hired-because-I-don’t-have-experience” deadlock.
Open-Source doesn’t require you to be hired, nor does it require you to have a degree or a resume.
It’s an obvious opportunity to grab some initial experience that you can show the recruiter for your next interview.
If you are an experienced developer, you may have gotten stuck in the ways at your current day job.
Open-Source is the perfect place to pick up new skills that your current job doesn’t allow.
Do you want to become better at Machine Learning?
At blockchain? Design, UX, organizing?
There is always something to do in the world of Open-Source.
Don’t wait around 💪
2️⃣ Become a great collaborator
As a successful software engineer, you need to have great people skills.
Your ability to work in a team and collaborate with other developers defines your profile.
If you are the person who can show and document great collaboration skills, you will be beating the math genius and algorithm expert without good people skills, any day of the week.
Open-Source is a phenomenal place to acquire great collaboration skills.
By the heart of any great Open-Source project lies the collaborators’ ability to communicate, resolve conflicts, discuss and exchange ideas, prioritize and delegate work and align approaches to push in the same direction.
Great collaboration skills outweigh great technical skills by far!
Not only will these skills make you stand out as an extraordinary software engineer, but they will also help open doors for future roles in management and leadership.
3️⃣ Improve the software you use
It’s likely that you have installed a third-party library in the software you are building, to later find out that there is a bug or that the functionality is too limited to your needs.
The obvious community-minded approach here is to dig into the library and see if you can patch it yourself.
Dig into the source code, try to fix the bug, or enhance the functionality.
In this way, you can continue using the library that you already chose for your project.
And obviously - make a PR to the official library with your change!
Not only will your own software get better, but you are also helping everyone else in the community 🙌
4️⃣ Grow a reputation
When you contribute to Open-Source, you often end up meeting like-minded people with similar interests.
Great collaboration forms bonds, and contributing to Open-Source is something that most anyone in the community respects and acknowledges.
By definition, your contributions will be publicly available.
They will also appear on your GitHub profile, and it will show that you are an active contributor to the Open-Source community.
It’s a great way to build up a strong reputation as a developer, and build up a strong network of people that share your enthusiasm for software development.
A network that can carry great opportunities, and benefit you both on the professional level, and in your private life.
Here is an example of how GitHub shows your activity as an Open-Source contributor.
This GitHub profile belongs to @kentcdodds, an author and Open-Source contributor behind a series of successful projects.
5️⃣ Attract recruiters
Since your contributions are publically available, it’s a great way to demonstrate your work to recruiters and potential employers.
Obviously, they will get to see how you code.
In my own career, I have bypassed the compulsory coding test and technical interview multiple times, for the simple reason that the recruiters already had a chance to see exactly how I solve problems.
I know Open-Source heroes like @eddiejaoude can confirm the same.
Additionally, they also know that a good Open-Source contributor is an outstanding collaborator, and they see that the art of software engineering is more to you than just a job you get paid to do.
It’s a passion!
Having a GitHub profile with Open-Source projects, public repositories and contributions is easily one of the strongest career assets.
It is by far one of the best investments you can do, in order to kickstart your career and obtain high goals as a software engineer.
6️⃣ Create leads for your product
If you are selling a product, whether it’s a SaaS, e-book, or online course, you can use Open-Source to gather interest, direct traffic, and - by the end of the day - create leads for your product.
twitter-api-client was initially created for FeedHive, the SaaS product that I’m running, and was Open-Sourced even before FeedHive launched.
It has 700 stars on GitHub, is downloaded +7,000 times per week, and has been on GitHub’s trending page twice.
It’s accountable for around 7% of the traffic to FeedHive’s landing page, and by virtue, this project is a channel that converts paying users besides being Open-Source and free to use.
You can apply this to e-books and online courses as well.
If you have a lot of example code and templates - put them in a GitHub repository.
Let it create value in itself, and allow it to get traction on GitHub.
Sharing a part of your product for free may very well be worth it when looking at the end result.
Did I convince you to get started yet? 🤩
Or maybe you're hesitant because you're still new to Open-Source?
Fear not - go through the thread below, and you'll have a great idea about what to do 👇
How to make a contribution to an Open-Source Project.
If you are new to this, it may all seem a bit intimidating!
Let me explain the process and give you some tips and best practices.
🧵👇
First of all - why even care about Open-Source?
🔹 Become a better developer
🔹 Become a great collaborator
🔹 Improve the software that you use
🔹 Grow a reputation
🔹 Attract recruiters.
...Just to name a few!
Now that we got that straight - let's get started 👇
🔹 Find a good project to contribute to (1/2)
You want to look for a project that accepts new contributors and is likely to review PRs.
You also want to find a place that has a healthy tone in the discussions and polite and grateful maintainers.
It supports both key-value entries and documents.
That means that a field can contain a single value, such as a string or a number, but can also contain a document, i.e. a JSON-object.
Did you know that Slack started out as an online game made in Flash? 😳
How did they go from a Flash game to a $630M ARR SaaS?
Let's take a look 👇🧵
"Never mind the part where we first tried to make a web-based massively multiplayer game and failed" - the Co-Founder of Slack says.
They spent almost 4 years working on that game.
Today, Slack is valuated to $5B.
Let's see what we can learn from Slack 👇
🔹 They took their own medicine
Slack became their own first users.
They had been using IRC while developing Glitch, the Flash-based game, and the team appreciated how this chat-based communication channel allowed them to work more focused and productive.