DEV Community

Cover image for Google Summer of Code: Getting Selected, My Time, My Experience, My Journey.
Vinyl-Davyl
Vinyl-Davyl

Posted on

Google Summer of Code: Getting Selected, My Time, My Experience, My Journey.

Beginnings in Engineering and Passion for Creation

I am David Okononfua, and I majored in Electrical and Electronics Engineering in Nigeria. Growing up, I always had a penchant for building things, whether it was a small contraption or a digital product. My academic journey in engineering only fueled this passion, giving me the tools to understand complex systems and the drive to explore new horizons.

Beyond academics, I found joy in coding, which allowed me to develop tools, libraries, and products that brought ideas to life. It became a medium through which I could create and innovate. My enthusiasm wasn't limited to technology; I participated in hackathons and even dabbled in Capture the Flag (CTF) competitions, lol. The thrill of solving problems, collaborating with others, and creating something tangible kept me going.

Outside tech, I have a deep love for football—a sport that I enjoy playing physically and one I can discuss passionately for hours. I also play the saxophone, an instrument that allows me to express myself musically, and chess, a game that sharpens my strategic thinking. This combination of interests—both technical and recreational—shaped my identity as someone who seeks balance and fulfillment in multiple dimensions of life.

The First Encounter: OSCAFEST and the Open Source World

It was in 2022 when I attended a transformative event called OSCAFEST (Open Source Community Africa Festival) in Lagos. This was a major milestone in my journey toward open source. At OSCAFEST, I met like-minded individuals who shared the same passion for technology and collaboration. Among them was Favour, a fellow Electrical Engineering student who was in the same academic level as me. Favour and I clicked instantly; our shared background and interests created an immediate bond. We talked about tech, work, life outside school, and various opportunities and platforms. Learned about Community Pro and EddieHub—a community that helps beginners contribute to open source.

The event itself was a vibrant introduction to the power of open source—the idea that people from around the world could work together to solve problems and build better tools. It was a revelation that coding wasn't just about individual brilliance but also about collective effort. While I heard mentions of Google Summer of Code (GSoC) during OSCAFEST, I didn’t pay much attention at the time. However, the seeds of curiosity had been planted.

Understanding Open Source

Open source refers to software projects where the source code is publicly available. This allows anyone to view, use, modify, and distribute the code, provided they adhere to the licensing terms. Open source promotes collaboration and transparency, enabling developers worldwide to contribute, learn, and share knowledge.

Popular examples of open-source software: Linux, Firefox, VLC Media Player and more.

Some Benefits of Open Source:

Collaboration: Open-source projects enable global collaboration, breaking geographical barriers.

Learning: Contributors gain real-world experience in coding, debugging, and problem-solving.

Community: These projects foster strong, supportive communities.

Quality & Innovation: With constant contributions, open-source projects often achieve high quality and foster innovation.

Basics of Contributing to Open Source

Open-source collaboration thrives on platforms such as GitHub, GitLab, and Bitbucket, where developers come together to improve software projects. Understanding the key concepts is essential when contributing to these projects.

  • At the core of open-source contributions are issues, which serve as a way to highlight bugs, request new features, or propose enhancements. Contributors engage with these issues to help maintainers understand what needs attention.

  • Once contributors find areas to work on, they create a fork, a personal copy of the project’s repository. This lets them make changes without affecting the original project. Changes are made in branches, which are separate spaces for developing new features or fixes.

  • Each change is captured in a commit, documenting what was changed and why. These commits form a pull request (PR), the formal way to propose updates to the main project. Maintainers review PRs to ensure they meet the project's standards before merging them into the main codebase.

  • In open-source projects, documentation is vital. It helps users and contributors understand the project. For newcomers, improving documentation is a great start, as it requires understanding the software without needing to write code.

By engaging with these processes, contributors not only improve the software but also gain valuable experience in teamwork, problem-solving, and collaboration.

A Turning Point: Learning About GSoC

Fast forward to the following year, Favour told me during one of our conversations that she had successfully participated in GSoC. She explained how the program not only paid contributors for their work but also offered a platform to grow and make meaningful contributions to open source. This was a lightbulb moment for me. I had been contributing to open source for years without compensation, purely out of passion. The idea of getting paid to do what I love was both exciting and motivating. I decided then and there to put in the effort and apply for GSoC in the next cycle.

The process began with researching organizations that aligned with my technical stack. When the list of participating organizations was released, I carefully evaluated each one. Initially, I started with 15 organizations and narrowed them down to 7, then 5, and finally 2. My criteria for narrowing down included the activity level of their communities, the number of open pull requests, and whether I could make a significant impact. For example, one project had over 150 open pull requests, signaling a slim chance of getting noticed to me.

