Skip to content

Instantly share code, notes, and snippets.

@Neel-Shah-29
Last active May 30, 2023 16:50
Show Gist options
  • Save Neel-Shah-29/3f04f05a8a353605068e32e55a5093c1 to your computer and use it in GitHub Desktop.
Save Neel-Shah-29/3f04f05a8a353605068e32e55a5093c1 to your computer and use it in GitHub Desktop.
Getting Into GSOC 2022 under CERN HSF!

Getting into GSOC 2022

drawing

What is Google Summer of Code, and what it is not?

GSoC is a awesome open source program for students to get some experience in open source development. It is an initiative by Google that helps organizations connect with students and get them started with their open-source projects. It is a great platform to explore new areas, maybe discover a new career path!

GSoC is not an internship and should not be looked at as a way to earn money. It is definitely not something you should pursue half-heartedly or just for the sake of it, because the world depends on open-source software more than one might think!

We will not be discussing timelines and dates related to GSoC in this blog 😶. If you want to know about schedules, then check the official GSoC website.

One thing i like about GSoC is communication is the most important part and criteria for the selection as a proposal alone cannot judge the understanding of candidate about the project.

Alt Text

How did i get to know about GSoC?

There was a session conducted in our college by the previous year gsocers to encourage all students and create a strong open source community at VJTI. I still remember the date was 4th December,2021 and under the collaboration of 2 committees (COC (Community Of Coders) and SRA(Society of Robotics and Automation)) we had an interactive session on GSoC, MLH, Outreachy and OSPP open source programs. After the session i was quite impressed with the glory of open source and the innovative skills that develop while contributing to these huge organisations.

I took guidance from one of my seniors and started working on searching the best fit organisations which serve my requirements and techstack.I made a list of organisations in a spreadsheet according to my preference.

I would definately like to share that sheet so that new contributors can get an idea of where to start and how to look at your interest and search for the most suitable and appropriate organisations. I shortlisted of about 20 organisations according to preference and my skills and then started working on it right from January itself.

Here is my sheet for reference:- GSOC Shortlisted Organizations

I recommend everyone to make such a sheet to track your organization, your skills and make a right choice of project. Here half of your battle ends if you select the right organisation. I will describe about my further work in those organisations in detail throughout the blog.

How can you get into GSoC?

There is no straightforward or correct answer to this question, but let’s discuss some key areas where you should take charge.

  • Finding the right project: You will be working on the project for a lot of time, so it is very crucial that you find a project that interests you 🤗. When you shortlist the projects you like (from organizations GSoC pages), look at how much competition you have in that project. I wouldn’t recommend a project if two or more people have already started working on your project.

  • Contact the mentors: Read the code of conduct, if any, and contact the mentors accordingly. This may be through email or their chat medium (Slack, Gitter, etc.). Also ask only the most relevant doubts to the mentors as if you ask some trivial doubts, mentors can understand and can easily judge your understanding of project. Your first impression to the mentor should be with a relevant introduction to yourself and all the reasons why you choose that organisation and project, sent him your resume with skills and ask some relevant questions to get started with the project. One thing that you should always keep in mind that DO NOT directly ask your mentors or the community for guidance without any legwork on your side. Even if the community doesn’t seem to provide getting started directions do some Googling, try to dive into the code on your own. After doing all this, when you get stuck and ask them any question, DO NOT FORGET to state all the legwork you did. This will show them that you are ready to put in the effort.

  • Make a good impression: You need to make the community feel your constant presence. Complete some tasks before the proposal date and make sure to keep looking out for new bugs/features. If you want to start contributing and don’t know where to begin, try searching beginner-friendly 🤩 issues. Such issues generally have a “beginner” or “good first” label attached. Ask the organization admins if it’s still open and if you can work on it. You can also create a new issue if you find a bug in the application. Submit a Pull Request suggesting your code that solves the particular problem and ask the admins to review it. In this way, you can start making others perceive your presence.

  • Have a decent proposal: The proposal should be ambitious, while also being achievable. It wouldn’t do if you just did something trivial, while overcommitting will lead to failure later on. Always under commit if you are not sure you can complete the task within that duration, as mentors will easily understand if you write you can do the task of 4-5 weeks in 2 weeks! So do take a note of this and make sure you understand your project very well before drafting the timeline of Proposal.

  • Enjoy Coding: It’s primarily the joy of coding that helps open source development. Make sure that you are communicating with others and helping out on things you can. GSoC is a pretty amazing thing!😉

drawing

My Journey of GSOC 2022

In the month of December, I started getting acquainted with the tools like git and github , understanding the github actions and workflows. Being a computer science sophomore i was familier with programming languages like C,C++,Python and had an immense interest in learning the modern C++ libraries and metaprogramming techniques and contribute to its codebase. I was also having an understanding of Deep Learning and Machine Learning operators and frameworks. Initially,since i was also not knowing how to create a Pull request so i did made my first Practice Pull request in Call-for-Code /Practice-Pull-Requests repository to get an idea.Here is the link to it, the PR was to fix a simple typing error in code file:- Call-for-Code/Practice-Pull-Requests#19

  • January 2022

I started my journey of Gsoc 2022 with Boost C++ Libraries and i was shocked when i saw such a huge codebase for the first time! I was highly demotivated for the first time when i got in touch with the codebase.

