I got selected for GSoC’21-My open-source journey

Sushmita
11 min readJun 12, 2021

Hello everyone, if you’re here reading my article I’m pretty sure you know about GSoC. If not, I’ve got you all covered pretty well🤝🏻. In this article, I’ll be sharing my whole open source journey and how I got selected for GSoC’21 and meanwhile clearing some misconceptions as well🤓

So sit back, relax and enjoy me reciting my story and note down some points that you think might be helpful for you if you’re a beginner in open source or want to get selected for GSoC.

Let’s start with an introduction about GSoC-

Google Summer of Code (GSoC) is a global program that matches students with open source, free software and technology-related organizations to write code and become part of these communities. Putting in simple words, it is a program to promote open-source culture.

  • Many open source organizations come up with their project ideas which are shortlisted by the GSoC team.
  • The students make proposals to these ideas or propose their own projects(depends on the organization) which are then shortlisted by the organizations and assigned mentors to them by the organizations.
  • The idea is to get students involved in and get familiar with the open-source community and help them to put their summer break to good use.
  • And…offers a decent amount of stipend to the students!!

Let me first say this-

GSoC is a program to promote open source. It is not a certification given that the student is an awesome developer. Nooo, a Big NO.

I’m saying this because of the current hype which people have about GSoC. Recently, I saw an opening for a web developer for a very known Youtube Channel where they asked in the form if you’ve ever been selected to GSoC. That time I wasn’t a GSoC student, even I’ve been selected now but I’d never support such eligibility criteria. Moreover, I’ve also seen people asking “How to crackGSoC?”. No, please don’t think like that. GSoC is a program to promote open-source and I cannot emphasize this more “Open Source is all about Collaboration, not Competition.”

Now, let’s talk something about Open Source

What is Open Source?

There are tons of resources out there that will define it a thousand times better but I’ll redefine it once for you-

Open Source Software (OSS) is the software whose code is open freely to see, modify and reuse by anyone in the world.

  • You can fix some existing bugs or add a new feature to the code and make a Pull Request (ask the OSS maintainer to pull your code to the actual software codebase)
  • If the maintainer approves your change and merges it into the main codebase, your code becomes a part of the software and users of the software will be able to access your feature or the change.

The best thing about Open Source is the experience to work on a real-time project with actual users and learn about the best practices followed in a production-ready code. You get to know how big organizations work and how code is deployed, the unit testing and integration testing, continuous integration and continuous operation (CI and CD), dockers and containers and many more things.

The joy of getting your PR merged into a project being used by millions of users is priceless.

How do I choose organizations to contribute to?

If you’re a beginner, knowing which organization to start your open-source contribution with can be quite intimidating. There might be times you see the project and you don’t really know what they’re doing or what is the purpose of this project. The large codebases scare you, I know. But, exploring is the only key to overcome this. Explore the projects, not just to contribute, but to know what all is going around in the real world. Till now, you might be only working on your personal projects but now is the time to get your hands-on to real projects. After exploring quite a few projects and reading their documentation, you’ll be able to understand some of them. Pick some projects or the organizations which match your skillset the most. If you’re looking for GSoC, you can always find the past organizations from GSoC archives. Most of the organizations are the same every year. So, you can try searching for them by your skills and explore some of them. Pick 2 or 3 organizations and be consistent in your contributions.

Follow these Cs:

  • Be Consistent: Consistency is one of the most important factors in open source to make you stand out.
  • Be Collaborative: Collaboration is the other most important thing in open source. Be collaborative with other fellow contributors. Try to help them and ask your doubts. Interact with the community as much as you can.

How to understand large codebases?

This is the question I think everyone starting out to open source might have in their mind. The codebase is huge and even more, it is scattered in multiple projects. Some projects depend on other projects in the same organization. How to understand them properly? Some questions are like — I know what change I should make but I cannot find the file which needs to be changed. These are some of the questions which may pop up in your mind if you’re just starting out. I had those same questions too. So, I am sharing few things which I followed and you can do the same if you feel they are helpful.

  • First, you need to know that “You should not be an expert in your skill to start”. I see many folks saying I need to master the XYZ skill first to start contributing to it. No, just start with whatever you know. You will learn while doing it. I’ve learned a lot of new things which I encountered while contributing. And if you know, I’m contributing to RoR codebase in PublicLab for GSoC and I still don’t have much experience in ruby and I’m still learning the skill.
  • Second, If you don’t feel confident enough to start. Look for already merged PRs and the issues they resolved. While reading those issues try to think about how you have approached if you had been assigned the same issue. And look for that merged PR to understand how that contributor approached the issue. You’ll really learn a lot and feel a bit more confident that you could’ve resolved that too. I know most of the issues are different and new but you’ll know how to approach them and will feel more confident.
  • Join the community channel. It may be gitter or zulip or IRC or any other messaging platform. You’ll find the link on their documentation or wiki pages somewhere. Do interact with them and attend the community meeting if they have.
  • Don’t directly jump into the code and start scratching your head. First, start by setting up the project following their documentation and if you find any issues installing the project, feel free to reach out in the community chat and there will be someone to help you out.
  • Start with good first issues and don’t just stick to them. Take up more complex issues each time and make sure you’re not just repeating the same thing but learning something new.
  • Last but not the least, use the ‘search’ tool of any IDE you like. I’m assuming you must be using some code editor or IDEs if you’re working on such large codebases. So, just go out and use the search tool more often. It is so underrated I believe. But, for me, I cannot imagine my life without this feature. If you don’t know where to make the change, just know the keywords or identifiers you’re looking for in the project and search them in the whole project. Thank me later!!😎

