Hope this can be helpful! Enjoy!
What is Outreachy?
“Outreachy helps people from groups underrepresented in free and open source software get involved. We provide a supportive community for beginning to contribute any time throughout the year and offer focused internship opportunities twice a year with a number of free software organizations.”
So, Outreachy project in practice is very similar to the very popular GSoC program, basically students apply submissions in order to possible work with some open source software for ~3 months and the process and timeline are very similar, you can get more details about it in the first link of this post. But one important thing to notice are the differences between these two projects:
- Well, the main difference is that Outreachy project is currently only to women (cis and trans), trans men, and genderqueer people.
- Outreachy has an application template (independent of the project that you’re applying for), which I particularly think is very cool, because you know that you’re giving them the exact information they need to know if you’re able to participate 🙂
- Outreachy also offers projects involving documentation, design, research projects along with coding projects – unlike Google Summer of Code. Which I had no idea actually, so thanks bee2502 for the correction and the information :)!
- If you want to apply to Outreachy and work directly with code you’ll need to have some merged code at the open source you’re applying for, but calm down, it can be an easy bug or a documentation issue, basically anything merged. Which I think it makes a lot of sense and makes appliers get to know a little more of the project they’re applying to work with! At GSoC you don’t have to do this. Don’t worry so much about it, is very likely that the community will be very pleased to help you with this, and you can talk to your possible mentor to verify if she/he can help you somehow!
- Outreachy happens twice a year: winter and summer :)! So maybe if summer doesn’t work out for you winter may. This happened to me, I wasn’t accepted, then applied at winter and got accepted, so… dream on!
As I said you can get more info at the first link of this post, and if you interested in applying for Outreachy, please have a look on it!
Some valuable tips
Here are some tips and things I learned with my experience.
About my experience: I applied for Outreachy summer 2016 and Gsoc 2016 and unfortunately didn’t get to work with the projects, and I applied again for Outreachy winter and I was chosen.
Some things I learned with these experiences were:
- Writing application, contacting mentors, getting to know the community: TAKES TIME! So don’t do it in the last week and just hope everything works out, it makes a lot harder. And know that those things will for sure take some time.
TIP: inform yourself about the schedule, and always try to do things like: writing your submission, applying your submission, talking to your mentor, knowing the community as fast as possible.Don’t understand me wrong, don’t do things rough-and-ready, what I’m saying is if you know that you want project X show interest in it, inform yourself about it as soon as you can, don’t wait some weeks if you can get things done now, because for sure starting sooner will improve your chances to get it! Also the sooner you apply the sooner someone can give you a feedback about your submission!
- Applying to a lot of projects is a hard thing to do, and harder to do it right.
TIP: Choose a target, don’t just write a lot of submissions because you can. This is a common thing to do: “I can apply for multiple projects, so why not? it will increase my chances :)”, but I’ll try to convince you that this is not the best thing to do. Yes, you can apply for multiple projects of multiple organizations, but it TAKES TIME, so instead of making 2 or 3 good submissions, try to work on one awesome submission! You’ll have more time to get to know the community, to really understand your project and to write a good submission.
- TIP: Talk to your possible mentor, don’t just assume she/he is always checking your submission or code contribution, get up, show some work! And of course, understand that mentors have some others obligations so don’t always expect quick answers and show some empathy.
- FINAL TIP: Don’t give up if you really want a project, just keep trying eventually some result will come from it, if not Outreachy some other sort of good result will, this I know for sure!
My Outreachy project Winter 2016
So, as I said I was accepted for Outreachy this winter, and I’m very grateful for this. I’m working with OpenStack, more specifically with Sahara.
There are a lot of definitions of OpenStack, so to be sure you’ll get the spirit of it, some definitions/introductions are:
“OpenStack is a set of software tools for building and managing cloud computing platforms for public and private clouds”
“OpenStack lets users deploy virtual machines and other instances that handle different tasks for managing a cloud environment on the fly.”
“OpenStack is a free and open-source software platform for cloud computing, mostly deployed as an infrastructure-as-a-service (IaaS). The software platform consists of interrelated components that control diverse, multi-vendor hardware pools of processing, storage, and networking resources throughout a data center.”
Of course OpenStack is a big project and can’t be fully described in just a few lines, You can get more details about it at the second link of this post.
If you search a little bit about OpenStack, you’ll see that OpenStack is actually composed of a bunch of smaller projects, like Neutron, Nova, Keystone, and so on… One of these projects is Sahara! “The sahara project aims to provide users with a simple means to provision data processing frameworks (such as Hadoop, Spark and Storm) on OpenStack.”.
In other words, Sahara aims to offer a fast and easy way to create clusters and manage them, run jobs (Hadoop, Spark, Storm) from different kind of data sources. Of course, Sahara offer these all through an infrastructure managed by OpenStack and the user doesn’t have to deal with internal details (unless she/he wants to).
So, given this context, I can talk a little bit about the project I’m working with Outreachy. As I said Sahara supports running jobs from different kinds of data sources, actually Sahara allows remote HDFS, local HDFS, Swift, and Manila as data sources. However, there’s no clean abstraction around them, and the code to deal with them is often very difficult to read and modify. I’m responsible for creating a clean abstraction of a DataSource that each data source type can implement differently depending on its own needs.