How to Grow Your Career in Tech With Open Source

Be an open sorcerer

¡

14 min read

How to Grow Your Career in Tech With Open Source

You may have heard about open source at a recent conference, from a guy on Twitter (perhaps me lol 😜), or from a developer on YouTube. You were drawn to it and want to be a part of this helpful community, which led you here to learn more about it.

No worries, I'll explain open-source in-depth, and at the end of this article, you'll know:

  • What is open-source and why you should practice it?
  • How to get started with your journey of contributions.
  • Benefits of open-source in your career.

What is open source?

“We believe open source is a public good and across every industry, we have a responsibility to come together to improve and support the security of open-source software we all depend on.” - Jim Zemlin

Open-source software allows people to use, access, modify and share their codebase. They are source codes that anyone can use, modify and share subject to the project license.

Since we were kids, we are using open-source projects, such as VLC media player and Mozilla Firefox. Our preferred code editor, VS code, is likewise free and open-source software.

Open-source code is publicly available and anyone with a different skill set technical or non-technical can contribute from around the world with the approval of author/maintainers. From introducing a new feature to the project or fixing a bug to correcting typos and grammar, every contribution counts. All of these modest and large contributions have led to the outstanding open-source projects we know today.

Why should you start contributing?

Open source attracts global participation because it has a plethora to offer, whether you want to give back to the community or enhance your developer profile, you’re all welcome.

1. Open source for newbies

A student who is just starting on his development path may not get an internship/job right away, but open source plays a key role in gaining real-world software development experience from the comfort of your home.

Whatever contributions you make whether code, design, documentation or anything else, there is a lot to do in open source if you want to practise and improve your skills.

2. Showcase your contributions

It helps you build your resume; you can include the projects you contributed to in your resume. The world is small, who knows that a feature you added to a project is being used by your recruiters, increasing your chances of selection significantly?

3. GitHub is your new resume

Increasingly companies are preferring to see a GitHub account rather than how many stars you have on your competitive programming profile. Because all of your open-source work is public, you can show it off wherever you want.

Your GitHub account showcases your personal projects, projects to which you contributed, consistency through a contribution chart, and many other features. A person can observe your daily activities on GitHub, such as which projects you forked, which repos you starred, which code changes you made, which code reviews you performed, and so on.

GitHub is your new resume, make the most out of it.

4. Networking and Communication

Getting involved in open source helps you build your network; you get to interact with various working professionals. You can even find a mentor if looking for one while contributing to open source.

Building a network needs clear communication, therefore open source encourages you to hone your communication skills, as well as your leadership and management abilities, such as resolving conflicts, mentoring newcomers, and organizing team meetings and meetups.

5. Career opportunities

Contributing to open source may even get you a job. You might get a full-time offer from an organization you have been a part of for a long time and done some good work for. But that shouldn’t be the reason why you contribute; rather, it should be more about giving back to the community, learning new things and helping people in the community.

6. Meet folks with similar interests

Engaging in open-source will let you meet a lot of people who are similar to you. They could be the person with whom you spend your nights talking about tech or coffee, or with whom you share a seat at a tech conference.

What should you know before contributing?

1. Open-source roadmap

The roadmap from the Community Classroom walks you through a disciplined path to learning open-source. It also saves you time by providing you with resources (both documentation and tutorial) from which you can learn to open source. In addition, towards the end of the roadmap, you will find communities and projects that you may join, participate in, and improve your skills.

2. Learn a programming language

To begin contributing, you must first learn a programming language of your choice. Because open-source projects require you to read/write/review code, you must be knowing a programming language. If you plan to make non-code contributions, such as assisting with documentation or writing blogs, you don’t need to know a language, but it’s recommended to learn on the go once you transition to code contributions.

3. Learn Version Control System (VCS)

Open-source projects are often very huge, with many people from all around the world contributing. Keeping track of what modifications are made, who made them, and when and where they were made is therefore important.

Assume someone made an XYZ change to a project, which caused the system to fail. It would be extremely difficult to discover and repair the broken logic if there was no VCS. However, with the help of VCS, the project can be restored to its previous state when the changes were not made.

So, what exactly is a version control system?

VCS are software tools that record changes made in a file by keeping track of modifications done in the code.

There are multiple VCSs such as Git, SVN, ClearCase, Mercurial, TFS, and out of them, it's no surprise that Git is on some drugs.

4. Learn Git and GitHub

We know Git is the most widely used VCS in the industry so it makes sense to invest your time learning Git.

