My GSoC Journey - Part 1

What Is Google Summer of Code (GSoC)

Google Summer of Code(shortly known as GSoC) is a global, online program(organized by…..you guessed it! Google) focused on bringing new contributors into open source software development. GSoC Contributors work with an open source organization on a 12+ week programming project under the guidance of mentors. You can think of GSoC as an incubator for nurturing future open source developers.

Why is Open Source important?

Open source software is code that is designed to be publicly accessible—anyone can see, modify, and distribute the code as they see fit. This makes it ideal for developers who want to contribute towards making a small but significant change in the world of softwares, but might lack the credentials, time, resources or just plain will to go through the grueling process of first getting employed by a software firm. Open source organiztions, are genrally helmed by engineers, who are extremely practical(even to a fault sometimes ;) ). Thus, Open Source slices through all the social constructs and procedural beuracracy invovled in getting a job in a software firm, by giving anyone with an idea and the will+ability to bring that idea to fruition, a chance to contribute to these softwares, thus working towards making it a better software for everyone. Matrix Open Source Software Meme

Why did I participate in GSoC?

Well…there a bunch of reasons for this:

  • It seemed like the natural next step in my journey as a Computer Engineer. I have just finished my IV Semester, got a few good projects under my belt, taken part(& won) in a few competitions, ad GSoC feels like the right way to now start getting into the world of free software!
  • Peer Pressure 🙃 : The Good Kind
    My college (VJTI, Matunga) had a staggering 24 GSoC’ers in 2022. 21 of these were from SRA(Society of Robotics and Automation) a club that I’ve been a very active part of. Hence, being surrounded by people who were also working towards getting accepted in GSoC definetly helped me in doing the same.
  • I felt the need(nay obligation) to contribute to the open source softwares that had helped ME in my few budding years of being a Computer Engineer. When you get to use and interact with the communities of something as good as Linux, OpenCV, ROS, VLC, React for free; you will feel the same way, trust me ;)
  • The prospect of being mentored by someone, much much more proficient than me at such an early stage, while also getting paid to do so !!
  • College Work just doesn't seem enough
    This might be exclusive to just me, but I was not satisfied with the challenge offered by the assignments and projects in my college curriculum. Hence, GSoC also fills that gap of trying out something outside of the normal confines of my college,

How to start with GSoC?

  1. Find an Organization:
    According to the timeline of GSoC 22’, the organizations were announced on 7th March, 2022. However, there are a few legacy organiztions (like CERN-HSF, Red Hat, OpenCV, Julia, etc.) that have been participating in GSoC for long, hence aiming for one of these orgs(if you like them!) and starting even as early as Januaray (i.e ~4 months before the application period) is a good idea. It will also give you time to browse various orgs and settle into their communities. Although because of some other commitments, I was not able to start properly working on GSoC till April (i.e. a month before the application period :0 ). So, don’t do as I do but do as I say.
    The org which I chose was Gnuastro which is part of the umbrella org openastronomy

  2. Finding a Project:
    Every org participating in GSoC will have an ideas page with many prospect ideas, also some unfinished ideas(or ideas requiring enhancement) from previous GSoC’s. I combed through the ideas page of openastronomy and found a project that piqued my interest called GNUAstro Library in Python.

  3. Finding my Mentor:
    I followed the links to the Element(Matrix) channel of my org, where I introduced myself and was greeted warmly by my mentor with help regarding the GSoC Checklist that Gnuastro had. This step might be different for different orgs. Some may have you commit some code my creating a Pull Request(PR), some have you solve tasks, some may have no necessary criteria except for a proposal. The aspect common to all orgs/mentors is showing your enthusiasm for the project, and to learn. Also having a few(or even one in my case) commits to the org before submitting the proposal will go a long way!

  4. Making the right proposal
    The proposal submission deadline in GSoC 22’ was 19th April. So I had less than a month post joining my org to submit a proposal. To be frank, this was a tough and hectic period(amplified more by all my friends also being in the same state). This is where the helpfulness of my mentor and the push from my college seniors really pushed me. I built my proposal by first carefully studying previous year proposals, while these are not publicly available (and some GSoCers even refuse to share them), there are many great resources maintained by GSoCers to help the new aspirants. I used the Proposal Archive to study different proposals, for varied orgs, theor structure, content, concisivness and balance between technical and theoretical language.

Conclusion

Luckily, I must’ve done something right, as I did get selected for Gnuastro(openastronomy) in GSoC. And will now be spending my summer(12 weeks) contributing to the same under the guidance of my mentor!