I am currently working as an intern in the Jaeger (under CNCF Tracing Projects) as a part of the Outreachy Internship Program. Outreachy is three months paid remote internship program for the under-represented group. Their main goal is to support everyone who wants to get into tech and get them more involved with open source. Organisations like Linux kernel, Apache, CNCF, Fedora, Mozilla, and many more take part in this program and the internship projects may include programming, user experience, documentation, data science or community event planning, and many more. They allocate an experienced mentor from open source to each intern. More information about the eligibility criteria, the timeline, and time commitment can be found on their website. There is no experience required to apply as well as to work on their project. It’s a very good opportunity for anyone to get industry-level exposure and start their career.
Reasons to apply for Outreachy
Many of us may think is it worth doing it? Or why not directly apply for a job instead of an internship? Yes, it’s definitely worth doing it. Internship fills the gap between academics and jobs. Everyone needs a mentor while starting their way into the tech or open-source. With this internship opportunity, you have access to the open-source community, their open chat channels, and have a mentor who is committed to helping you with anything. They are always just one message away. The other reason why I would encourage anyone eligible to take part in Outreachy is the learning and experience involved. You get the chance to work with open source communities and most importantly with people who have actually developed these real-world projects. These open-source projects are used by big organizations and being a contributor adds a huge plus point to your resume and also you learn how to work in a team. I am pretty sure by contributing to open source you will have much more confidence when you start your job career because you have been already involved in big projects.
Challenges involved & Ways to overcome
Like cracking any other job getting into Outreachy is also not that easy and we have a long way to go. Since it’s a big internship program you need to compete with candidates from all over the world. In order to get ahead of everyone, you need to prepare yourself and get everything planned.
Start early: Failure to start early means you are giving other applicants the chance to get ahead of you. I would say just fill-up the form as soon as possible and start working on your skill sets. Keep an eye on the application deadline and submit as early as possible.
Gain required knowledge: Most of the projects are listed on the Outreachy website from the very beginning of the application. Going through this list and shortlisting the projects of your skill sets and interest as early as possible will give you a good advantage over others. Since these projects are mostly hosted in GitHub or GitLab, I would recommend to go through them and have a basic understanding. If you don’t have any idea about git, go through the free courses available and get your hands dirty. It will be used in any project you get involved in.
Ask questions: Asking questions not only solves your doubt but also shows your interest in the project which maintainers look for. It also gives you the chance to look at the project from a fresh eye and find possible improvements that you can work upon later. All these open-source projects have public communication mediums like google groups, IRC, Slack, Gitter, and other ways where one can ask for help. Generally, applicants feel a little shy to ask questions in such channels which I would say one should overcome as early as possible.
Ways to increase your selection probability
Outreachy application involves a three-phase: initial application phase and contribution phase and final application. The initial application involves verifying your eligibility, looking at your time commitment, and also consider your experience as a minor or underrepresented in tech which you have to explain properly in an essay. The contribution phase is the main or deciding phase for your internship. In order to increase your chances of being selected follow the following steps:
Select projects: There are many participating organisations with multiple projects and their descriptions. Choose the project that interest you and you are comfortable with the skill sets required. Organisations receive much more applications than the available seats. So, don’t settle with just one project. During the contribution phase, go through the list of projects several times and decide your project list to contribute. Some projects have more candidates than others. Hence, to be on the safer side, find organizations that are taking more interns and apply to those.
Be consistent: Dedicate few hours each day for the contributions. You can work on multiple pull requests parallelly and make sure to follow the reviewer’s feedback in a timely fashion. Reviewers have to review multiple PRs, hence not working actively on the PR feedbacks can delay your work.
Make best use of contribution period
What comes under contribution: Every addition whether its code, unit or integration tests, bug fixes, code reviews or documentation is a contribution. Contribute in every way you can. Show your skill-sets in as many fields as possible. Updating documentation as part of the pull request where you’re adding some feature is considered nice. Similarly, adding unit-tests for all edge cases as part of the bug-fix is also great. Try to make a contribution that has a high impact on the project. Try to do code review in other’s pull request where you can, it is much appreciated by the maintainers. Answering user’s queries in the IRC, Slack, Gitter channel wherever you can is also a type of contribution. These all ultimately increases your chance to get selected as the maintainers keep an eye on everything.
Familiarization with the project: Familiarizing with the project you’re going to contribute is one of the most important and time taking part. Hence, doing it as early as possible will give an advantage over other candidates. Take your time to go through the documentation to understand the fundamental concepts of the project. Try running the project locally on your computer to get a practical look and feel of the project. Read the contributor guidelines. Each open-source project has a dedicated page for it.
Find a suitable task to start your contribution process: To find a suitable task, you can look at the list of open issues and search for issues that are relatively easy to solve. Projects use different labels for easy tasks, “Good first issue”, “Easy”, “Beginners” are some generic tags used by most of the projects. Being new to the project, finding the tasks can be difficult. Assign yourself any task in which you even have the slightest of an idea about how to start.
Create an initial pull request for the task you chose earlier: None of the pull requests are perfect in the first attempt. There are always flaws either in code quality or missing unit tests and in many more ways. Once you open a PR, the project maintainers will review your pull request and give you feedback to improve upon. Always give a short description of the changes you are doing as part of the pull request which will help the reviewer to understand about your change.
Iterate upon your pull request: To maintain the overall code quality of the project, maintainers only merge a pull request once it meets the minimal standard of code quality. A pull request can take from days to weeks to even months to get merged. As an applicant, it’s very important to be active in your submitted pull requests in terms of updating pull request with the changes suggested as part of feedbacks. Don’t leave your pull request in the middle even if it is taking a longer time than usual. That shows your dedication towards getting your contribution merged. Once your PR is merged, don’t forget to say “Thank you”. Don’t feel sad in case your PR isn’t merged due to some of the other reasons. Keep in mind that that the reviewer has a very major role in getting your PR merged. So do acknowledge that by saying some kind words. In short, these are the guidelines. Start with the small contribution like fixing the typo in documentation or comments in code but do start and be consistent with your work. Try to communicate as early as possible, like working on feedback and updating pull request as soon as you can. Be active on communication channels and help others. Most importantly enjoy the work you are doing and learn through the journey.
Final Application: For the final application you have to record at least one contribution to any project (This part is well explained in the Outreachy website).
Wait For The Result: You can only give your best in the contribution phase and wait for the result. The majority of the candidate doesn’t get selected in their first attempt and I too got it on my second attempt. The good news is this program happens twice a year so the next chance to apply again is not that far. Keep an eye on the Outreachy website so that you don’t miss the chance. So don’t feel sad in case you can’t make it but don’t stop trying.
Good luck for your journey ahead
Outreachy provides you an opportunity to contribute to open-source projects. The journey to opensource is a bit difficult in the beginning but in long run, it’s very rewarding. Open-source contributions add a huge plus point to your resume and will help in every job interview you apply in your career. So I would encourage you to try for it. Last but not the least, try to give your best and enjoy while learning and keep contributing.