A Complete Guide for GSoC

·

16 min read

I keep getting DMs on LinkedIn, Twitter, Instagram about how to start with Google Summer of Code(GSoC)? when do I start contributing? how to select an organisation? as so on. After answering so many of them I decided to write this blog answering almost everything that you need to know about GSoC.

Even if you are a newbie and haven’t heard about GSoC, this is something that might interest you! This blog consists of an intro to GSoC, my two years GSoC experience and step by step guide of how you can possibly get selected! Plus there are some extra tips too.

I know there are a lot of articles/blogs on GSoC and you might be wondering what’s so special about this one? Well, this blog not only talks about how to approach as a student but also a perepective of how a mentor sees you as an applicant and what are their expectations. I was selected for GSoC 2022 and I am currently a mentor for GSoC 2023.

Before I start with some basics, I want to clarify some false perceptions.

What Google Summer of code is not?

GSoC is not an internship and should not be looked at as a way to earn money. It is definitely not something you should pursue half-heartedly or just for the sake of it, because the world depends on open-source software more than one might think!

GSoC is an initiative by Google that helps organizations connect with students and get them started with their open-source projects. It is a great platform to explore new areas, maybe discover a new career path!​

Let’s get Started

A brief introduction to GSoC:

The Google Summer of Code, often abbreviated to GSoC, is an international annual program in which Google awards stipends to students who successfully complete a free and open-source software coding project during the summer. The program is open to university students aged 18 or over.

That’s what you get when you Google “Google Summer of Code”. I guess it’s understandable. If not then click here for more info.

The Process

The process is quite simple actually, you just go to organisations and select the org that you want to work with. Then join their community channel(on slack or gitter, etc), introduce yourself, work on some stuff, send some PR’s(small changes of code) and when the time comes, send your proposal for the project you want to work on, and until the result arrives, you get familiar with the codebase of the project related repo. After the results are announced, if selected, you start working on the project. There are some evaluations too! You get stipend after passing each evaluation. And Finally, when you pass the final evaluation, you get the final and biggest stipend. Congrats! GSoC is over.

(If you don’t get it, Don’t worry! I’ll be coming back to this in a sec. But you can have a look here too.) One more thing, there is a timeline too, you have to follow the timeline for each step!

Well, now you know what is GSoC and what is the whole process. I am going to start my Story now! If u are not interested, you can skip this part and go directly to How you can do it part below!​

How I did it?

“It’s a really long story but I’ll try to keep it short.” Let’s start from the beginning.

The First Try

I first heard about Google Summer of Code during freshmen year of my college. Every C.S guy was like, have you meet that senior? He cracked GSoC last year, it’s super tough. And I was like — Is it like cracking IIT? Because if it is I am done with that Shit. I just prepared my ass off and ended up getting a lower branch. One of our seniors mentioned something about GSoC one day. He motivated us to take part even if some of us were new to coding at that time. I was a complete newbie and didn’t know anything about OpenSource. Still, I thought of trying and sent my proposal in an Org. The project was about working on an extension to import stuff from blender to Godot(An Open Source gaming Engine). I had literally no idea of how would I actually create an extension and import stuff from the blender.

The Result — I failed(Obviously 😏) but I learned a lot of things and that’s what it’s all about right?

  1. I learnt a bit of Blender. And I still use it.

  2. I learnt GDScript( Godot uses it) .

  3. I learnt basic Git/Github.

  4. Most important of all I knew what GSoC actually it, how to write a proposal and how to contribute.

The main motive was actually to prepare for the second time and that’s what life is, everything is practice until you finally do it!

The second try and this time, I did it!

Well, it was that time of the year again. And this time I was ready! It was December of 2022 when I first started searching for organisations. I spend days searching for organisations and their previous projectsbut I only found a few. Then I spend the next few days understanding the previous year projects and the workflow of the organisations. Also, I started sending introductory messages to these organisations. Sooner I lost my interest because I wasn’t getting any replies and without any help, I wasn’t able to understand the work-flow, so I felt lost and after a few days, I left these organisations and started looking for something easier. After a few days, a senior of mine suggested SymPy. He said that SymPy is good for beginners and he was right, they had newcomer issues on Github. I was happy for a while. I spent the next few days solving elementary issues and got that SymPy contributor batch. Well, it didn’t take me long to realise that I wasn’t alone there. It’s not like a piece of cake is waiting for me. SymPy was filled with a lot of contributors. My competitors had already merged a lot of PR’s in the main project and I had a meagre chance of succeeding. So, I got depressed and thought of taking a few days off.

It was mid of January and I was having all those negative thoughts again. Till now I had tried in few more organisations but I didn’t have any luck in finding something that I felt like I belong to.

But it wasn’t over yet. In February, new projects for GSoC 2022 were announced. Me and two of my friends sat down and started looking for our type of projects. It took exactly three days to go through each and every organisation and their projects. Following is a list of all the organisations I shortlisted for myself.

I spent the next few days introducing myself in these organisations and then crossed those which weren’t much active or there wasn’t too much crowd for participation. So, the next step was to start my contribution and then decide which one is better. From the beginning, people from SymPy(sub-org of Python Software Foundation) were very active and there wasn’t much crowd(maybe because it was the first time they were participating in GSoC). Plus the project I decided to work on, included designing on Adobe XD, which I was familiar with. After just two weeks of participation, I knew that this is the one for me, I stopped messing around and started putting all my effort into this one organisation. Later in March, I spent a week (day and night) to work on my proposal.

After that, I had an interview and that was it. I got selected 🥳.

BTW by the time I started on gsoc, I had only written simple HTML or CSS for my portfolio, so I was a bit nervous because the whole project was tech and programming based. But I spent the next two months practising(feb — april). I still remember there was a time when I wasn’t even able to centre a button😂, back then. But I did it, didn’t I?

If I can do it, so can you!

How you can do it?

There is definitely no straightforward or correct way to do this, but let’s discuss some key points that helped me and will help you too!

  • Finding the right project: You will be working on the project for a lot of time, so it is very crucial that you find a project that interests you 🤗. When you shortlist the projects you like (from organizations GSoC pages), look at how much competition you have in that project. I wouldn’t recommend a project if two or more people have already started working on your project. You’ll find more about how to find the right one later in this blog.

  • Contact the mentors: Read the code of conduct, if any, and contact the mentors accordingly. This may be through email or their chat medium (Slack, Gitter, etc.). One thing that you should always keep in mind that DO NOT directly ask your mentors or the community for guidance without any legwork on your side. Even if the community doesn’t seem to provide getting started directions do some Googling, try to dive into the code on your own. After doing all this, when you get stuck and ask them any question, DO NOT FORGET to state all the legwork you did. This will show them that you are ready to put in the effort.

  • Make a good impression: You need to make the community feel your constant presence. Complete some tasks before the proposal date and make sure to keep looking out for new bugs/features. If you want to start contributing and don’t know where to begin, try searching beginner-friendly 🤩 issues. Such issues generally have a “beginner” or “good first” or “newcomer” label attached. Ask the organization admins if it’s still open and if you can work on it. You can also create a new issue if you find a bug in the application. Submit a Pull Request suggesting your code that solves the particular problem and ask the admins to review it. In this way, you can start making others perceive your presence.

  • Have a decent proposal: The proposal should be ambitious, while also being achievable. It wouldn’t do if you just did something trivial, while overcommitting will lead to failure later on. Check out some successful proposals and use them as a reference while writing your own proposal. Here’s a link for some successul proposals.

How to Find the right project?

Before I go on, I would like to explain what I mean by the right project for you? GSoC is not just about earning money for writing some piece of code that you don’t care about! GSoC can turn your life around if done correctly. Don’t just look for projects that no one is doing. Look for something that you are interested in. Something that you can build your career on. For me, it was web-dev. Now when I need a job, I can proudly showcase my GSoC project and that will act as a big plus on my resume.

Alright, now you know what you need to work on. Let’s dive into how to choose the right project.

The Strategy —

Obviously there are so many organisations and inside each org, are so many projects. “Man! that’s a lot of work.” — I know. But I have a strategy that might come in handy. There are around 200 organisations every year(new organisations are added every year).

Now what you have to do is, go through each organisation one by one. There are shorter ways to do this, but you might miss a few organisations. I am assuming that you started around December. But even u start later like around February(after the announcement), you can still follow these steps.

Step1 — Click on the organisation, read its description, if you like it, write the name on a piece of paper.

Step2 — If you didn’t get what description is all about, go for keywords written on the left side of the description. If there is something that you like(eg- javascript) you can shortlist that organisation.

Step3 — After you have shortlisted organisations, you need to open Step2 — If you didn’t get what description is all about, go for keywords written on the left side of the description. If there is something that you like(eg- javascript) you can shortlist that organisation.

Step3 — After you have shortlisted organisations, you need to open these one by one and look for previous year projects. If you understand them — well and good, if not — that’s ok!

Step4 — Now, you might have 20–30 organisations shortlisted. If not, try to bring them closer to this range. The next step is to join their mailing list, discussion channels etc. That would be on Slack, gitter or maybe on Freenode. You can find these listed on the organisation page as shown below:

Step5 — After you join these channels, introduce yourself(very important) and ask the community where to start, they’ll send you some links to maybe read about the organisation and what it actually does or maybe a code of conduct. After you have done that, you can start solving a few basic newcomer issues(easy). And at this step, you have already realised which organisation is active, which ones are not. Which organisations are crowded and which ones are not? So, here you have to remove those who are less active and have a lot of people already working.

The reason I emphasise on not joining the crowd is that it creates a barrier between you and your mentor. And you’ll have issues communicating with your mentors (I‘ve been there and trust me it doesn’t work). So, try to look for organisations with lesser number of competitors.

Step6 — Alright! So, now you should have around 3–8 organisations. All of these are important since you chose them and this is the step where you have to spend the most time on. Now you have to keep communicating and maybe solve a few issues here and there. (I know this would be hard, but trust me its worth it!)

