Applying for Outreachy

Today starts my Outreachy internship with Mozilla! This will be the first line in my web developer resume. This program is such a great opportunity to get your foot in the IT door and to get some experience in the open source software world! I will not go into much detail about the program (you can find that on the official Wiki page), and proceed straight to my experience with the Outreachy application process, and maybe try to give some advice.

But first, just a bit of background. For the past 6 years, I have been working as a translator (mostly, I translated documentation for clinical trials and localized various apps and websites). Eventually, I got bored with the profession and decided to switch to something more exciting and stimulating, like web development. This spring, I started from HTML5, then I went on to CSS3 (I also learned some Bootstrap along the way), then stopped to make a little CSS project before taking a dive into JavaScript. I studied with “Eloquent JavaScript”, an excellent book that gives you a solid foundation in both programming in general and JavaScript in particular. This was the level of my knowledge when I applied for Outreachy.

The application process turned out to be a great learning experience. I deepened my knowledge of JavaScript (“Eloquent JavaScript” teaches you ES5, and for Outreachy I had to learn ES6 and even some “ES7”, with an emphasis on asynchronous programming). I learned React and Node.js. I explored npm and its dependencies installation algorithm, making sense of the difference between regular dependencies and peer dependencies (for example, I saw that dependencies tree probably has to be very carefully designed, otherwise it can easily get out of control). I found out what an API is, and even made changes in one. I studied an example of mixin usage in React. I got lots of collaborating and troubleshooting experience with Git and Github. I got the hang of continuous integration tools and learned how to connect Travis CI and TaskCluster-Github to a repository. I familiarized myself with Azure Storage and its Table Service. Finally, I got to work in Linux and OS X. Not bad for two months, eh!

As you can guess, I highly recommend applying for programs like Outreachy and Google Summer of Code. Even if you don’t get in, the application process alone can enrich you in many ways! And by “don’t get in”, I mean “don’t get in on the first try” ;) For all those who want to take the most out of the application process, I have this advice:

  • Before even starting to look at the organizations and their projects, decide what is it you want to learn and do. Don’t just think about it — write it down.
  • The earlier you start, the better. If the application period hasn’t started yet, use this excellent opportunity to explore the companies that have participated in the previous rounds.
  • Again — don’t wait for the application process to start, and set up the development environment if you haven’t already done so. Believe it or not, this process always has some trouble ready for you, and sometimes, you can spend days (especially if you’re running Windows). If you’ve already fancied an organization or two, go ahead and read their documentation for new contributors.
  • Don’t scatter your efforts. Concentrate on one or, better yet, two projects.
  • Remember that good communication is vitally important.
  • Obviously, if you want to learn a lot (and get into the program), one contribution will not suffice. Also, the amount of things you learn is the function of how willing you are to take a challenge.

If you’ve reached this point and found this article useful — please feel free to tell me about your plans and experience with Outreachy or similar programs! Do you plan to apply? Have you already done your internship? How did it go? Have you learned a lot? I’d be very excited to meet my readers (if there are any)!

Good luck!