With that, GitHub is a code hosting platform for version control and collaboration using the Git version control system. In simple terms, it is a place where you can keep all your projects and people from around the world can contribute to your project.

Zero to hero resources that will help you to learn Git and GitHub:

  • Complete Git and GitHub tutorial by Kunal Kushwaha.
  • Git and GitHub for beginners by Freecodecamp.

How to contribute to open-source projects?

No one expects you to be an expert if you are just looking to start. My starting contribution to a project was simply formatting code, that's all.

1. Join the community

Joining the community of the respective project is the simplest way to start contributing. You can join their mailing list, Slack, Discord, or whatever platform is available. These channels can be found on the official website or the GitHub pages.

After joining, you will be able to communicate with other members of the community and ask for help when needed. For example, you may say, "I'm new to this project, so could you recommend some beginner-friendly issues to get started with?" Since the community never sleeps, you are sure to receive a prompt response.

Some other communities you should be a part of (Discords are must join, right 😅):

11 Best Tips On How To Make Cicadas Be Quiet (2).png

2. Solve beginner-friendly issues

The best way to start contributing is to solve beginner-friendly issues. Just bare with me if you don't know how to find a good project; I'll explain that later in the blog; for now, just understand how to find beginner-friendly issues.

Make your first PR by adding your name to the EddieHub community below:

How to find a good first issue

I'll use the Kubernetes project as an example to demonstrate how to discover a good first issue on GitHub.

Step 1: To begin, navigate to the project to which you want to contribute, in our case Kubernetes.

1.jpg

Step 2: Navigate to the Issues tab.

2.jpg

Step 3: On the issue page, click on Labels.

2.jpg

Step 4: On the Labels page, type good first issue in the search box and hit enter.

3.jpg

Step 5: After you hit enter, you’ll see a label as the good first issue. Click on that label (If you don’t see a good first issue label after you hit enter, that means the project currently has no good first issues).

4.jpg

Step 6: An issue tab will open with all the good first issues. Click on the one you’d like to work on.

5.jpg

Some other resources to discover and solve beginner-friendly issues:

3. Don’t know to code, no problem

There is more to an open-source project than just coding; there are numerous other ways to contribute.

  • Work as a designer, content writer, reviewer or all at the same time.
  • Be a maintainer who takes care of the organizational aspect of the project.
  • Simply be the project's user who promotes the project, engages in conversation and raises awareness.

4. You may be good at design.

  • Help to design the project layout to increase usability.
  • Interact with various users to gather feedback and improve the UI/UX.
  • Create a logo, merchandise, labels, and other promotional materials for the project.

5. Write content

  • Create articles to inform people about the project.
  • Help improve the documentation.
  • Create tutorials to help people in understanding the project.
  • Create documentation translations.
  • Create a monthly or weekly newsletter.

6. Plan events

  • Organize team meetups.
  • Hold workshops about the project.
  • Organize project conference (if any).

7. Help people in the community

  • Guide newbies.
  • Answer project-related questions.
  • Respond to others on the community channel.

8. Promote the project

  • Create content to promote the project.
  • Engage in communities and raise awareness about the project.
  • Work with other developers to publicize the project.

Where would you like to contribute?

1. Create your own project

If you identify a problem that the existing GitHub (OS) project does not address, you can create your own open-source solution.

You can also create an open-source solution for commercial software to provide users with value at no cost. Commercial software intends to solve problems but charges a high price, whereas open-source software solves user problems for free. Furthermore, open-source projects engage with best practices, high-quality code, and contributors eager to give back to the community.

After identifying the problem set, pick the tech stack and design the project.

Every project should have the following files:

LICENSE: An open-source license is required for all projects. Most people simply slap an MIT license on their project, but this should not be the case for you. Read about the various licenses at: opensource.org/licenses and then choose which one to use for your project.

README: The readme doc welcomes new users to the project. It contains all of the project's information and instructions on how to get started. The file also guides the user on how to install and run the project on their local system. Check out the readme template at opensource.org/licenses.

Your README is the first impression people will have of your project!

Tell a story from top to bottom...
✅ have a screenshot
✅ explain the project's what/why
✅ have steps to get started aka quickstart
✅ let people know where to ask questions
✅ how can people get involved

— Eddie Jaoude | GitHub Star (@eddiejaoude) August 21, 2022

CONTRIBUTING: The Contributing Doc assists newcomers in contributing to the project. It describes the types of contributions you can make as well as the workflow involved. A contributing file extends a friendly welcome to users who wish to contribute. Check out how to write a great contributing file at: mozillascience.github.io/working-open-works...

