Outreachy is a paid remote internship program for underrepresented groups in tech. All internships are in Open Source and Open Science. To be selected as an intern first you need to :
Fill out an initial application: You’ll need to answer some questions about how you are affected by the systemic bias, and how being underrepresented in your local tech industry impacted your development. Maybe you don’t know how to answer some of these questions, especially if you are still not looking for a job, but it’s important to do some research first. If you can’t find any “official” information, tech communities often do surveys and publish the results. Reaching out to local tech communities that work with underrepresented groups is a great way to find mentors and like-minded people that can support you through your tech career. Take your time to reflect on these questions before writing your answers. Also if you are a college student you need to submit your school calendar. Read carefully all the time requirements and reach out to Outreachy coordinators if you think there are any details about your school calendar that you need to discuss.
Take part in the contribution phase: Once your initial application is approved you will be able to see all the projects. Finding the right project for you is important and also very challenging. One can feel tempted to contribute to multiple projects but unless you have a lot of free time I don’t feel like it’s the best option. Smaller and more constant contributions are the way to go. The contribution phase is not about introducing huge contributions but rather an opportunity to interact with the community, learn about the project, and gain new skills. Definitely finding the right project for you is key and depends a lot on how much time are you willing to put into it and your current skills.
For more information about Outreachy go to: https://www.outreachy.org/
My experience at NetworkX during the contribution phase
If this is your first time contributing to an open-source project you may feel overwhelmed. Understanding an almost 20-year-old project like NetworkX can feel like it’s going to take forever but don’t worry I have some tips that may be handy for you during the contribution phase.
Learn about the project: Understanding the project is a process that may take some time. Don’t rush it! You don’t need to understand the entire codebase in a day. The most important things that you need to know only will take you a few hours to go through: Learn about the project mission and values, community rules, and contribution process. In NetworkX all you need to know is here: https://networkx.org/documentation/stable/developer/index.html
Start contributing right away: You don’t need to understand every part of the project to make valuable contributions. Start small and use that experience to level up your contributions. At the beginning of the contribution phase, some good first issues are added. Work on them first and then start opening your own issues (Don’t forget to link your PR with the issues so they can be automagically closed). Also, record your contributions on the Outreachy website as you submit them. I only recorded all contributions at the end and that took me a lot of time. If you struggle to find issues or ideas for contributions here are my contributions at NetworkX: https://github.com/networkx/networkx/pulls?q=is%3Apr+paulitapb
It’s not just about writing code. What’s great about big projects is that you can explore many different things. Making contributions to different parts of the project shows that you understand the project on a general level and can be a valuable member of the community.
Don’t be afraid of the community! As a beginner, you may worry about the technical side of the project but understanding the community review process is key. Usually, communities want to grow and that means teaching new contributors about the project. It’s fine if your contributions are not perfect or if you need to ask questions. That’s the beauty of Open-Source communities! Also, don’t be discouraged if a contribution is not merged into the project. Maybe that was already suggested, tested, or deprecated. Take that as a learning experience and even that can give you some ideas for future contributions.
I hope this information helps you to start your Open-Source journey! The NetworkX team is waiting for your great contributions!
If you are interested in my experience during the internship you can find the second part of this blog here.