I recently got selected for Outreachy with Fedora and thought I should document the entire process for other curious souls looking to participate! :)
Note: This article by no means provides a 'hack' or definite steps to get into Outreachy. These are just my thoughts on what worked for me.
As mentioned on the official Outreachy website:
Outreachy provides internships to work in Free and Open Source Software (FOSS). It's a three month remote internship.
Outreachy internships provide a wide varity of domains to work in. Projects may include programming, user experience, documentation, illustration, graphical design, or data science.
If you've heard about Google Summer of Code, Outreachy in many ways is similar to it with some key differences:
Outreachy has very strict eligibility criteria. Two of the most important ones are:
You can check the complete eligibility criteria on the official website. The initial application verifies your eligibility. More on the same is detailed below.
Outreachy runs twice a year, mid year and end of year. For the mid year round, the application period starts from February and the internship concludes August while for the end of year round, the application period starts from September and the internship concludes in March. If you're a student, depending on where you school is, you can apply to either of these rounds.
Not that all that is out of the way, essentially the most important question to ask here is why do you want to apply for Outreachy. Summer of code have gained a considerable amount of traction in the last few years and if you're based in India, there are GSoC/Outreachy fellows left right and centre. Don't do it because everyone you know is doing it, peer pressure be damned.
Here are some takeaways from my experience that hopefully will help you choose if Outreachy is the best bet for you!
Quality abundance of learning. Contributing to a FOSS project is a huge step up from a personal project. You get to learn plentiful and get a taste of what it's like to be a part of a big system with various working parts. Contributing to the project not only enhances your skill set as a software developer but also endows you with essential soft skills.
Gateway into Open Source Software development. If you're passionate about OSS and have been looking to contribute to the same, Outreachy sets an effective precursor. Getting involved with OSS can be tricky and often daunting for beginners, as was the case with me. Just knowing who to ask help from is barrier breaker. Outreachy provides specific steps on how to connect with your mentor and contact them in case you feel stuck or are in need of help. This brings me to my third most important takeaway.
Build you network. Irrespective of whether you get selected or not, while contributing to the project you get to know and work with experienced and highly talented software developers and your fellow skilled applicants. Interacting and working with OSS veterans across the globe teaches you the current best practices, brings new and enlightening perspectives into focus and exposes you to opportunities you might not have stumbled upon elsewhere.
Credibility If you're like me who regularly needs a reminder to hush that small voice in the back of your head telling you that you're not skilled enough, or often doubt your own capabilities as a software developer, Outreachy will provide that much needed boost to your self-esteem.
Monetary Perks Outreachy provides $5500 USD to each intern as an incentive to get involved in OSS. Additionally, Outreachy also provides $500 USD travel stipend to attend workshops/conferences.
Now if most of the above reasons seem fitting, let's get into the stepping stones towards getting selected for Outreachy.
The first step during the application period is the initial application. This is for the Outreachy organisers to verify your eligibility. It requires you to answer four essay based question and some others to verify your time availability.
This must be taken extremely seriously. Only after the initial application is accepted, the projects are made visible to the applicants.
Going through the list of projects I had these important points in mind:
Don't select too many projects and juggle between them as that will only divide your time that could instead be devoted to understanding one/two projects and giving it your best input.
Outreachy requires you to solve atleast one issue to submit a final application. After introducing yourself on the community's preferred mode of communication, go on the hunt for your first issue to solve.
This is one of the most crucial period based on which mentors decide whether you're fit for the project or not. Some key points to keep in mind are:
Solve as many bugs as possible. Don't just go for issues that fall under your spectrum of knowledge, try to solve issues that urge you to step outside your comfort zone and learn new things on the fly. This will help mentors see your ability to learn and adapt according to project requirements. Be involved not only by contributing but also open issues when you come across a bug.
Be an active member of the community. Communicate effectively with your mentors. Follow the etiquettes to communicate on a public platform. Keep them updated of your progress and any obstacles you're facing.
Do not ask questions to your mentors unless you've done enough research about the same. Respect their time and efforts and use Google and Stack Overflow in abundance.
Help others out as much as possible. I can't stress this enough, don't make this into a dirty race where you belittle your co-applicants or the likes. Genuinely help other contributors and build a supporting community.
Most of all, have fun! Strive for those Eureka moments when you solve bugs or add new features. Give yourself a pat on the back, you've earned it!
Note: If you're like me and big code-base seem daunting, remember, you don't need to know it in its entirety. Start small and build from there.
The final application requires you to record all your contributions mention your experience working with the organisation, give details of any past projects you've made/FOSS organisation you've worked with and supply a timeline mapping out the course of action for the next three months of the internship. Each and every step is important for outreachy organisers to understand if you're suitable for the internship so give plenty time to each and mention any and all details.
After submitting the final application, you can keep on contributing to the project and maintain a steady communication with the mentors.
That's it. As I start my internship with Fedora I can safely say, all it needs is consistent efforts by a passionate being.
You can read about my experience during the application period here.
Hope you found something valuable here and most of all the drive to apply for that Summer of Code you've been wanting to since eternity. Quit questioning, take a leap of faith and dive right in!
Feel free to reach out about any doubts concerning the application process, I'll love to help you out! :)