GitLab participated in Google Summer of Code for the first time this year. We hosted four student interns to work with us on four different projects under the supervision of two or three mentors each.
For the past 16 years, Google has hosted the Summer of Code to introduce students to the world of open source. Over the summer, student interns work on a project with an open source organization and are closely mentored by the developers of the open source project. More than 200 organizations participated this year.
We started off the summer with a two-week long community bonding period to get our students familiar with how we work at GitLab and helped them set-up their local development environments. During the 10-week program we worked through scoped projects with regular check-ins and a final demo to conclude the program.
Meet the students
Alejandro, a CS student from Argentina, worked on enabling Courseware as Code through his project. Check out his video presentation here and read more about the project here. Alejandro said:
They quickly made me feel welcome and part of Gitlab. All of the topics to choose from were very interesting, and all mentors seemed great.
I would like to highlight a moment during GSoC where I wasn't able to do my normal workload due to a personal problem, and my mentors where incredibly supportive and understanding.
Anshuman, a CS student who joined us from India, collaborated with the Static Analysis team to work on writing vulnerability detection rules for SAST. Anshuman said:
For a beginner, it is normal to feel insecure about achieving specified tasks in your group.
I am glad that my mentors Julian and Ross were there at every step of the program to provide support and clear my doubts about anything. It was such an enriching experience for me. I am glad to be the part of GitLab for this Google Summer of Code edition. :)
A computer engineering student from Tunisia, Cyrine worked with the Static Analysis team on porting SAST and Secret Detection rails platform code to GitLab CE.
The project went very smoothly. I was able to achieve almost all of the planned milestones and I'm currently still in contact with my mentors, working on what was left. I enjoyed getting an inside look into how open source projects are maintained as well as how they evolve through time. It was also interesting to see the impact of historical architectural decisions on what could and could not be done later on.
Now in his final year of schooling, Shubham from India helped the Geo team improve our backup and restore features.
Mentorship was amazing. Mentors helped me a lot whenever I had problem. Contributing to GitLab is very welcoming. I absolutely loved it.
GitLab mentors share their thoughts
What went well?
- External organization
- The folks at Google were well organized, the entire schedule was available right at the beginning and the reminder emails were very informative and well timed.
- We used it to create our own calendar and that was very helpful.
- Asynchronous working style
Having recorded meetings and an agenda doc was really helpful, especially for cases where one mentor went on holidays it was easy to catch up on things. Writing up a planning epic with our student Anshuman was really helpful to make sure that we were on the same page and to clearly define the project deliverables. - Julian Thome, senior vulnerability research engineer at GitLab.
Related to this, GitLab's default mode of working that favors asynchronous communication and the written form feels very well-aligned with GSoC and working across time zones. Even without a large amount of overlap between working for myself and our mentee, it felt very effective and like we had a strong foundation in place to support communication and workflows (just point to our existing handbook and docs). - Lucas Charles, staff backend engineer, Secure, at GitLab.
- It was really useful to have two mentors on the project. This way it was easier sharing responsibilities and managing other priorities, especially when one mentor was out.
What could be improved?
- We had considerable engagement on the project proposal issues but not as many applications.
- GitLab is huge and a complex object model for students to hold onto.
- Running GitLab locally requires a lot of resources.
The fork contribution model wasn't efficient for some projects.
- Define the required skills for the project better
Since GSoC is 10 short weeks, making sure that the student has acquired all the required skills for the project before it starts would have allowed us to reduce the overall mentoring workload and to use mentoring time more efficiently by focusing on the project objectives. Next year, we can make better use of the "Community Bonding" period by giving the students more guidance and some time upfront to learn the required technologies/languages so that they are fully prepared before the coding phase begins. - Julian
- A clear "victory task," possibly in the frontend, would have made some of the projects more "visible" and would have felt more complete.
Tetiana Chupryna, senior backend engineer, Secure, at GitLab sums up the experience of the mentors really well:
This program gave me a feeling of deep fulfilment as I was able to look at GitLab through the eyes of a community contributor and I hope that this project was useful for our student in her career, and she will return to GitLab one day as a contributor (we were lucky to have her on this project). So it was a summer well spent 🍎.
We hope GitLab can be back at Google Summer of Code next year!
Cover image by Raphaël Biscaldi