Then eventually, I started to build Ublas C++ library on my local computer and faced ample of errors! I kept asking doubts to the maintainers and kept contributing. The built took me around 20 days as i was not aware about lot of concepts so exploring the concepts, getting familier with new codebase and build process was quite annoying to me initially but it was a great learning experience! We had a gitter channel for Ublas C++ library: https://gitter.im/boostorg/ublas

I was an active member of the organisation for quite a time. Then, I started to contribute and kept learning c++ alongside, and contributed and merged 1 PR in the boost C++ libraries, so cheers on this acheivement! The happiness of my 1st pull request getting merged was incredible and made by day! And this was the Turning point and i got an interest in open source! Here is the link to my Pull request:- boostorg/ublas#155 Documentation change :- Wiki Documentation PR :- boostorg/ublas#170

Then till March 07 --> announcement of Gsoc organisations i used to explore and contribute to Boost C++ libraries(Ublas) only.But once the Announcement of organisations came and i saw Boost C++ libraries was Not Participating, I was quite demotivated because all my hardwork and hours of work had no use, but after talking to the seniors and analysing, I started a new process again of looking for organisations and making a list of prefered organisations.

  • March 2022

Now, comes the most important phase of Gsoc 2022, as the organisations are released with the project ideas all the contributers are involved in the tough fight of selection process. I also started to peruse all preferred organisations and finally decide to contribute and focus on two organisations.

One was CERN HSF and other was Geomscale. One thing i was frightened was what if i select a big organisation with huge name with lots of competition and not selected in it, CERN HSF was one of the most competitive organisations in GSOC where several contributers submit the proposals and handful of them get selected, so i decided to try for Geomscale as well.

I started getting acquainted with the codebase of Volesti, I even contributed and created a Pull request for an issue :- GeomScale/volesti#212 I wanted to work on Geomscale as well but there were some tasks to complete but since i had to complete the tasks for CERN HSF at the same time, i skipped the Geomscale organisation as well. Then i thought to give it a shot and leave rest on god for trying GSOC at Cern hsf, so regarding the selection process in CERN HSF, you all can get a detailed description on the website:- https://hepsoftwarefoundation.org/activities/gsoc.html

I will briefly describe the procedure in this blog. We have some selection tasks which we had to complete before 31st March and based on that we receive some feedback and results from mentors to improvise the solutions and submit. Note communication to mentors on mail is an essential factor of selection process! Being a second year student i was too stressed as this year anyone can apply for gsoc including professionals but i gave it a try. (Protip:- I was dreaming about getting into gsoc with CERN HSF and today i am here!!! so no one knows when the sun shines in your life so just keep trying!)

Inference Project

I started doing the GSOC tasks for my first most prefered project:- Inference Code Generation for Deep Learning models

Basic Tasks which i had for any root projects(setup and building root and playing with some examples) are mentioned in the doc below:- TMVA Introduction GSOC 2022

I finished this tasks in a week and asked mentor for the further tasks regarding the project.Here is the link to those tasks for your reference:- 2022 Gsoc TMVA Exercise: Inference

My solutions to the above tasks can be found here.


Though i was not selected for the other two projects let me share the details of other projects too with you all.Since i applied to all the 3 projects in the same organisation i had one of the advantage that i get is i am already acquainted with the codebase and get an headstart to complete the tasks for other project as well


Pythonisation Project

Tasks for selection :- 2022 GSoc TMVA Exercise: Pythonization Solution to tasks:-


Batch Generator Project

Tasks for selection :- 2022 GSoc TMVA Exercise: Batch Generator Solution to Tasks :-


  • April 2022

Now comes the most important phase of entire gsoc period! which is writing a descent, crisp and highly structured proposal. From April 04 to April 19 we had to draft the proposal by discussing the project with the potential mentors.I had a superb mentor Lorenzo Moneta! He guided me under every phase of selection and drafting the proposal. Here are my proposals for your reference!

  • Proposal for Inference Project (Selected) :- Link
  • Proposal for Pythonization Project (Rejected) :- Link
  • Proposal for Batch-Generator Project (Rejected) :- Link

In the later half of April, i kept revising the codebase and understanding the work in each project breifly. I was in constant touch with the mentor throughout the process.

  • May 2022

In this phase i was particularly very tensed about the results but alongside i wanted to draft some documentation for Parser file in sofie so i prepared a blog for the same. Here is the link to blog:- Blog on RModelParser.onnx

I had also written a blog on Python Tutorials in TMVA :- TMVA tutorials Translations in Python I also made some PRs in the root repository.

After all this hardwork and sleepless nights i was quite happy and started dancing when the results announced on 20th May at 11:30 PM and a mail arrived from google stating "GSoC 2022: Congratulations, your proposal with CERN-HSF has been accepted!" I was waiting for this message since months and today results are with me! image

So,Thats all from my side, hope the blog was interesting for you all and you learnt a lot about my project and got an idea of gsoc. Thankyou everyone for reading! I will be documenting my entire work of gsoc throughout the journey, so lets meet in another blog. Until then , Goodbye!

Thanks and Regards,

Neel Shah

@MashyBasker
Copy link

Hi @Neel-Shah-29 . I am interested in contributing to CERN-HSF. I am going through the training materials provided by HSF Software Training Centre. But I'm at a loss at what to do after that. Can you please guide me?
Thanks in advance.

@Neel-Shah-29
Copy link
Author

Hello @MashyBasker , happy to help! You can look at my work here:- https://gist.github.com/Neel-Shah-29/d51a9038dd07ef096127a62a92113fa0
You can contact me on Linkedin:- https://www.linkedin.com/in/neel-shah-209997212/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment