Google Summer of Code/Mentors

Overview edit

As a Google Summer of Code (GSoC) mentor, you engage potential candidates in the application period between March and April and help candidates make small contributions to your project. You work more closely with the accepted candidates during the coding period between May and August. It is a great mentoring opportunity to introduce newcomers to open source through coding projects, make progress on new ideas that otherwise may be of a less priority to you, and in the overall process improve your professional development skills. Our participation in GSoC also helps us understand new developers experiences and help make improvements to the contribution guidelines and processes around attracting and retaining developers.

If you are considering to become a mentor, learn more below.

Responsibilities edit

 Before the program edit

  1. Read the GSoC mentors manual to get an overview of your responsibilities.
  2. See a list of past projects to gather new ideas. Note: Project should require an experienced developer ~15 days and a newcomer ~3 months to complete. Ideally, the project has no tight deadlines, a moderate learning curve, and fewer dependencies on Wikimedia's core infrastructure. Projects addressing the needs of a language community are most welcome.
  3. Add the #Google-Summer-Of-Code-2024 tag to a task on Phabricator about a project that you would like to mentor (example). Update the task description on Phabricator to match the template given for the #outreach-programs-project.
  4. Accept the invitation in the email sent by Google to become an official mentor.
  5. Talk to interested candidates. Share with them project details, goals and some ideas for implementation.
  6. Point them to self-contained, easy and newcomer-friendly microtasks listed in the task description.
  7. Communicate your preferred medium of communication and active hours to applicants. We suggest using public forums like Phabricator and Zulip instead of private email threads.
  8. Allow all potential candidates to submit proposals for the project until the official deadline.
  9. Review proposals on Phabricator and give feedback (ideally within one week of any request-for-review raised by applicants).
    1. Report any potential plagiarism (applicants who copied and pasted text, images, or concepts from another person or source without clearly citing and marking that source) to the organization administrators (per Google's guidelines).
  10. Assess proposals by following the selection process tips indicated below.
  11. Inform organization administrator about your decision.

During the program edit

  1. Set development & communication plans with your mentee. Aim to get a Minimum viable product (MVP) out the door and fine-tune plans as needed. Set aside time in your schedule for a weekly video check-in meeting with your mentee to help them stay on track.
  2. Help host new coding projects developed during the program on Wikimedia GitLab; Wikimedia is actively migrating all its repositories from Gerrit To GitLab. Be it any code hosting platform, ensure the code repository is public and available under an official global or local technical community account. This will not only give interns' contributions more visibility that they can add to their portfolio, but it will also be easier to maintain the project or bring more contributions to it easily in the future. Similarly, for documentation projects, ensure that no content remains on user pages before the internship ends.
  3. Encourage your mentee to submit new changes (for code, documentation, etc.) for review often, ideally every alternate day. Spend some time every few days reviewing their work and giving feedback.
  4. Encourage your mentee to submit bi-weekly reports and share project updates frequently on relevant wiki pages, Phabricator tasks, Zulip channels, etc.
  5. Involve your mentee in a local or global wiki community by introducing them to various projects & initiatives, how to get involved, connecting, and helping build relationships with fellow interns, staff and community members, etc.
  6. Before the program ends, make sure to document any open tasks, file known bugs or merge leftover code.
  7. Submit timely project evaluations to organization administrators.

After the program edit

  1. Share project outcomes in relevant communication channels (mailing lists, social media, chat channels, etc.)
  2. Share any lessons learned or ideas for improving outreach program documentation with organization administrators
  3. Recommend the next steps with your mentee for staying involved as a contributor in the project or community.

Selection Process Tips edit

  1. Seek long-term contributors, not just new features. It probably takes more time to mentor a project than to complete it yourself.
  2. Choose the best candidate, not the one that arrived first.
  3. Don't choose a candidate based only on a convincing proposal and past experiences. They must complete our recommended program guidelines.
  4. Be transparent in your communications with contributors and treat them all fairly.
  5. Don't share any information about final results with your candidates before the official announcements. This also means:
    • Do not assign a specific Phabricator project, or its dependencies to any potential candidates before the official announcement.
    • Don't make up your mind on a candidate before the submission deadline. Allow all potential candidates to submit proposals for the project until the official deadline.
  6. Do not share a single project idea between two candidates. Try breaking it up into individual non-overlapping modules for better evaluation of individual efforts.
  7. Look for feedback and endorsements on the proposal from the community members
  8. It's recommended to interview your candidate via an online medium.
  9. Ensure that participant would be able to put the number of hours as expected of them from the outreach program.
  10. Score your mentee and report to the organization admins. You could use the system below to rank them on a 1-5 scale (adapted from the Outreachy program):
    • 5 = amazing applicant, could become a maintainer on completing the program, made extensive contributions of high quality
    • 4 = strong applicant, will certainly do a good job, made substantial contributions of high quality (> ~50 lines of code or equivalent)
    • 3 = good applicant, but is somewhat inexperienced
    • 2 = is unlikely to do a good job
    • 1 = not a good candidate
    • Additional free software experience indicator(s)
      • + = enthusiast based on past actions (e.g. has a blog, has been to conferences, has an active GitHub account, or contributed to free software for some time)
      • 0 = proficient user of free software
      • - = no experience or very new to free software
  11. In case of a GSOC/Outreachy overlap -- consider a female GSoC applicant for Outreachy only if they are best or only candidate for a project that is not receiving a GSOC slot.
  12. If two applicants are ranked equally based on their contributions during the application phase, only then, consider their prior contributions to make a final decision. We strongly discourage giving priority to someone with prior contributions and fewer during the application phase over another candidate with more contributions during the application phase.

Resources edit