GSoC 2021 with NumFOCUS: NetworkX, Blog 0.0

Harshal Dupare
3 min readJun 10, 2021

So what is this series of blogs about?

The goal of this series is to walk you through my experience of GSoC and allow me to compile my learning in GSoC. This can also serve as a guide for someone who is looking to participate in GSoC.

GSoC and open source

For those readers who don’t know what GSoC is

GSoC aka “Google Summer of Code”, it’s a program organized by Google every year that focuses on bringing student developers into open source software developmental work on projects proposed by various open-source organizations. For more details refer to GSoC’s home page.

Open-source software is a term for free software whose code is publically available. Open-source organizations are organizations whose code is open-source.

My Project and Organization

This is my first time participating in GSoC, so for those who are struggling with which organization to apply for this section may be helpful.

Given that GSoC is very competitive to get into and as can be seen by GSoC 2020 statistics

  • 8,902 applications submitted by 6,626 students from 121 countries
  • 1199 students (one project per student) were selected from 66 countries

and this is the statistics of 2021

  • 6,991 applications submitted by 4,795 students from 103 countries
  • 1292 students (one project per student) were selected from 69 countries

So it goes without saying if you really want to be selected and complete the GSoC you should preferably apply for the projects in which you have some part experience and are interested to work over a 13 week period.

So, after this faithful analysis, the choice for me was very clear(at the least very narrow down)

What I most enjoyed in coding are scientific coding from differential equation solutions, operation research, and complex algorithms. So I had to choose from such organizations only that narrowed down the choices a lot and I stumbled upon NumFOCUS. But still, the choice for me was not so clear yet as NumFOCUS is an Umbrella organization and I had to choose an organization from this list.

This is where my part experience came into the picture and made the choice easy for me as clear as daylight. From the list, I recalled a few organizations whose code I have used in my part projects and internship. But the organization ( or the code ) that I almost used in all of my projects and internship was NetworkX, which focuses on network theory.

So after this, I went through the projects listed on networkx and worked on proposals and my initial contributions in networkx.

After about a month I successfully made my 1st contribution and it was merged into networkx and I had made 2 proposals (the maximum number of proposals is 3) both in networkx. and luckily I got selected for one of them which was about Adding Interactive Notebooks for Algorithms Implemented in NetworkX my other proposal was about adding the Lauvan algorithm in networkx whose possible improvement that I mentioned was the Leiden algorithm.

The Community Bonding period

“Community bonding period” is the 1st phase of the GSoC wherein students get to interact with mentors and learn about their organization and possibly work on the project.

In my case, as I had already made a contribution in networkx, I had some idea of the workings of networkx and the mentors. Over this period we planned out the mode of communication and meeting timings ( timezones turned out to be problematic but we worked it out somehow :-D ). Apart from that I also worked on my 1st notebook which will be about Assortativity.

--

--