This is not a guide on how you should draft your own proposal. Instead, this blog focuses on what I did. I am sharing both my proposals, one which was rejected (2020) and the other which got selected (2021)
Hello World! This question has been asked again and again in my social media DM's "How do I write a perfect GSoC proposal which will get me selected?". Honestly, I don't have an answer for this. And I am pretty sure that no one else also has an answer to this question. Someone who tells you otherwise is bluffing (stay away from those clickbaity YouTubers!)
This blog is more of a walkthrough of my proposal writing process, which I hope will help you understand what is exactly expected out of a "good proposal". Again, focus on what is expected. This blog is not your ultimate guide to anything!
2020 Proposal - Mozilla
I was working with Mozilla for their project Treeherder. Treeherder is a reporting dashboard for Mozilla checkins. It allows users to see the results of automatic builds and their respective tests. The task under GSoC was to improve their developer experience, ie, make sure that this project eases out some of the development processes and tools for the Treeherder project.
The project is based on Django at its backend, uses React at the frontend, is containerized using Docker and uses some other tools like Celery, RabbitMQ and Redis.
For this proposal, the problems were listed out and honestly I had not much work to do. I simply proposed the solutions to the listed problems and added a few of my own which I observed. Mozilla had provided a sample template of their own to follow while making the proposal. Also, I contacted around 4-5 previous GSoC'ers under Mozilla and asked for their proposals. These were some of the common points that I followed -
- I made sure that every problem is associated with an overview of the solution. Since this is your proposal with multiple problems, it's better not to expand on too much. Had this proposal been based on a single problem, I would have expanded the solution and explained it thoroughly.
- I included sample code snippets, which showed how I wanted to approach my problem. Again, these are just sample code and may not need to reflect the actual thing.
- I made sure that I list all my previous open source contributions as well as all the contributions I have made so far in the project (including merged and open pull requests at that moment)
- I got my proposal thoroughly reviewed at least twice and made sure that I leave nothing for the last moment.
- Proper formatting with well-maintained margins and uniform text font can make your proposal 10x times better and readable. Mentors love to read the proposals which take less of their time and efforts, after all, they are human beings and GSoC mentorship is usually volunteer stuff.
I guess now that I see my proposal, it looks kinda ugly. I overdid the formatting of texts and wasn't consistent with the font styles. Also, I left too many margins and the font size was WAY TOO BIG!! Obviously, these were not the reasons for my rejection 😂 but I think I learned quite a lot from this.
2021 Proposal - GFOSS Open Technology Alliance
MediaCMS is a modern, fully featured open source video and media CMS. It is developed to meet the needs of modern web platforms for viewing and sharing media. It can be used to build a small to medium video and media portal within minutes.
I started formatting my proposal almost similar to what I did the last time. And it was such a disaster. This is how my mentor reacted with my first iteration -
- Why is your font too large?
- Why do you have so much margin?
- Why waste one page as a cover with the organization's logo. No one needs it.
- Why do you have so much space between paragraphs
- Why have you added code snippets? What's the point of writing copy paste code in the proposal. It looks shabby and gives the wrong impression.
And so, I had to revamp my entire proposal to make sure that it looks more professional and suits the needs of my mentor and the organization.
Here is the link to the repo containing my GSoC proposals
These tips were mostly related to how the proposal should look like. But here are some technical aspects of it that I learned -
- Never write stories in your proposals. Always ask yourself the question "Am I boring the reader?". Your proposal should be to the point and should only contain the exact requirement. No less and no more!
- Always try to make sure that you follow an organization's pre-defined templates. If you are not aware of yours, please ask your mentor beforehand.
- Make sure that you convey your availability and your project timeline in a very proper manner. This builds confidence in the mentor's mind. If you are not sure about this, take some time and do not rush in with this segment. The timeline of the project can be considered as one of the most important selection criteria.
- Always make sure that your mentor needs to have less time to preview your proposal. You really don't want to waste their precious time. Make sure that you get your proposal reviewed more thoroughly by your friends, previous GSoC'ers, your seniors or anyone who is willing to help you out!
- Your GSoC proposal is a technical piece of document. It doesn't need to have extra shenanigans. This is not your essay writing competition, where you will get extra marks for writing complex English. Always make sure that your proposal contains simple understandable language, and rather, contains more technical ideas rather than short stories.
- Always be open to your mentor suggestions. No matter how well you think of your own version of the proposal, if your mentor doesn't like it, it's of no use! As you have seen in my experience above, there was a contrast between my mentors' perception of the perfect proposal and how I saw it.
- Technicality is the king! (or queen). It all boils down to the content you write.
I hope that this blog was useful to everyone who is reading. As you must have observed, there are no sure short steps to a perfect proposal. It's a reinforcing way of seeing previous proposals and forming one on your own while matching your mentor's expectations.
Feel free to catch up with me on any of the socials. You can find the relevant links in the top right corner of this blog!