Step7 — Sooner or later, after you spend a few days on these organisations, you’ll know that some of them are not for you and this is the time when you cut them of the list. For me, it took almost a week. I was having so much fun in SymPy(The one I got selected in) that I decided to leave others and dedicate all of my time to that. And it was worth it. I hope you find yours too.​

Additional tips from a Mentor

  • The proposal does matter: There is a misconception that those students who have contributed a lot and have a good understanding with their mentors, don’t have to worry about proposals anymore, they are already selected. This is completely wrong; you still have to prepare a very good proposal. The proposal is like 50% of the GSoC. It can be a game-changer if worked on properly. I suggest you spend at least a week on your proposal.

  • Use a proper timeline: I have reviewed a lot of proposals and one thing I find very common is that the timeline is vague and short. Timeline is a very important part of your GSoC workflow. If you are selected you are expected do deliver results based on the timeline you wrote in the proposal, so try to be real and write exactly what you’ll be doing. Spend at least 60% of your proposal time on writing the timeline. Take reference to the proposals, I have shared above.

  • Consistency is the key: Doesn’t matter if you are well experienced or not, if you are not active in the community, your chances of selected are highly reduced. So, try to be active and chat at least once every day with the mentors.

  • Don’t be afraid to ask for help: Yes, you shouldn’t ask dumb questions(that you can google) in the main community channel, but it is important to understand what project is all about and don’t be afraid to ask for help if you are stuck with something. After all open source is all about collaboration, right?

Also, I recently came across an awesome resource, you can find out the statistics about the organization you wish to contribute to (how many projects are undertaken each year, and much more).

GSoC Data Analyzer

Frequently Asked Questions

1) What are the things I should know before I participate in GSoC? Let’s say I know nothing. How do I start?

You require almost no skills for GSoC, just a lot of enthusiasm and dedication to reach your goal. Every project requires very different skills, and often, these are things you learn when you start working on a project rather than learn beforehand. Look out for projects that interest you first. Some organizations are very supportive and might entertain candidates with missing skills and help them gain expertise along with GSoC, and some organizations have a strict no spoon-feeding policy.

Apart from all this, I will recommend you to have some basic knowledge about a version control system; git is the most popular one. Having experience with git will decrease the friction and learning about the programming language, and the technology stack of your dream project will do wonders for you.

At last, don’t forget 😑 to check the eligibility criteria of GSoC before you start working on a project. To get more info about the eligibility criteria, check GSoC rules.

But, if you are totally a newbie and have no idea what you want to work on, maybe start with learning git, then move on to a programming language, let’s say javascript. Then search for projects based on javascript.

2) Currently, I have an intermediate knowledge of python and now I want to start preparing for gsoc. So what programming languages should I learn now and what to do next to get selected in gsoc?

I think the above answer covers this one too. But still, I would like to add something. Don’t just focus on programming languages, focus on what projects you want to build. Try to get into a field like web-development or machine learning or app development, etc. Still, if you are interested in a programming language, let’s say Python and want to work on that. Search for python based projects on GSoC and try to understand them. Clone the project, mess with it, play with it and when the time comes to apply for such projects in the GSoC.

3) There are a lot of organisations, how do I choose which one to work on?

This whole blog is actually about choosing the right project. See above for this answer.

4) Shouldn’t we do the coding only once the project starts in the summer?

Not really, because the earlier you start, the better are the chances of the organization to choose you to work with them for GSoC as you have already displayed commitment and dedication in making the open-source community better.

5) What if the organization I contributed to from December to March did not get selected for GSoC? Would the effort go in vain?

Not really. The 3–4 months that you spent contributing helped you get into the flow of being in the open-sourced community. The new organization that you apply to will see your passion for Open Source and that itself is noteworthy. Also, when you choose the new organization for GSoC, do remember to start contributing to that organization with more intensity and frequency. This will help as there is a gap between the student proposal application submission and proposal shortlisting period. Your contributions can positively impact the verdict of the reviewers as now they can see a dedicated coder working tirelessly.

6) How to balance between academics and GSoC?

Mentors and the team you work with deciding upon a schedule. If you start preparation from December as suggested, the transition should be seamless. There might be times when work increases, but at important times like exams at the university, telling about it to your mentors ahead of time should give them enough space to compensate for your absence. The community is very understanding and you will adjust your time to fit in this as well.

7) What if I didn’t get selected? Even after working this hard?

Luck also plays a role in everything we do. Don’t worry if you aren’t selected this time. I wasn’t selected for the first time as well. But I learned a lot and I used that to participate the next time. You have nothing to lose here. If you get selected — well and good, if not — don’t worry, you learned a lot and also you can try next time.

Even if this is your last time. Don’t worry I have a whole list of Open source events just like Google Summer of Code. Click here.

Thanks for reading this far! Good Luck for your awsome GSOC journey ahead! 🥳 If you like it please let me know. I am sure I must have skipped a few things, comment down below and I’ll add it here.