Eventually, I chose Accord Project, an organization under DocuSign that focuses on agreements, contracts, and document automation. Their mission and technical challenges aligned perfectly with my skills and interests.

Immersing Myself in Accord Project

Once I decided on Accord Project, I immediately began contributing to their codebase. Time was of the essence since the application deadline was approaching. I became active in their community, messaging mentors directly to introduce myself and establish a connection. My contributions included opening and merging multiple pull requests, fixing bugs, and adding features—actions that showcased my dedication and technical ability.

The Accord Project's work fascinated me. They were building tools that powered critical aspects of DocuSign’s operations, focusing on automating contracts and agreements. It felt rewarding to contribute to a project that had real-world applications and was making a difference.

As the application deadline loomed, I drafted my proposal meticulously. I outlined my goals, the value I intended to bring to the organization, and the skills I’d leverage to achieve them. After submitting the proposal, the waiting period was nerve-wracking. On the result day, I was ecstatic to learn that I had been accepted into GSoC. It was my first attempt, and the joy was indescribable. All the effort, sleepless nights, and determination had paid off.

How I Got in, How you can possibly get in.

1. Choosing the Right Organization

When the organizations participating in GSoC were announced, I carefully evaluated them to find the best fit for my skills and interests. Here’s how I narrowed down my options:

  • Started with 15 organizations: I looked for active organizations with year-round contributions, not just during GSoC.

  • Filtered to 7: I ensured the organizations matched at least 30% of my tech stack, making it easier to contribute.

  • Reduced to 5: I checked the activity level of their GitHub repositories, focusing on those with manageable pull requests (PRs).

  • Finalized 2: I assessed their community engagement and mentor responsiveness.

  • Chose Accord Project: Accord Project’s work on contract agreements and documents resonated with me, as it involved building tools used by DocuSign.

2. Contributing to the Codebase

I began contributing to Accord Project even before the GSoC application period opened. I explored their repositories, fixed issues, and interacted with mentors. By the time applications closed, I had multiple PRs merged and had built a solid reputation within the community.

3. Writing the Proposal

Creating a proposal was a meticulous process. I followed these steps:

  • Thoroughly studied the project I wanted to work on.

  • Collaborated with mentors to refine my ideas.

  • Drafted a clear, concise proposal outlining the problem, solution, timeline, and deliverables.

4. Submitting the Proposal and Waiting

After submitting my proposal, I anxiously awaited the results. On the day the results were announced, I couldn’t contain my joy—I had been selected on my first try!

Tips for Aspiring GSoC Contributors

  1. Research Organizations: Use resources like GSoC Organizations to explore participating organizations.

Look for active organizations with a strong track record.

Align your interests and skills with their projects.

  1. Be Active in the Community: Contribute to discussions, join forums, and connect with mentors. Visibility and engagement are crucial.

  2. Start Early: Begin contributing to the organization’s codebase before the application period.

  3. Create a Strong Proposal: Tailor your proposal to the organization’s needs. Clearly define your goals, timeline, and approach.

  4. Stay Persistent: If your chosen organization or project isn’t selected, don’t be discouraged. Your contributions and experience will still hold value.

The GSoC Experience

Participating in Google Summer of Code was a transformative experience. It challenged me to grow as an engineer and collaborator. Working with Accord Project meant I was essentially collaborating daily with the directors of engineering at DocuSign and the DocuSign engineering team. I was tasked with building and improving tools that streamlined document workflows, specifically a template playground in my case. The work required not just technical expertise but also communication and teamwork skills. I interacted with mentors and community members, learning from their vast experience and gaining insights into open-source best practices.

One of the most rewarding aspects was seeing my contributions make an immediate impact. The pull requests I opened were reviewed, merged, and deployed, becoming part of a tool that people relied on. This sense of purpose fueled my passion for open source even further.

Reflections and Future Aspirations

Looking back, my journey into open source and GSoC was shaped by a combination of curiosity, determination, and community support. From attending OSCAFEST and meeting Favour to contributing to Accord Project and succeeding in GSoC, each step was a learning experience. It taught me the value of persistence, the importance of collaboration, and the joy of creating solutions that help others.

Today, I aim to continue building performant, accessible, and feature-rich applications as a professional Frontend Engineer. My experience spans developing applications across multiple APIs, third-party integrations, and databases, designing beautiful user interfaces, and scaling web products. I strive to leverage these skills to make meaningful contributions, whether in open source or professional settings.

As I look to the future, I am excited about the possibilities. Open source has shown me that technology can be a force for good, and I’m committed to being part of that change. Whether it’s contributing to impactful projects, mentoring newcomers, or exploring new technologies, I’m ready to embrace the challenges and opportunities ahead.

References

To further explore and gain insights into open-source contributions and programs like Google Summer of Code, here are some useful resources:

Top comments (0)