Google Summer of Code 2023

Google Summer of Code is a unique opportunity to engage with the open-source community. To work on exciting projects with established organizations, candidates must submit a proposal that outlines their project idea and explains how they plan to accomplish project goals during the coding period. I participated in the GSoC program as a student twice, I mentored students, and now I am proud to co-organize the GSoC program at Scalable Parallel Computing Laboratory (SPCL) @ ETH Zurich. My GSoC experience spanned multiple fields, from Java-based model checking, through high-performance computing in C++, up to serverless computing in Python and C++. However, regardless of the language and technology, there is one rule that applies to all projects: the proposal is the most important factor when evaluating a prospective student. It is the only way you have to convince mentors that you are the right person for the job.

The proposal should be structured around a few critical questions. First, it needs to explain clearly what problem you are trying to solve?. Then, you need to show that the problem is important for the organization and to you - are you excited to work on this project? Finally, the proposals should convince mentors that you will succeed. Did you check all dependencies? Did you check related work in other projects? Did you think about potential problems? All these factors demonstrate that you are a well-prepared and promising candidate.

  • Check existing resources. GSoC has been going for over a decade now, and there are countless articles and blogposts that help you to prepare for the program. Definitely check the official GSoC guide on writing proposals.

  • Learn from the others. Hundreds of students have conducted successful GSoC projects in the past, and many of their proposals are available online. These can be invaluable sources of good practices that will help you to write a more convincing proposal. For example, the official GSoC guideline includes proposal examples. Other organizations shared their proposals as well - you can find many examples in the Python Software Foundation and in this GitHub collection.

  • Be precise and concise. Proposals cannot be too short since they need to contain necessary information on project goals and timeline. However, there is no need to explain every library you are planning to use in detail. Instead, focus on aspects that are critical to your project.

  • Do your research. Every project has many potential pitfalls - what if the selected library is incompatible with the rest of the project? Is the framework you plan to use the best option, or are other faster, leaner, and more modern alternatives? Explaining your design choices in the proposal shows that you have thought through the idea and won’t be surprised by a foreseeable problem.

  • Procrastination does not help.. It is uncommon for someone writes a fantastic proposal in the last few hours before the deadline. Prepare the first draft early and share it with mentors to receive feedback. The best papers and proposals require multiple iterations of corrections and feedback to become really good.

  • Sell your skills. Emphasize skills most relevant to the project, and focus on experiences demonstrating your successes in managing projects of similar scope and complexity.

  • Last, but not least - be original. The recent introduction of ChatGPT made it possible to “write” long form documents with minimal effort. While many AI-powered writing can help you to write better English and polish your sentences, you should not let the AI do all of the work. And obviously plagiarism is not acceptable. Do not send proposals where you simply copied contents from another project or from a paper.




Enjoy Reading This Article?

Here are some more articles you might like to read next:

  • C++ Toolchain with Taint Analysis
  • Between fglrx and AMDGU: AMD devices on Linux
  • LLVM Machine Passes
  • String formatting with optional values
  • Measuring Azure Functions performance