Some useful tips to get selected for GSoC

  • Choose your project wisely: Don’t just pick up the easiest ones. Make sure that the project is adding some value to that organization and has some future scope. Also, there will be many other contributors choosing the easy one.
  • Research, Research and Research: Understand your project deeply and spend some time doing a good amount of research about the project. Mention the things which you’ll need for completing the project. And always feel free to reach out to the mentors where you don’t understand something. The amount of effort you’ve put into understanding the project must reflect in your proposal.
  • Start early: Don’t wait for the organizations to be announced to get started. Start looking for past participated organizations and start early. Even if your chosen organization doesn’t get selected you’ll have enough experience in the open-source and you can also mention that in your proposal and it really adds up the value to your proposal. So, it will never go in vain. If you’re thinking to apply for next year, I would say start now.

My Open Source Journey

I started my journey back last year in 2020. My first encounter to open source was not something that I directly started contributing to a big organization. It was just a group project with one of my friend where we were collaborating on Github and that was the first time I learnt about git and VCS which is the most important prerequisite to start Open Source I believe. And then, in my last summer internship, we developed two open-source python libraries and I got to learn more about collaborating with many people on a project and taken my steps furthermore in learning some advanced git commands.

Afterwards, I got some motivation from my friends and mentors about open source and the only thing which was on my mind to start contributing was to get my work acknowledged. I wanted to contribute to a real-time project which is being used by people and I’d show everyone that this feature is developed by me. Till then, I was only doing my personal projects which had no real users. And being a student from Tier-3 college, it is very unlikely for me to get an internship at any big organization without much experience (which I don’t know why is required for a fresher). But, open-source is the best thing to learn and to get experience on a real-time project with the production level code without getting into the organization. Because, anyone can contribute to open source, I repeat anyone.

Then, the hacktoberfest played a major role in taking my steps ahead. That was the first time I contributed to any big organization and learned more about the actual production-level code. I got to know about the various testing methodologies and CI and CD. Then I started looking for some organizations which were aligned to my area of interests and matched my tech stack. I started with setting up their projects first and joined the community channels of those organizations and started attending their weekly meet and interacting with them. It was such a nice experience to meet developers all around the world sharing similar interests and collaborating on a project. And these open source communities are really inclusive believe me and people are so nice I’ve observed in these communities.

GSoC was never on my mind since the beginning maybe because I too had those hypes in my mind but I wanted to apply for Outreachy (another open-source program to encourage underrepresented communities). As it does not require any open source experience before its contribution period however it is always good to have some. In January 2021, when Outreachy initial applications were out, I applied for it with some guidance from my senior who had been an outreachy intern in the past year. I started looking for past year projects and also kept a close eye on the current projects which were being announced continually on their website. And that was when I looked into PublicLab for the first time(one of the best decisions).

The one thing that I was really impressed with PublicLab was that it is extremely welcoming for beginners and newcomers. They have FTOs abbreviated for First-Timer-Only issues which requires you to only know how to create a Pull Request. People who have never contributed to any organization before can also make pull requests and start contributing. If you know ruby or are interested to learn, I cannot emphasize more to check them out for once. The mentors are really appreciative and encouraging. When I started contributing to Public Lab and got reviews on my PR, the appreciation I got was enough to make my day. On 16th March 2021, 3 of my PRs got merged and I was overwhelmed by the happiness I got after getting them merged. I was eager to see the changes I made published on the live site and on 17th, the changes got published, and I was happy to see my changes being publicly available and also showed them to my friends. I also attended the presentation by past outreachy interns @ruthwaiganjo and @noi5e where I interacted more closely with the mentors. Then I started looking for more complex issues and I still remember when I struggled for about a week on just one issue. Whenever I thought I was close to the solution, I was punched on my face by the code and I was left with nothing and starting over again. After a lot of struggling and scratching my head, I finally managed to create a PR and soon got it merged for which I got some appreciation from my mentor. It was no more than getting a winning trophy.

On 29th March 2021, I was eagerly waiting for the results of my initial application. But to my disappointment, my initial application for outreachy did not get approved due to some time commitment eligibility issues which they mentioned which were not true as per their eligibility criteria written on the website. I felt really hopeless but decided to apply for GSoC with the same organization. But I wasn’t expecting even a bit this time. The next day, on 30th March, I got a mail from Goldman Sachs that I had cleared the 2nd round of their ECHS and my interview will be scheduled in the upcoming week. I wasn’t expecting this but somehow I made my mind to try my best. This is another long story I would tell you some other day. But, on the interview day, the worst thing that can happen during an online interview happened to me. I got disconnected from the call in the mid of my interview when everything was going well and also maybe due to some other reasons too, I couldn’t qualify for it. I had given all my time preparing for the interview that week and the deadline to submit the GSoC proposal was approaching. I was left with no time but somehow I submitted my proposal on the very last day and in the very last hour of the deadline. I had initially thought to propose for two projects in the Publiclab but due to shortage of time and some other factors, I only submitted a proposal for a single project but I did some good research and took my whole time whatever was left to understand and write my proposal. But as stated before, I was really hopeless this time and was expecting the least out of it.

On 17th May, at the time of results, I opened my inbox just to check if I had received any rejection mail and to my surprise, I saw Congratulations written in the subject of the mail on top of my inbox. I opened it and took a screenshot and sent it to my friend to double-check if I was reading it correctly.

And it said “GSoC 2021: Congratulations, your proposal with Public Lab has been accepted!”. Yayy!!!

At last, I just want to say I’m not an expert. No, I’m just a student like you and a beginner in open source and I’m really grateful to GSoC which is helping me to take my steps ahead in the world of open source.

Thank you, for sticking with me till now. I hope you had a good read and some of you might have learned something and got enough motivation to get started with open-source.

May the FOSS be with you.

--

--

Sushmita

CSE | GSoC’21 @PublicLab | Pythonista | Open source enthusiast