Experiencia de GSoC’21@CASTOR

Abhay Singh
Nybles
Published in
10 min readFeb 17, 2022

What’s inside?

For the next few minutes, you will be reading about some of my GSoC’21 experience with the CASTOR organization. Also, I will be sharing some roadmap that you can follow to get selected for GSoC in your first year and also some important things that you should keep in your mind while participating in GSoC.

About GSoC

Google Summer of Code is a global, online program 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.

If you want to learn more then don’t hesitate in using Google.

My Journey 😄

I divided my complete journey into 4 phases in which I will be sharing details like how I got introduced to GSoC, how I prepared for it, how I started contributing in CASTOR, and stuff like that. So let’s begin the journey.

Before Feb

The term GSoC was first introduced to me after the JEE Advanced, when I know that I am not going to get any IIT, I have to settle with IIIT-A only, so I was just surfing on YouTube and suddenly stopped on a video of Kunal Kushwaha who also completed GSoC in his very first year. I watched that video and got so much motivated that I decided to try for GSoC in my first year of engineering. Later on, in college, I came to know that one of our seniors Kishan Tripathi sir has also completed GSoC in his first year, so I got so much inspiration from him too. After this, the whole of January, I researched more about GSoC like what is the timeline, what I need to learn, how things will work if I got selected, and some other rules and regulations, and until the end of Jan, I had a pretty good knowledge of GSoC, so I decided to learn these two things: Java & OOPS so that I can start my open-source journey.

Feb + March

Whole Feb, I invested my time in learning Java and OOPS concepts. For learning java, I chose the CWH youtube channel cause I found his videos very useful and easy to understand. At the beginning of March, when I have enough knowledge of java, I started to take tours of projects of some previous organizations which were continuously participating in GSoC for the last few years and made Apache and Checkstyle my target organizations. I joined their communication channels and try to understand some of their various projects. On the 10th of March, Google released the list of organizations that were going to participate in this year’s GSoC. For 1 week, I was just looking over the various project ideas (according to my knowledge (java)) released by organizations, and trying to understand them. I also joined the respective organization's communication channel and tried to set up the projects locally. After this one week, the project that I decided to go with was DepClean because of the following reasons: I was successfully able to set it up locally (a very big achievement) and it was quite smaller than other projects so I thought it will be easier to contribute here rather than contributing in big projects. So I started to contribute to it through documentation. I added some quality javadocs to the project and due to my understanding of the project and the time that I was investing in the project, I was able to jump from javadocs to code refactoring and writing tests for the project. And by the end of March, I was able to point out bugs in the code and also able to solve them.

April

When I have some contributions and I know something about the project, I started to write a proposal for some ideas listed in the project idealist. I followed a template of one of my seniors and completed my proposal in just one week. It was not perfect, it has so many faults like it was too promising and also lacked some technical details of the project that I will be going to work on. But I continued and get it reviewed by some of my seniors and colleagues. After that, I send it to the organization for review. “Your proposal is very vague”, this was the feedback of my mentor when he first reviewed my proposal 😅. He suggested me lots of changes and updates and somehow before the deadline, I updated my proposal (added some more technical details) and get it reviewed again, “It is better than the previous version”, he replied. After the submission of the proposal, I was pretty sure that with the level of my contribution and proposal, I am not going to be selected. So, I have to show them that I can complete the project within the timeline. So, I learned some more new things and made some quality contributions related to features that I promised to implement in my proposal. After these contributions and interaction with the mentor, I was getting some hopes of selection. And then, on 17 May, at 11:20 PM that dream mail landed in my mailbox and that moment became one of the unforgettable moments of my life.

June + July + Aug

Up to this point, your 80% of GSoC has been completed, yes, that’s true after this point around only 5% of students are unable to complete their project, those who do nothing after getting selected, hence got failed, but 95% got passed which is the good part. Also, this phase is the best and most exciting phase of GSoC, you will be having too much fun while working on your project, you learn some new skills and techniques, and also grow your network with your mentors and other organization members. Attending regular meetings with the organization members is still one of the best experiences during GSoC. After this, there are two evaluations that you need to pass to complete the GSoC and after that, there is lots of 💰 too. Here I will not jump into the technical details of my project cause that will make no sense to some readers, so I am just adding a flowchart to give you some idea about how we work on technical (coding) stuff during GSoC.

So that’s it for my GSoC journey, hope you didn’t get bored. Now let's move to the section that how you can start your GSoC journey in your first year.

