How I crack GSoC 2022 @ PostgreSQL?

How I crack GSoC 2022 @ PostgreSQL?

And you can too!

What is Google Summer of Code?

“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.”

So I hadn’t heard about GSOC until last year when 3 of my college students got into it. I thought I was too late for it now. But you know what they say: never lose hope and will to do anything. So, I started doing research on what GSoC actually is. Well, it is an open-source development program started by Google to bring contributors and organizations together and provide them a platform to interact and contribute meaningful code that changes lives.

Here are some links that really helped me in my research to understand the program better.

Student Guidelines: google.github.io/gsocguides/student

Homepage: summerofcode.withgoogle.com

FAQ: developers.google.com/open-source/gsoc/faq

What is Open Source? And what does contributing to it mean?

“Open-source software is code that is designed to be publicly accessible; anyone can see, modify, and distribute the code as they see fit. Open-Source Contribution involves contributing to the development or improvement of open-source software using Github, bitbucket, etc that offer the distributed version control and source code management functionality “

For me it is about collaborating in teams, controlling versions of your projects by handling commits, and creating pull requests to merge your code to existing repositories of organizations. I believe one can know a lot of tech stacks and have quite a few good personal projects. But the true sense of how software really works comes from open-source; when your code is accepted only if it follows industry-level guidelines and accepted standards; is refactored, modularised, and efficient; and most importantly passes GitHub checks added by the organizations on their repositories.

Find your Match!

After thorough research, My Journey started as I had instilled a passion for being a part of it. Something that I really wanted to come true for me. So, I decided to apply and started preparing in Jan 2022.

So my search for the right organization began. Firstly, I would love to share this comprehensive GSoC organization search platform with yearly statistics of all the projects of every organization ever to participate in GSoC along with multiple filters that help you find the right match for you.

Now I decided upon the parameters of my search, to find the organization that I would love to work for. Here are the parameters that helped me and I think they will help you too

1. Find the technology you would like to contribute in

This could be anything, some tech stack you already know or maybe some technology you don’t know of yet but want to learn. Whatever it is, it should be gripping to your interests so that you are motivated to learn it. The filters on this site will come in handy.

2. Look at their Ideas list

Every organization presents its ideas list in the GSoC organization section, going through it is a must. You understand what the company wants from you. Though you can propose your own idea. But working on their ideas list is better in my opinion because you already know that they “need” this feature.

3. Organization’s Mission and Vision

This is important to ignite a passion in you as a human. When you know that your code will be affecting lives and bring about a positive change that you want to see, then you would have the right intent and spirit to work.

Some thumb rules to keep in mind here.

1. To start with you can shortlist any number of organizations, but reduce them to at most two. You are a human and can not contribute to more than 2 organizations without being unfair to them. Your attention won’t be undivided and you won’t get time to take care of yourself and manage other aspects of your life.

2. Don’t Be afraid to ask for help. Asking for help doesn’t show your weakness or lack of understanding. It shows that you tried, and don’t want to waste further time. It means you acknowledge the intelligence and knowledge of other people in your life and truly know how to collaborate.

3. Next, Get Stuck? Don’t Quit.

Get Stuck? Don’t Quit

The first organization I came across was Learning Equality, Its mission of providing education to the unprivileged got me in grips. After investing quite a lot of time in it, I couldn’t run their code on my laptop due to dependency-based issues. I liked their mission and wanted to contribute, but I had to look for other options.

I briefly looked at OpenWISP but soon got demotivated as the project I liked required routers that I couldn’t arrange in college, just to begin contributing to the code. Also, I am not that huge a fan of Computer Networks.

This was when I felt stuck and my dream sliding away. Disheartened, I decided to take a day off from GSoC. That’s when an angel of a friend suggested PostgreSQL to me. I was looking at the organization and started getting promising feelings from PostgreSQL as I have an interest in DBMS. I found their ideas page wiki.

