๐ŸŒž Google Summer of Code: My Journey & Guide

In my previous blog, I delved into the technical intricacies of the feature I developed during Google Summer of Code - Interactive Web Tour. In this blog, Iโ€™ll be shifting gears, focusing on sharing my firsthand experiences, offering valuable suggestions, and addressing some frequently asked questions.

Join me as I provide insights to enrich your Open-Source journey!

2023-09-04 14.07.40.png

Discovering GSoC

I first learned about Google Summer of Code (GSoC) while browsing a forum for international students. I came across a post recommending open-source projects, which introduced Google Summer of Code, Outreachy, Linux Foundation Mentorship Program, and MLH Fellowship. Upon diving deeper into these opportunities, I made the choice to participate in this yearโ€™s Google Summer of Code.

Project Selection 3.20-4.04

On March 20th, the GSoC contributor application period began, and I started selecting the project I wanted to work on. My main criteria were how interesting the project was and how well it matched my technical skills. Initially, I narrowed down to 28 projects from 18 organizations. After carefully reading project descriptions and requirements, I took a deep breath: I had missed some code challenges, certain projects needed prior bug fixes and PR submissions, and some already had numerous self-recommendations and seemingly solid implementation proposals. It seemed that my โ€˜effortsโ€™ were a bit late.

However, I didnโ€™t want to give up easily. I adjusted my approach. If I lacked competitiveness in those popular projects, Iโ€™d shift my focus to find projects that aligned with my skills yet werenโ€™t as heavily contested. Meanwhile, I was immersed in my spring semester studies at school, leaving me limited time to craft proposals for multiple projects. So, I refined my selection once again.

Finally, I found my best fit: cBioPortal for Cancer Genomics.

I found two projects in cBioPortal that best suited my skills:
1.Annotate Cancer Alterations and Generate Patient Report,
2.Interactive Web Tour.
Then I greeted the community in the github discussion to express my interest.

2023-08-24 21.03.43.png
2023-08-24 18.16.13.png

Finding the Right Fit

The most direct way to enhance competitiveness is to โ€˜show me the code.โ€™ So, I allocated two days for each project to explore solutions and create demos. The thoughts during my exploration and the final outcomes could serve as the basis for my proposals.

While working on the first project, I hit a roadblock right at the beginning โ€“ I couldnโ€™t even get the project running! I diligently followed the readme instructions step by step, but I ended up encountering perplexing errors that seemed unsolvable. (Here, my advice is to never hesitate to seek help from the community. This is my regret, but it also led me to my current project.)

I then shifted to the second project, which was closely aligned with my strong suit. I had prior experience developing user guidance features, so I felt confident. Indeed, the process from installation to setup went incredibly smoothly. I got the project up and running with minimal effort, a positive sign! Following the projectโ€™s guidance, I browsed through code demos left by predecessor. I found the web tour intriguing and began sketching out a preliminary implementation plan, and created a basic version of the web tour.

I believe the Interactive Web Tour project is my destined choice.

Crafting the Proposal

The next step is to write the proposal.
Iโ€™m including the challenges I anticipated during the brainstorming and demo-writing process, like choosing the right technologies, structuring content for each step, utilizing localStorage for cross-page continuity, and developing interactive web tour logic. Iโ€™ve also submitted a draft PR with a GIF to effectively showcase my work. Sincere effort is always the most convincing.

About the project:

  • Objective
  • Specific Steps
  • Anticipated Challenges and My Thoughts
  • Tasks and Implementation Plan

About the myself:

  • Personal Background
  • Relevant Skills
  • Code Demo
  • My Availability

Proposal Accepted 5.04

My proposal got accepted!
This yearโ€™s GSoC had a total of 43,765 applicants from 160 countries, and I feel fortunate to be among the 967 GSoC contributors who got accepted. All my efforts have paid off!
2023-08-24 21.38.09.png

Visa Concerns

Amidst my joy, as an international student on an F1 visa, I couldnโ€™t help but worry about my eligibility for GSoC. I emailed the Office of International Services (OIS) to inquire, but their response was disheartening: โ€˜Unfortunately, Google Summer of Code is not eligible for CPT, nor can you complete any other work on your CPT authorization that was not part of the position you used to apply for CPT. Many students have expressed interest in the Summer of Code, and unfortunately thereโ€™s no way for an F-1 student to complete it unless they do it outside of the US.โ€™