Roadmap 🚔

  1. Firstly, you should have an idea of what GSoC is, what we do in it, so go and take a tour of it here and here.
  2. Secondly, you should start learning a language or any development of your choice and interest and try to learn it around the medium level so that you didn’t get scared when you saw the very big codebase of various projects on Github. Also, you must choose the tech stack wisely, I choose java because of these facts: I was interested in android development and according to my research it was used in most of the GSoC’s projects, so I decided to go with them. Remember, the interest is more important here otherwise everything will go in vain.
  3. You should try to complete the above two points until the release of selected organizations, cause you are in your first year and there is a very high chance that you don’t have any prior contributions to any of the organizations, so it will require some time in making some quality contributions to the organization.
  4. When Google releases the list of organizations, then for 2–3 days try to read the project ideas of various organizations and shortlist some according to your interest and capability. Simultaneously, introduce yourself in these organization's communication channels, and try to remain active. Here active doesn’t mean that you are just sending messages continuously which don’t have any sense or asking stupid questions that are easily googlable. Use your common sense here and try to ask only valid doubts.
  5. Now in the next 2–3 days, when you have the list of the projects of your interest, it’s time that you finalize a single project according to your interest, your understanding of the project, your interaction with the community members, or your contributions. It is very important that you must stick to a single project otherwise you will be on two boats at the same time which is very dangerous 💀.
  6. Make sure that you complete the above two points in the first week after the release of the organization so that you can get as much as possible time for the contributions.
  7. For contributions, you should start from the very basics i.e. adding and improving the documentation. It’s the best way to start contributing to any organization's cause it helps you to understand the basics of the project and its flow of working. Further after investing some time in understanding the flow, look for some good first issues and code refactoring.
  8. This point is not a must for everyone, but if you have some time then look to make some quality contribution cause these are the things that you are going to use in your proposal and your mentor is gonna impressed with them.
  9. By the end of March, you should start working on your proposal and try to complete it within the first week of April so that you have one more week for review and updates. Here are some example proposals from where you can get an idea of how we should write a proposal or what are the key things which are must in a proposal. Also, while writing a proposal, if you are not able to do any contributions then no worries, but at least try to understand the flow of the code on which you are going to work simultaneously. It will also help in writing the proposal more precisely.
  10. Now, the post-proposal time is very important and crucial for you guys. Since, until now you are lacking some quality contributions, so try to capitalize this time as much as possible. Invest your time as much as possible in the project and do some quality contributions to get the attention of the mentors and prove to them that you are a potential candidate who can complete the project.

That’s it, now if you made up to this point then hat’s off to you, and hope for some positive results. Also, this is an ideal roadmap, and you know that very rare ideal things happen in real life so at any point if you are left behind then do not let yourself down, you can still give your best and I am sure that your hard work will gonna pay.

Remember, if you didn’t try then you didn’t get success.

Golden points 🚀

  • In your learning phase, whatever you learn, just don’t go too deep or at a very high level, try to keep it up to medium level cause: It will provide you some more time for contributions, and if in future you face that hard stuff, then due to prior contributions and practice, those hard things will goona look easier to you and you will be able to learn those tough things in a very short duration of time.
  • Git and GitHub are some of the most important things during GSoC. If during contributions, you got stuck into some git-related problems then in learning how you can get out of this problem and then solve that problem, you will lose your very important and precious time of contributions. So, It is mandatory that you simultaneously learn Git and GitHub up to the moderate level in the Feb phase.
  • If you are a fast learner and you complete your enough learning part well before the release of organizations, then do utilize that time. Try to make some target organization i.e. look for some organizations that are continuously participating in GSoC for the past 3–4 years and also in common with your learning, if you got some of them then you should try to contribute to them or you can even invest time in understanding their projects.
  • Communication is the most important asset while working with communities, if you didn’t use it wisely then your knowledge will not gonna save you, you will get into some trouble. So, never try to disrespect any of the community members or contributors always be polite and gentle and try to talk to the point only.
  • Every year there are plenty of organizations who take participate for the first time in GSoC, and there are 90% chances that no one knows about that organization or their projects. So if you chose any project from these organizations then the prior contribution factor got eliminated in this case and every contributor become equal, so now it depends on you how fast and well you understand the project, how well you get bonded with the community, and also that how much quality contributions you provided to the project in just one month.
  • Never try to learn or understand the whole codebase, because it is usually very big, and some of the things are beyond your understanding, so try to focus only on that part of the project on which you are planning to work during your GSoC journey.
  • Last and most important, never lose your self-confidence, I know that during this journey various times you will be thinking that you are not capable of doing this and you should quit, but these are the times where you should not lose your hope, you should keep trying because overall you are learning and exploring and getting experience, there is nothing to lose, you just keep the good work continue.

Remember, failures are the best learners.

So that’s it, thanks for providing your valuable time. I hope that now you guys are all motivated and ready to participate in GSoC’22. So don’t waste your time and start your journey from this very moment. 👍 Good Luck! 👋

--

--

Abhay Singh
Nybles
Editor for

Love to innovate and build new things | Open-source enthusiast | GSoC'21 @CASTOR | Greedy person :))