On May 6, the selected students for Google summer of code 2019 were officially announced. We, as mentors of the release-bot project, would like to thank all applicants and provide insight into our decision process.
Google summer of code is popular for the past several years which means that competition is really high. For our project, release-bot, this was definitely the case. We had several very promising candidates providing early contributions. The code which was written during the application period resulted in the new release `0.7.0` of release bot, thank you to (in alphabetical order) @Aniket-Pradhan, @Elias999, @marusinm, @shresthagrawal, @Toaster192, and @Z0Marlin
So, how did we choose?
In order to be transparent, we’d like to show you the criteria we used for selecting the candidates. You can get inspired when applying for our projects in the future. Here we go!
- Introduce yourself and show us what you can do! Making an introduction is always a nice start of your journey. Tell us how you are and where are you coming from.
- Quality over quantity. The truth is that we really seek quality and perfection. For us, it’s more valuable to do 2 pull requests which are very well-done and merged quickly rather than having 8 pull requests which take weeks to merge and need to be changed constantly.
- Well-structured code wins. It’s one thing to understand the syntax of a language but writing a well-structured sensible code is a completely different skill. Practice makes the skill perfect — you can easily start browsing sources of popular open source projects and trying to understand the structure and think if it’s good or bad. This is why we prefer students who have a good sense of code structure and application design.
- Be engaged in the project. If you think that doing X amount of work is just enough to be selected, you’re just wrong. We prefer accepting people who are constantly engaged in the project and respond to new issues and pull requests. If you are silent for a month, that’s an indicator for us that you are no longer interested.
- Share your intent before doing real work. It is very important to discuss your solution with the community before you start actually working on it. It is a perfect way how to validate that solution you are thinking of makes sense also for the others. Remember that sometimes we all think that our ideas are great even though they are not.
- Research and design are key. Before you start writing code it is always worth spending some time doing research. You can (and you will usually) find out that for some problems there are already good solutions and you don’t need to reinvent the wheel. We also prefer when the solution is elegant and easy to understand for everyone. If you are not sure about the design, as we mentioned in the previous point, discuss it with maintainers first.
- Don’t flood the mentors. Mentors are here for you, but they are humans too and need some time off. Asking simple questions 15 times a day instead of searching the Internet is not the way to go. The better way is to set up a periodic meeting with the mentors and prepare all the questions up front.
In the end, we would like to congratulate to all accepted students in Fedora organization and encourage those who did not get accepted to continue work in open source projects and try again next year. Happy summer coding!
rpitonak and ttomecek.