The Community Bonding Period — Google Summer of Code’ 22 @SCoRe Lab

Pranjal Walia
SCoRe Lab
Published in
5 min readJun 16, 2022
Let’s get started…

Let’s go over the following — What is Google Summer of Code and why is it relevant? How do you apply? Choosing an organization? What is SCoRe Lab? My initial experience with the SCoRe Lab Community.

What is Google Summer of Code 🤔

Google Summer of Code (GSoC) is a global program driven by Google in order to drive forward the spirit of open source and is focused on bringing more students into open source software development. A vast majority of the critical software that we use today (be it the Linux kernel, Git or Android the list goes on and on) is a product of opensource development and giants like Google understand the value in this and support this initiative to bring forth the next big thing that will revolutionize tech.

Students who are accepted gain some exposure to real-world software development and employment opportunities in areas related to their academic pursuits.

How did I end up in this thing?📌

I heard about GSoC during my first year as an undergrad student at the International Institute of Information Technology (IIIT), Bangalore. Being new to writing code, the notion of open source sounded pretty daunting.

“Fake it till you make it” — keep grinding, you’re bound to improve

This pretty much summarizes my attitude toward anything I do. I spent the next year and a half gathering experience from wherever possible, be it group projects with friends or working at startups. Improving my knowledge was key, the pandemic also turned out to be a blessing in disguise as working remotely, I perfected my skills with Git and remote development (daily stand-ups, PR reviews, debugging, brainstorming). At this point in time, I started to get confidence in my abilities and in all the excitement I completely forgot about GSoC altogether (lesson learned, keep the timeline in mind🙃).

Fast forward to 2022, I decided to apply for GSoC and got selected ✌ by one of the biggest organizations participating in GSoC each year, SCoRe Lab. Now, let’s go over how did I pull this off in my first attempt.

Selecting an Org and project finalisation 👀

Selecting an organization is one of the most difficult procedures in the journey, a lot of parameters are involved and there is a lot of interesting organization taking part each year. However, my selection criteria were slightly unconventional as compared to a lot of the advice out there. On a high level, we want to look for organizations that have been frequently taking part in the iterations of GSoC (these make safe bets) and after finalising one or two organizations, it is recommended to shortlist one or two projects of your interest going further.

However, my selection criteria were a bit different, I came across the NodeCloud project randomly one day while reading about multi-cloud native resource orchestration and instantly the idea of this project clicked with me. It was a week later when I realized that this was in collaboration with SCoRe Lab (an organization that is shortlisted for GSoC almost every year). At this point in time, I decided that this is the one, I did not look at any other organization or any other project within SCoRe Lab. This was a gamble (statistically speaking) when thinking of the odds of selection in GSoC (but hey! If you love what you do, you’ll never work a day in your life 😜).

My Project 🛠

After deciding on NodeCloud for GSoC, the next few days were when I realized the really complex internals involved in this 😳.

Essentially, NodeCloud serves as an API for using cloud resources from multiple cloud providers, it abstracts away the implementation intricacies involved across multiple SDKs of these providers. It also involved the usage of the inbuilt APIs exposed by the TypeScript compiler (It just does not transpile code to JavaScript, this is the stuff we usually skip out on) to perform parsing (generating Abstract Syntax Trees), application of transformations on these intermediate representations of type definition files of various cloud SDKs to auto-generate service implementations that can be packaged into a NodeCloud service plugin.

This is really handy in scenarios when you need implementations of a large number of services (a hundred or so to set things in perspective) as it does not make sense to write code for these hundred services separately, instead, we can look at the type definition files for these and use the TypeScript compiler to fill out these blueprints with the actual implementations of the service from the respective SDKs (sounds complicated? Well It is…we’ll dive into the specifics of this in my upcoming posts)

Getting the project to run (consuming it was a different task altogether) was a cakewalk thanks to the incredible work already done on the project by my project mentors and other contributors, but really understanding what’s going on under the hood was a big task which took me a while to get around to. Here’s the Project Thread where I describe the addition of a new plugin to NodeCloud i.e. the AliCloud Plugin that incorporates the services of Alibaba Cloud into NodeCloud.

The Community Bonding Period 🚀

The period between when accepted GSoC contributors are announced and the time they are expected to start coding. This time is to introduce your GSoC contributors to the community, get them on the right mailing lists, introduce them to the codebase, and re-evaluate major aspects of the program such as the project expectations, milestones and the timeline.

Spanning May 21st to June 13th, over this period I had an initial discussion with my project mentors, they congratulated me on getting through and welcomed me to the SCoRe community. Then we proceeded to talk about some ground rules such as progress tracking, progress reports every two days and so forth. All these are important to ensure that the maintainers and contributors are on the same page at all times.

Going forward, I created the required progress trackers, and created all the issues as described in my project proposal. In the next few weeks, I will be working on these, I’ll make sure to update my progress here so keep an eye out for the next post.

Epilogue 🔚

The first week of GSoC has been a great experience so far, looking forward to interacting more with the SCoRe community and am excited to implement my proposal. Follow me on my socials in case of any questions, tips and guidance pertaining to GSoC or anything in general.

Connect with me: Linkedin, Github, Twitter 😀

--

--