That's when the Universe also gave me a sign. I landed on the ideas wiki, it showed ideas from 2021. I refreshed the page, and the site was updated at that very moment with the idea list for 2022.

I felt just right. I felt a connection. I liked PostgreSQL as an organization and the idea of contributing to something that I used in my projects was profound. I like my life organized therefore I loved DBMS when I was introduced to it through my college curriculum. The idea I shortlisted required a tech stack that I loved to work in. And the mission of PostgreSQL; to provide an open-source object-relational database system with a multitude of undeniably important features like a variety of Data types, Data Integrity, Concurrency, Performance, Reliability, Disaster-Recovery, Security, Extensibility, and most importantly as per me, the ease of use and seamless integration with just about any technology is something that I deeply align with. It was a match and I rejoiced.

The next day, the sun shined a little brighter. I understood the project, conducted relevant and necessary research, cloned the main repository to my system, and started making sense of the code base. Now I felt ready and prepared, so I got in touch with my mentor.

Increase your Odds of Selection; The Personal Touch

Humans work better when they trust each other, and to build it we need interactions. You need to give someone else a reason to trust you. In open-source, your identity is your code and the PRs you make, but that is not enough to know and trust you, for that, you need to go out there, talk, and connect.

It is a must to connect with your mentors. Every organization lets you know who the mentors are and how to connect. As for PostgreSQL, every project in the idea list was mapped to a potential mentor and there were mailing lists and slack channels to connect with them. I connected with my mentor on slack.

Remember conversations are powerful, they make you stand out and if a mentor is conversing with you, then know that they are not free and their time is important, so if they are giving you time, consider it an investment in you. Example: My friend told me that he applied to GSoC and wasn’t selected, he asked the mentors why? They said that he and another candidate were equally good in terms of skills, knowledge, experience, and proposal, it is just that the other guy was more connected and had already started working in the right direction. In Brevity, he was more visible.

But what should you talk about? You can talk about yourself, your approach, code, doubts, progress, etc, and give them reasons to choose you.

But it goes without saying as important as it is to connect with the mentor, you are your code. To understand the codebase like it is your own project from scratch and contribute to it in the form of PRs like bug fixes, new features, and documentation changes ( though not given value over real code change). Most organizations have issues marked as ‘good first issue’, that’s where you can dig in, to begin with.

Note: If you don’t know what PR is or how to go about the proper cycle of contributing your code, then you can check out this helpful guide to make your learning process smooth.

The Proposal

This is the most important document. It summarizes all your efforts and hard work. It is the final proof of your work and clearly, it has to justify all the time you have put in preparing to crack GSoC.

Some pointers to make your selection inevitable:

  1. Start making it when you have finalized your organization, even before you have cloned the codebase

  2. Be thorough and iterate it with every other thing you do related to the project.

  3. There is no fixed format so look at other people’s selected proposals. I found this resource created by GDSC TIET very helpful for the same and I used it to get inspiration for my proposal.

  4. Once you have completed the first final version of the proposal, get it reviewed. Therefore it is important to finish it on time, so you can get feedback and incorporate those valuable changes in your proposal when you still have time left. My approach to getting reviewed was like so:

    • Completed the proposal on time covering all the crucial aspects.

    • Asked my friends to proofread it. Rectify language-based errors at this stage.

    • Next, I asked my mentor to review it. Incorporated the changes.

    • PostgreSQL is also thorough at their end and asks you to mail the proposal to them before submitting it on the GSoC portal, this is exactly what I did, got some inputs that were unnoticed to me and added them.

    • Finally submitted on GSoC portal after getting approval from PostgreSQL.

My mentor exclaimed that my proposal was one of the best ones they came across in a while. You can find my proposal here.

Ending thoughts, giving your best, surround yourself with people who truly want the best for you, and then just hopefully wait for the results. And even if you are not selected now, know that you have grown and stand a better chance of selection next time.

For me the result was a happy one.

WhatsApp Image 2022-05-22 at 11.48.31 AM.jpeg