CODE_OF_CONDUCT: The document includes user behaviour guidelines to keep the workplace social and friendly. Read more at: opensource.guide/code-of-conduct.

2. Participate in existing projects

If you are/are not planning to create your own open-source solution, you can still contribute to the existing projects. Every project welcomes all types of people, whether they contribute code or not. They require individuals who can create APIs, update UI, review code, fix a bug, promote the project, and much more.

You don't want to hear about the contributions you can make again because I've already mentioned them. So, the long-awaited question is actually how to find these good and engaging open-source projects, and now I'm going to tell you exactly that.

How to find and pick open-source projects?

To contribute to open-source projects, you must first identify a project or an organization to which you wish to contribute. Let's see how we can discover those projects.

Explore organization on GSoC (my favourite method)

You may wonder how to find organizations on GSoC, it’s an open-source program to participate in. You are right, but we can also find organizations there. Let’s go through the step-by-step process.

Step 1: Visit the GSoC organization page.

g1.jpg

Step 2: Scroll down to the search box and enter a technology, topic, or organisation. For example, I typed Python into the search box and pressed enter. All organisations that use Python were listed below.

g2.jpg

Step 3: Click on any organization (try to look at as many of them as you can to get a better idea), say openSUSE. In the technologies section, you’ll see that the project uses Python. Besides Python the project uses some other technologies as well, these technologies collectively make the project and you don’t need to know each of them, learn on the go.

g3.jpg

Step 4: Scroll down and click on the view ideas list.

g4.jpg

After you click on the view ideas list, you will land on the organization’s official page that shows all the projects in the openSUSE organization. Choose the one you would like to work on.

g5.jpg

Even if you don’t want to participate in GSoC, it’s still a good way to find organizations.

Find an organization on GitHub explore

Visit GitHub and click on explore.

On the explore page, you’ll find various projects where you can contribute. You can click on the topic tab to see topic-wise projects or you can click on the trending tab to see the trending projects.

g7.jpg

Checklist to see if the project is good

After you choose a project which you’d like to work on, the next step is to see if the project’s worth your time and effort.

Check on the following points:

  1. Look over if it has a license file.
  2. Keep count of the number of contributors.
  3. Check when was the last commit made to find if the project maintainers are active.
  4. Check how often people commit changes.
  5. Look for open issues, as that is what you will most likely be working on.
  6. Look for the number of pull requests and how long it takes for them to be merged.
  7. Check if the project has a place to communicate with the community.
  8. Check if people are appreciated for their work. A compliment “Good work!” can be your motivation to contribute more.

Open-source programs for everyone

Google Summer of Code (GSoC)

gsoc.jpg

Google Summer of Code is a global program that provides college students with exposure to open-source development. A large number of FOSS and technology-oriented organizations participate in GSoC, which allows students to get familiar with the open-source community. The program runs during the summers and accepted students work on real-world software under the guidance of an expert mentor. Students who perform well are given a stipend and a certificate of completion.

Outreachy

outreachy.png

Outreachy is a three-month program which provides paid and remote internships to underrepresented people from around the world. The program runs twice a year from May to August and December to March. The program is not only for developers, there are a lot of opportunities for non-tech folks too. People who successfully complete the internship will also receive a stipend and a certificate under this program.

MLH Fellowship

mlh.jpg

MLH Fellowship is a 12-week internship alternative program where students can participate remotely. In Fellowship, students are divided into a group of 10 people called a pod under a pod leader(mentor). MLH provides four tracks from which you can choose and join according to your interest. Before this year MLH had 3 tracks - "Open Source", "Software Engineering", and "Production Engineering" but now they have a fourth track called "Site Reliability Engineering" so if you are an aspiring SRE, that's good news.

My experience till now

I started learning open-source in June, and from then there's no going back. I spent the last two months learning Git and GitHub, open-source, communities, and development, as well as making a few non-code contributions such as fixing typos, formatting code, fixing broken links, helping people in the community, and so on.

I was able to connect with a few industry experts who advised me on how to advance in my career, all thanks to open source for providing such an extensive platform. I also notice that talking to the community and explaining my ideas helps me greatly improve my communication skills. It makes no difference how good a developer you are if you can't explain what you're doing to others.

While contributing, I also learned a lot of industry best practices, which are very important in real-world software development scenarios.

I hope I was able to help you. Please ask any questions you have and provide feedback to help me improve 😄.

Â