My Experience in Google Summer of Code 2023

My Experience in Google Summer of Code 2023

What is Google Summer of Code (GSoC)

Google Summer of Code (GSoC) is a global program that provides students with the opportunity to be paid while contributing to open-source projects over a period of three months.
GSoC is similar to an open-source apprenticeship. Students are paid by Google to collaborate under the mentorship of open-source community mentors and organisations. It's a fantastic chance to acquire new skills, establish connections within the community, gain experience working with larger and often distributed teams, learn, and, of course, receive compensation.
Here's a video that I've created for the students who what to crack GSoC'2024 "How to Crack GSoC'2024 | Proposal Walkthrough".

About My Project

The OWASP BLT (Bug Logging Tool) project is a robust platform that enables internet users to responsibly report various issues, ranging from design flaws to security vulnerabilities. One standout feature of BLT is its system of incentivized bug reporting. Users are rewarded with points for their contributions, and these points can be increased through verification. Furthermore, organizations can leverage BLT to initiate bug hunt programs with prizes, fostering a culture of proactive vulnerability management. Overall, OWASP BLT is a pivotal tool that enhances online security and promotes responsible disclosure practices.
GSoC Final Evaluation Report

My Journey

My introduction to GSoC happened during my 12th-grade year while I was immersed in development and cybersecurity studies. As I explored cyber security and web penetration testing, I stumbled upon the OWASP organization through their OWASP Top 10 Learning resources. Completing the OWASP top 10 security vulnerabilities for the web introduced me to the organization. While searching for a GSoC organization to contribute to, I spotted OWASP on the list, and that's when I decided to contribute to this organization.

Fast forward to my first year of university, armed with web development skills using Django, I delved into OWASP's GitHub repositories. Among the projects, I stumbled upon project-BLT, driven by my search for Django-based projects. Although I explored a few other projects, project-BLT caught my attention due to its misleading "HTML" label in the repo section. However, upon closer inspection, I realized its project structure mirrored a Django setup. Intrigued, I cloned the repository and ran it successfully.

First Contribution / Pre GSoC

Attempting to run the project through Docker presented errors, which I identified as my first challenge to tackle. I created an issue highlighting the problem with docker-compose not functioning for project setup. I engaged my mentor through the OWASP Slack channel, and with the green light to proceed, I dedicated myself to resolving the issue. With prior experience from an internship involving Docker containers, I updated the outdated docker-compose, tested it thoroughly, and got it working. While the process was relatively smooth in retrospect, unexpected errors made it a day-long endeavour. Eventually, I submitted a pull request ( Docker/Fix ), which my responsive mentor promptly reviewed and merged. The appreciation he expressed for my contribution motivated me to delve further into open source.

As I ventured deeper into project contributions, I set my sights on applying for GSoC during my first year of university. However, my assumption that GSoC aligns with the Indian summer months (June or July) was misguided, which I now find amusing. During this phase, I crossed paths with Aryan Ranjan, my mentor, who was mentee at that time. His guidance proved invaluable as I learned the ropes of contributing to the project and valuable insights about project BLT and its current status.
I distinctly remember attending a meeting scheduled by Donnie that provided a platform for direct interaction with Aryan and Donnie. This meeting was incredibly enlightening.

Setting my sights on GSoC 2023, I dedicated a year to contributions, resulting in the merging of 64 pull requests.

The moment of applying for GSoC finally arrived. I submitted a Proposal for Project BLT and awaited the results.

GSoC Selection

A month later, the anticipated moment of result announcements arrived, albeit with a slight delay. Anxious and fretting over the delay.

I reached out to Aryan for reassurance. His words, "Chill, you are selected," alleviated my anxiety, and I felt an overwhelming sense of joy. After a year of hard work, I had achieved entry into the prestigious GSoC program, aligned with the organization of my dreams.

Ongoing GSoC Experience

Armed with a comprehensive proposal brimming with ideas for enhancing BLT, I wasted no time in getting to work. I immediately tackled some simpler ideas, crafting pull requests along the way. I delved into researching the foundational aspects of blockchain and learned the basics. Subsequently, I discovered Geth, the GO implementation Ethereum protocol which enabled me to construct a private and independent chain. This knowledge culminated in the development of BACON coin during the coding period.

My weekends were marked by meetings with my mentors, where I shared my progress, and they provided invaluable feedback on my work and pull requests. This constant cycle of feedback enriched my understanding, facilitating significant growth. I also ventured into producing instructional videos for project BLT, contributing to its YouTube channel.

During GSoC, I not only addressed my proposed tasks but also engaged in discussions about future ideas envisioned by the project leader. In addition, I attempted to mentor new contributors, initially facing challenges in this role. Mentoring is a responsibility I'm learning to navigate, drawing insights from both of my mentors through observation.

Design emerged as an area of struggle for me during this period, given my prior focus on backend and deployment aspects during internships. Aryan provided constructive feedback on my design work, guiding me toward resources and sites like Dribbble for inspiration. Leveraging component-based libraries like Tailwind Components and Flowbite, I gradually improved my design skills.

About My Mentors

Donnie, exhibited a remarkable mentoring approach despite our lack of personal acquaintance. Regular meetings and thorough code reviews made his guidance invaluable. His expertise in altcoin development, an area I initially lacked expertise in, was generously shared, fostering my understanding. Donnie's openness to ideas, willingness to assist new contributors and positive atmosphere creation have had a lasting impact on my journey. I'm excited to embody the principles he's imparted, contributing effectively to the BLT project and assisting newcomers.

Aryan Ranjan, has played a pivotal role in guiding me throughout this process. His contributions included reviewing features, offering enhancement suggestions, and guiding me in shaping user interface concepts. Despite my design limitations, he equipped me with invaluable resources for reference. His direct approach was a boon, helping me differentiate between essential and unnecessary design elements.

I extend heartfelt gratitude to both mentors for their unwavering support and guidance during my GSoC journey.

Conclusion

My experience with GSoC through OWASP BLT has been immensely fulfilling. It armed me with essential skills that propelled me into the realms of Web3 and blockchain. This journey didn't just conclude with GSoC; it opened doors to prestigious hackathons, including the MIT Bitcoin Hackathon and MLH Web3 Build Hackathon, where I achieved recognition. I am profoundly thankful for this opportunity, which has ushered in new career avenues and introduced me to incredible individuals.

As I reflect on this transformative journey, I'm crafting a blog to capture the essence of my experience, express my gratitude, and share my insights with others.