My name is Rahul Saini. I am a final year Computer Science undergraduate at IIT Mandi. I worked on “The Front-end Inline Editing” feature for Joomla 4.
As GSoC has ended, I would like to share my experience and tips with you all.
About the program
A common misconception is that this program is an internship offered by google. If you are just beginning you might have thought the same. It is a program where you get to work with the open-source community and make significant contributions. For example, I worked with Joomla, which is the second most popular CMS. There are many other big open-source projects which participate in GSoC. You can find out about it on the official GSoC website.
We know about the cycle that you need the job to get the experience and the experience to get the job. Many start their journey with open-source projects. You can add your contributions to your resume. This program offers the same benefits, except you get a mentor to help you and it’s a paid program.
How to get selected?
A few tips that helped me and the people I know.
Start early. Learning anything new takes time. So if you want to be good at it, you need to spend enough time learning it. And if you start early you would already know so much about the organization that when the GSoC begins it would feel like any other normal day.
Every org is different. Learn the organization’s ways. Stick with one or two organizations. You can submit up to three proposals as your project.
Make a detailed project proposal. This wouldn’t be difficult if you had already been interacting with mentors. Most organizations would review your proposal before you make a final submission. So, make full use of this opportunity.
How to write a good proposal?
Look at previous years’ proposals. You can see 2021’s selected proposals in this github repo.
A few questions that you might want to ask.
Is it practical to complete the project in the allotted time? Look at the GSoC website to see how many hours a student is supposed to work. Make reasonable goals accordingly.
Do you have goals with deadlines? You might want to break down your projects into weekly goals. This way, at the end of the week you can tell where you are headed. This has helped me a lot. (This trick can help in daily life too.)
Got selected ??
Here are a few tips. Communication is the key. You will know when you go very wrong. Let me share one of my experiences. I tried to use the existing method X to save the articles, but X wasn’t fulfilling all the needs, and making any changes in it would have side effects. So, I wrote a new method Y for inline editing. It was saving articles, but Joomla has many parts that depend on one another. Like, there is a separate reusable code to maintain the history of the articles. Now I thought of adding support for it and told my mentors about my plan. He suggested that even though X doesn’t fit the needs, we should try to reuse it. As soon as I completed the Y by reusing X, I no longer needed to care about how the different parts are interacting with each other because now we are reusing the existing workflow.
GSoC isn’t just about coding. It is also about getting to the open-source community. If you got selected, you already have the idea of the features you would be developing. The main goal is to meet new and awesome people.
For details about my work, see this github issue.
The way ahead
In the beginning, I wasn't familiar with Joomla. I have come a long way from not knowing anything to designing and implementing a core Joomla feature. I plan to continue this journey.
The Inline editing is new for Joomla. The backend modifications are completed. Since Inline editing is about a better user experience, improvements can be done in the front-end.
Thanks to Google for providing this opportunity, to Joomla for managing everything and providing a seamless experience during the whole process, and my mentors for guiding me at every step.
Roland Dalmulder reviewed my approaches and code throughout the project. He helped me in writing a strong GSoC proposal by giving a challenging assignment in the beginning. Code refactoring wouldn't have been possible without Aníbal Sánchez. He showed me the right direction to think in. I learned from him about the internals of Joomla, like different design patterns used in Joomla.
Shivam Rajput and Benjamin Trenkle managed all the GSoC projects under Joomla. They organized meetings and kept eye on the progress of the project.
Twitter handle: @__RahulSaini