- Harsh Mishra
Google Summer of Code is an annual program by Google, which provides an opportunity to Student Developers who are looking to get started with Open-Source development. “Open-Source”, as a term itself, was very intimidating to me which I presumed involved a lot of development and understanding of the entire codebase to contribute, and boy was I wrong. This small write up intends to detail and document my learnings (and unlearning) with Open-Source and how I got to be a Google Summer of Code 2021 Student with MetaCall.
I was introduced to the term “Open-Source” through one of my College Seniors, who was incidentally the first person from my College to have been selected in Google Summer of Code. His inspirational work made a lot of students follow suit and get started with Open-Source but many lost interest during the way. I was one of the students who created a GitHub Account back in 2019 but lost interest midway and primarily used it for pushing personal projects.
My first contribution to Open-Source came through Hacktoberfest-2019. I created my first Pull Request to add an Insertion Sort algorithm and it was merged. My College Seniors, Abhiram Reddy and Akash M provided the meaningful guidance that I was looking for to get started with Open Source. After Hacktoberfest, my Open-Source work was diluted due to my College Exams and Projects, but I kept looking for more Open-Source programs to participate in regularly.
Launching into Open-Source Programs
I participated in my first fully-fledged Open-Source program in December 2019 as part of the JIIT Month of Code. While I was selected without any standard proposal or application process, I was intimidated by the projects until I found Anmol Mishra. He started mentoring me on one of his projects. As part of the same, I worked on building Python scripts which received very positive feedback and I became one of the Top-Performers of the whole program.
Next planned up was GirlScript Summer of Code, which is an Open-Source competition, where I ranked 59 across thousands of participants from across India. I contributed to CropAI, Algo-DS Notes, Cosmos and JARVIS, Techtonica Projects using a wide variety of technology stacks that helped me upskill in a better way.
The best experience in Open Source came through the MLH Fellowship, where I have received a lot of guidance and help around the best practices of Open Source development. Working on Hackathon projects exposed me to the nuances of Open-Source development like nothing else and prompted me enough to explore communities around me and participate in them. It allowed me to become a part of various communities like moja global, OpenMined, WooTech and more.
I also stepped up in my contributions and contributed to various organizations including Google, Uber, Amazon Web Services, Microsoft to name a few. While the contributions were enough to have me started, I decided to look out for some mentorship to help me get started on a more consistent basis.
Planning for Google Summer of Code
After a nasty rejection from the MLH Fellowships’ Open Source batch and the LFX Community Bridge Mentorship program, I decided to go for Google Summer of Code. My motivation was to find a community that I can stick to long during the whole process, even though I won’t be selected. My initial experimentations around communities did not go well and in most cases, things were too competitive to even consider. While I started with an intention to work on Web/DevOps projects I soon ran out of organizations that I would like to work with.
It was during this time when I realized that I need to find my passion to fit into the puzzle rather than trying to mould myself for the same. It was then that I started looking for communities whose ideas I found interesting and were willing to contribute to the same. Before the announcement of the Google Summer of Code 2021 organizations, I decided to participate with CCExtractor or OWASP. It was at this time, I came to know about MetaCall.
I came across one of the blog posts which described a Serverless Polyglot which scrapped links across a website using MetaCall. The idea was interesting and the technology seemed novel. I joined the community and was greeted by Vicente, the creator of MetaCall.io and the Organization administrator who was kind enough to welcome me personally and get me started. I had no idea that MetaCall had applied for Google Summer of Code and when the organizations were announced it was a welcome shock for me.
Now that I made up my mind, I decided to contribute to MetaCall. My first few weeks went in observation and studies around the standard processes. I later picked pace with creating my Proofs-of-Concept around building Polyglot applications, which was later converted into a blog piece. One of my Proofs-of-Concept around building a Polyglot Machine Learning application was picked up for a talk at HolyJS where Vicente and Jose explained in detail about MetaCall and how the Function-as-a-Service (FaaS) works.
Once I had a fair understanding, I decided to take a look at the projects available and I picked up the Jupyter MetaCall Kernel project. This was where I reached out to Gill, who would mentor this project and indulged in a discussion with him. After a lot of intricate brainstorming and discussions, we finally decided on the approach, the deliverables and the minimal viable product that we are aiming for. And this is when I started my work on the proposal.
Both the proposal and the reviews took much less time than I had anticipated. While I initially lacked the confidence, I decided to give it a go and uploaded my draft and further the final proposal on the Google Summer of Code dashboard. By the end, I only managed to submit my proposal for MetaCall and had to drop off CCExtractor and OWASP after further considerations.
The disquieting wait after the application was submitted had started.
As far as I have known the past experiences of Google Summer of Code students, I knew that the waiting period wasn’t at all to “wait”. I decided to be more active in the community than before and pick up things that can more streamline the experience of new contributors. I discussed it with Vicente and decided to work on a Get Started guide. It would be a fairly easy way for people to navigate across MetaCall and contribute in a way that they find fit.
During the waiting period, I indulged in developing the Get Started Guide on Docsify and successfully managed to complete it before the results. The day of the result was a very, very long day.
Fast forward to May 17, 11:04 PM IST, the following mail dropped on my inbox:
And I was on the Cloud Nine!
My proposal “Development of Jupyter Kernel for MetaCall Core” has finally been accepted!
About the Project
My project revolves around the development of a Jupyter Kernel for the MetaCall Core. MetaCall Core is a library that allows for cross-language function calls to happen. My project would allow the inter-language mixing process to happen from a Jupyter Client straight from the browser, rather than using the traditional Command Line Interface (CLI) and REPL that MetaCall Core provides.
The primary goal for the project has been divided into three milestones:
- Developing the Kernel for MetaCall using IPython to load the API.
- Integrate the Kernel to MetaCall’s API to build polyglot applications.
- Test the Kernel and deploy the interface as a package.
During this project, I would be mentored by Gil Arasa Verge with special assistance from Vicente. In the further blogs, I would be further sharing my experiences and technical details around my project and progress over the same.