My world nearly crumbled, until I shared this situation with one of my mentors. At that moment, I want to say: youโ€™re my hero! Mentor Ryan helped me gather the necessary materials, and I successfully applied for CPT! I can now legally participate in GSoC in the US!

WechatIMG614.jpeg

Connect with Community

Before GSoC officially began, my mentors invited me to meetings for introductions, Laptop Setup, Repo Review, and more. The cBioPortal community also organized an online meeting for all GSoC participants. Everything went smoothly.

hoga 2023-08-24 230919.896.jpg

Moving on to the main part.
My mentors and I established a weekly meeting routine, covering topics like:

  1. Progress from the previous week,
  2. Plans for the upcoming week,
  3. Q&A, Troubleshooting,
  4. Suggestions and improvements, and more.

Although my spoken English and listening skills arenโ€™t perfect, my mentors are incredibly nice; they speak slowly, consider my comfort, and encourage me to immerse myself in the English environment for improvement. Additionally, we communicate on Slack, where I proactively share my progress and seek assistance. Mentors respond promptly and offer helpful guidance. Gradually, Iโ€™ve adapted to this work environment.
I omitted the projectโ€™s specific details here, but you can find them in this blog post.

Midterm Evaluation 7.14

During the midterm presentation, I showcased the web tour I developed to the product and engineering teams, and explained how to add a new tour based on the current codebase (a fantastic suggestion from mentor Jeremy). And I actively sought feedback, meticulously incorporating it into iterative improvements that further enhanced the functionality and user experience.

2023-08-24 23.06.04.png

Final Evaluation 9.4

After wrapping up coding and testing, I submitted a PR for experienced engineers to conduct a comprehensive code review. This led to an online preview, giving the product team an opportunity to provide optimization suggestions. Witnessing the feature I developed available for online preview was truly fulfilling, and Iโ€™m excited about the possibility of seeing it go live!

2023-09-04 14.09.42.png

Summing Up

Most important accomplishments:

  • Proposed and created an interactive web tour to facilitate the exploration of less prominent features including virtual study and group comparison, promoting efficient utilization of cancer genomics data.
  • Completed the end-to-end tests to verify the entire web tour from start to finish.
  • Delivered a detailed documentation for detailed steps of each tour, test procedures, and instructions on adding new tours.

Most significant challenges:

  • Achieved seamless transitions for web tour steps across multiple pages.
  • Completed end-to-end testing code to cover all functionalities I have developed.

Skills developed:

  • I have learned a new skill, end-to-end testing.
  • Donโ€™t be afraid to ask for help! Follow the โ€œ15-minute ruleโ€, if you donโ€™t have an answer after 15 minutes, you should ask for help.

The most satisfying aspect was successfully completing the feature development and making a meaningful contribution to the open-source community. The collaborative atmosphere within the team has been equally beneficial - my colleagues have been ready to lend a helping hand and offer optimization suggestions, enriching my technical skills and contributing to my professional growth!

2023-09-04 14.15.06.png

Thanks All!!!

Excellent mentoring, Jeremy and Ryan! ๐Ÿ‘๐Ÿ‘๐Ÿ‘
Your guidance was invaluable throughout the GSoC journey. Your timely feedback and insightful suggestions greatly enhanced my learning and project outcomes. Thanks both for your outstanding support! ๐Ÿ‘๐Ÿ‘๐Ÿ‘

Extend my gratitude to the product team, for their thorough product reviews. ๐Ÿ‘๐Ÿ‘๐Ÿ‘
Special thanks to Ino and Aaron for their valuable code reviews. ๐Ÿ‘๐Ÿ‘๐Ÿ‘
I appreciate Ino and Gaofei for patiently addressing my numerous questions. ๐Ÿ‘๐Ÿ‘๐Ÿ‘
And heartfelt thanks to many others who contributed to my success! ๐Ÿ‘๐Ÿ‘๐Ÿ‘


๐Ÿ“ฎ Feel free to hit me up about Google Summer of Code experience: Linkedin.
๐Ÿ˜„ Letโ€™s contribute to Open Source!