My Pre-GSoC Journey
I am new to open source, how to select a project? How to discover your interest in an organization? How to contribute? How to manage time? How to write a proposal?
There were many doubts I had in my mind when I started.
I made a lot of mistakes, I asked a lot of doubts, and with the help of my seniors and mentors, I was able to achieve it. Here is my story of the journey to Google Summer of Code.
What is open source and why to take interest in it?
As a college student, if you are an OS/Kernel Enthusiast or have a great interest in Embedded Systems or get fascinated by any technology that functions closest to the hardware, you would have felt that almost every practical knowledge is missing from your college syllabus. Being a bird of the same flock, I started looking for alternative ways to find the missing pieces of the puzzle, and then Open-Source changed everything for me.
Or consider you are working for a dream company named ABC. Can you ever show me the code you wrote for the company? Or tell about it openly, to the world? Most of the time, you will be working on a particular part of the development process of a product, and you will have no idea how does the whole thing work. Can you ever acquire that knowledge?
My first contribution to my organization was in their documentation. After I reported it, unlike proprietary companies, they asked me to prepare a patch and submit it so that they can apply the changes. This way, the authorship of my contribution, even a small one, was recorded by them, and it got published openly. I guess this answers all the questions I mentioned above.
What is Google Summer of Code (GSoC) for me?
Open-Source is an entirely different world. I see GSoC as the first and most significant step to becoming a part of it. It is a profound opportunity to get mentored by professionals while working on an industrial project.
I found my Organization.
It was around the end of September 2018, I started searching for Organizations. I made a list of organizations I was interested in. I made separate columns like:
- Topic — To specify their projects
- Genre — To specify the field, their projects are related to, like Web-Dev, Android, OS, Libraries, etc.
- Languages — To specify the programming languages required to do their projects.
- Chat — To specify the communication platform they are using like, glitter, mailing list, irc, etc.
This is how I figured out RTEMS as a perfect fit for me. They have the projects of my interest. They are dealing with POSIX, kernel, BSPs, Architecture specific codes and many more things and one can directly contribute in it during GSoC.
Other Operating System organizations don’t bring Kernel related projects. They usually bring supporting software related projects for their OS.
That time the list of participating organizations for 2019 was not released by Google, hence my seniors advised, to look for organizations that are not new, as they have a better probability to get selected. This is a good strategy but I got so much into RTEMS that I didn’t wanted to change my Org.
Although, later I found that RTEMS has been continuously participating in GSoC since 2008. They were are into the open source since the times when open source was not even in fashion.
I Joined the Mailing List
The first step was to join their mailing list and observe. As I knew zero about their OS, I joined each and every mailing list they had. Observing the activities of developers on mailing lists and paying attention to their discussions proved out to be the best way to learn.
Run Project on my System
The next step was to install their project on your system and run it.
As said, “You cannot be a developer, until and unless you are a user”.
I was successfully able to build RTEMS on my system and completed their initial task.
Though I had a smooth start but things were going to be tricky for me. In mid-October, while I was preparing for GSoC my batch mate invited me to join his team to participate in an Ideathon conducted by IIT Bombay Techfest. This was also a big opportunity, hence I joined him.
Now I had to code for the IOT project for Ideathon and also prepare for GSoC. Situation was, after a month I had to manage my semester exams and Ideathon. But I planned and managed my time. We won Ideathon, but I had to invest enough of my time in that. This caused a delay in my preparation but later proved to be useful.
I Introduced Myself in the Community
By the time Techfest and Exams got over, it was mid of January. I introduced my self to the community and got involved in discussions. This is necessary because interaction with the community is a major part of your learning. Also, it helps community to know judge your potential.
Meanwhile, we got selected for the final round in a Hackathon held by IIT Kanpur Techfest. I still remember that time. I was handling my GSoC, Techfest’s 2 projects and my mid-semester exams.
Being active in this case was getting difficult for me. So, I informed the community and assured them that I will be working passively for those few days, and submit the report at the end.
Selecting project for GSoC
By the project, here I mean the task for your GSoC.
One of the good things I did was I got connected to developers, who were selected for GSoC 2018 in my organization, for guidance, and they were very helpful.
It was 2nd March when I started querying for GSoC suitable projects. Many of the projects I chose got rejected. I was getting nervous as the proposal writing period was going to start on 25th of March. Most GSoCers recommend to select the project by December end and start contributing to it. But here I was. Around the 7th of March I started to query about the POSIX Compliance project, it took 12 days for discussion with the community and finally it was accepted. But still some of the sub-tasks had to be added and it took another 5 days. The developers in my community and very helpful and gentle. They took my constant efforts, contribution, and activities into consideration.
Writing Proposal
Your proposal reflects your attitude towards work, persistence, commitment, and personality. GSoC does not want a student with their mind full of knowledge, they want students who are ready to learn and get molded according to the community.
The proposal should reflect on how you are going to work in summer. It should be realistic. Never ever fake yourself and your skills in the proposal. There should be no plagiarism. If there is a need to take some data from the internet, which is needed by your proposal, cite it. Always use attributions.
You can mention screenshots. If your project is about a website or an app, you can attach a rendered image displaying how your project will look like after completion. You can make a YouTube video of yourself explaining your approach to the project and provide its link in the proposal.
In my case, The proposal template was given by my Org. I had access to the archive of proposals, of GSoC students of past years who got selected in my Organization. I went through them and all my doubts regarding proposal writing were clear. Then, I made my proposal accordingly and it was of 8–9 pages hardly.
As Raspberry Pi and Arduino are a part of embedded systems, I mentioned our Techfests’ project and briefed my role in it under the heading “Past Experience”. This gave a plus point to my proposal.
Click here to see My Proposal.
Many students make the proposal of 20+ pages. It depends from org to org.
I shared the link to my proposal to my mentors for review and suggestions and submitted my proposal on GSoC portal, with final changes, on time.
Result Day!
The results date was 6th of May. Its almost 1 month after the proposal writing period gets over. Many students think its time to relax, but this is where you should work with all your potential.
During this time I analyzed my past 7 months journey and realized I have used much of time in IIT’s Techfests and MSCOY. I felt I won’t be selected and was losing hopes. Finally, it was results day. I was waiting for the clock to tick and was ready to refresh the page. But my net got jammed at the edge moment. It was my senior who called me and gave me the good news. That moment is impossible to explain. But it was something I aspired for and achieved it, I was satisfied and hence count it as a success.
After Results
The next step is “Community Bonding Period”. My next blog is dedicated to this part of GSoC only. Must read and get to know what it is about and how to make best out of it. (Click here)
About me
Hello, my name is Vaibhav Gupta. At the time of writing this blog, I am a sophomore under graduate student pursuing BTech. degree in Computer Science and Technology.
I am a OS/Kernel Enthusiast and also have interest in Compilers and Cryptography. I am a low-level-tech developer. I like to work on lowest layer of software and interaction with hardware using software. I want to become a Kernel Developer.
Let’s get connected
Follow/ Connect with me anytime.
- LinkedIn- https://www.linkedin.com/in/varodek/
- GitHub- https://www.github.com/VARoDeK
- Facebook- https://www.facebook.com/vaibhav.gupta.1004837
- Twitter- https://twitter.com/varodek
Follow this Publication for more stories on this subject. If you find this blog helpful, please click the 👏 button and share to help others find it! Feel free to leave a comment 💬 below :).