My Pre GSoC Journey
In my previous post, we discussed about Open Source and how GSoC as an initiative by Google is enhancing Open Source culture and projects.
In case you haven’t read the previous article, check it out here GSoC-A Global Program Enhancing Open Source Culture
After getting an introduction to GSoC, you might be enthusiastic to know more about cracking GSoC specially in your first attempt.
Don’t have a tag of prestigious institutes like IITs, NITs or BITS Pilani ? Aspiring to take your first step for a great engineering career and for a successful selection in GSoC ? You are at the right place!
In this post, I will be explaining about how I managed to crack GSoC in my very first attempt and how I overcame all the challenges among students from very prestigious institutes also competing for the same .
GSoC Workflow
Before proceeding further I will introduce you to the GSoC workflow, and what exactly you have to do in general steps
Select an Open Source organization (GSoC organization).
Contribute to Open Source organization.
Select GSoC project to be applied.
Prepare concrete strategy for implementation of GSoC project. Prepare GSoC proposal on the basis of initial research.
Apply for GSoC at official(GSOC) website.
How to Select Right Open Source Organization
Mentoring organizations selected by Google depends on a variety of major criteria. In any case you have applied for any single organization, and it doesn’t get selected by Google , you will be left with bare minimum time to prepare and apply for any other organization .
To encounter this, many students follow a general strategy of applying to atleast 2 to 3 organizations for their selection.
On the other hand, working with multiple organizations written in different technologies and preparing for multiple proposals can lead to tremendous amounts of hard work along with the possibility of rejection too .
In my viewpoint, I prefer a big no to this strategy. In my case, I focused more on my interest and accordingly I analysed back to back frequently selected organizations in past few years and settled up with the CircuitVerse and started my journey with CircuitVerse.
Yes!, one single organization is enough. You can figure out organizations selected in 2021 here.
Google also maintains a list of selected organizations in previous years through their archives.
In my opinion you can create your own curated list of organizations and select a single one based on your interest and domain of interest you want to work upon. You can also make use of search by category tab to sort them according to your domain of interest.
Be a Pro
- Use GSoC Analyser for more automated analysis.
- Organizations which frequently get selected in the past have major chances of getting selected in future too.
- Organizations having more slots for projects offered by Google hold better chances of its selection in future.
- Interest Matters! Select organization your are interested with. I wanted to work with JavaScript, consequently CircuitVerse Simulator belongs to my core interest.
-
You will hardly match all the skills required for contribution to any organization. Don’t be afraid, Just Start!
🙋♂️ I never worked with Rails before but learned it throughout the process.
Congratulations! You have completed your first step of the GSoC Journey 🥳 🥳.
My experience after joining mentoring organization CircuitVerse
I started contributing to open source in order to level up my coding skills and keeping GSoC in mind I followed the right strategy parallely.
After joining CircuitVerse I got the opportunity to meet awesome engineers and students from IITs, NITs and awesome people from other prestigious institutes of India.
I also get an oppurtunity to work with professor and engineer expert in digital electronics and belonging to prestigious foreign universities. Yup! It was a great learning experience for me 🤩
Selecting an open source organization was a matter of my interest and technologies, i liked to spend most time with. Consequently, I started working for CircuitVerse to begin my coding journey.
How to Contribute to Organizations and get started with Huge Codebases
After joining an organization on their Slack channels or IRC channels (Depends on what organization prefers for conversation), a great way to begin is setting up a local development environment.
After gathering more information about codebases, organization maintain and technologies used in them, you can begin with your contributions.
You can also ask mentors and collaborators for good first tasks to assign you so that you can start working on them. Initially, it is important to start with easy tasks to get familiar with coding conventions of organization.
Yes! Reading all the documentation and guidelines provided by the organization is an important aspect for quality code generation.
You can start contributing in terms of solving existing issues, technical documentation, finding issues and suggesting improvements, introducing new features etc.
Remember! Past contributions are considered very important and play a vital role while evaluating your project proposal.
Be a Pro 😎
- You can’t understand the whole codebase in a day, instead pick up issues and start learning and working on specific parts of the codebase related to the issue only.
- Follow the strategy of solving easy, average and then hard issues. Although, solving good enough complex issues can make your proposal stand strong as compared to others during evaluations.
- When you get an opportunity to implement any feature from scratch, grab it up and start.
Such development of features will not only make you stand different from others but also present great exposure of your capabilities in front of the mentors.
- Also focus on minor frontend tasks
My Experience and Strategy during Pre GSoC Contribution
I started slow, with easy tasks and ended up with development of different important features from scratch. When I started contributing to CircuitVerse I was not much familiar with Rails. With the progress I got familiar with Rails, MVC architecture, a lot of gems, rspec testing, behaviour driven development, API’s, JWT’s and a lot more.
I always either tried to find and fix issues on my own. I used to solve easy to solve existing issues, starting smaller is necessary in order to get familiar with coding conventions and get initial exposure to huge codebases.
Levelling up every next time is important though! In the pre GSoC period I focused on developing as many features as I could do in minimal time.
After the release of the ideas list, the next 45 days before the GSoC application period were decision making. This period has to be used very efficiently in order to give the best possible proposal along with completion of GSoC qualification tasks held at organizational level.
When students belonging to prestigious institutes IITs NITs…. are in the same race
Doesn’t matter which organization you work with or which project you select to go with, you will always be finding students belonging to other prestigious institutes competing for the same project.
Here is the curative list of most accepted students from Indian and Foreign Universities for GSoC.
University | # of Accepted Students |
---|---|
Indian Institute of Technology, Roorkee | 48 |
Indian Institute of Technology, Kanpur | 27 |
International Institute of Information Technology, Hyderabad | 24 |
National Institute of Technology Karnataka, Surathkal | 23 |
Birla Institute of Technology and Science, Pilani (BITS Pilani) | 13 |
Indian Institute of Technology, Kharagpur | 13 |
Indian Institute of Technology (BHU), Varanasi | 11 |
University of Moratuwa | 11 |
National Institute of Technology, Hamirpur | 10 |
Amrita Vishwa Vidyapeetham, Amritapuri Campus | 10 |
University of Tokyo | 10 |
University Of Colombo School Of Computing (UCSC) | 10 |
As you can participate in GSoC atmost 2 times, competing with students who have already completed their GSoC one time or people coming from major technical backgrounds and from major premium institutes is hard though.😕
In order to stand strong while proposal evaluations I kept some key sections very strong
- Your proposed solutions for the implementation of the project.
- Your past contributions
- Regular working with organization
- GSoC qualification task
- Past experience
Apart from this, I helped other contributors to begin their journey with organization, participating in important discussions, suggesting solutions, reviewing others PR’s and giving opinions for betterment helped a lot to take up the edge.
In short it’s all about proving your own capabilities in front of an organization via contributions and different aspects.
One of the best ways to do this is always taking up tasks which are labelled as urgent or important and tasks which are most applicable in the sense of organization.
Whenever I got a chance to develop features from scratch, it was totally worth it to grab up fast and hit a bullseye!
From this you can conclude that if you don’t have major technical experience, giving valuable and applicative contributions to the organization and overall strong proposed solution for implementation of the project will be the key for you.
Some of my contributions that created great impact
Educational and business sites needs lot of announcements either it might be announcement of new product or a feature or a site maintenance announcement
Developing this feature from scratch gave me a full overview of codebase. While working on this, I worked with almost every part of the codebase. Initially I was not familiar with the codebase, still I managed to complete it by learning concepts parallely.
This feature includes :
- Creation of MVC model for Announcement feature.
- Admin Dashboard along with new, edit, update announcement panels.
- Authentication.
- Database schema and logic to load announcements according to their prefixed start and end dates.
- CSS wrappers for dynamic announcement banners and layouts.
- Writing RSpec tests for the features.
Hiring up big tasks in the learning phase took a lot of hard work but in the end it’s worth it though. Here is the feedback from mentor - 🤩
Moving to the JavaScript side, one of the major features developed was “Boolean function –> Generate Circuit”.
This feature belongs to **combinational analysis of digital circuits in which a user can enter any 8 variable boolean function and instantly the user is able to see an equivalent digital logic circuit on the canvas.
This feature includes -
- Generate circuit for any boolean function upto 8 variables.
- Minimize circuit using Quine-McCluskey Minimization Technique before its generation
- solving equation for different combinations/minterms and generate truth table for boolean function.
We all create whatsapp groups and invite members to groups via link. This feature implements similar functionality to add members in the group via group invitation link
This feature includes -
- DataBase schema for group_token and expiry criteria
- New groups get a token when created
- Real time group token generation for existing groups
- Functionality to add members to group via link
- Mechanism for automatic expiration of group token every two weeks
- Mechanism for handling events and generating proper responses for Url expired/token expired, invalid Url, member already present in group.
- AJAX functionality to regenerate expired token and update DOM
- UI
Including them I made almost 8-10 feature oriented PR and made a great impact on the mentors in order to crack GSoC. You can have a look at all of them in the proposals past contribution section.
Nextly, you are tested by the GSoC qualification task! Solving the GSoC qualification task as early as possible can create a great impact along with a strong and sharp proposal!!
The Research and Proposal
Before a month or two, official ideas lists are generated by mentoring organizations. And here starts preparation of proposal as well as research phase.
Ideas list is nothing but a list of projects the organization wants to implement in the upcoming GSoC. We can ask mentors of respective projects for a particular approach and start with our research phase.
Based on the proposed solution via research we have to prepare a strong proposal as well as pass the corresponding GSoC qualification task.
How to give a quality proposal
- Go through the community guidelines thoroughly.
- Ask for proposal template (if community provides) else design your own
- Study previously accepted GSoC proposal. Here is the link Link
- Be detailed while explanation but also concise
- At last check for grammar mistakes
At last you can apply for one of the most prestigious events held by Google. After a month of application review period results get announced on event main website.
Always give your best!
For more, stay connected!!!
Best Regards ~ Pavan