Google Summer of Code 2020: A Mentor’s Perspective

Google Summer of Code logoGoogle Summer of Code (GSoC) is a summer initiative that allows students to obtain a first deep dive into Open Source projects.

It has several benefits:

  • GSoC creates bonds between students and Open Source communities. Some, but not all, students continue to contribute to the Open Source project they worked on after GSoC
  • This initiative is a two-way street. Working on an Open Source project goes way beyond writing code (or tests, or documentation, etc.). It’s being part of a group, which can support the individual on the task at hand, but also provide a supporting and nurturing environment.
  • Last but not least, it gives students hands-on experience working in companies beyond academics. In some places, getting one’s first job is hard, as companies want to hire developers with experience. GSoC is a good opportunity to get this first experience.

For the first time in 2020, Hazelcast submitted to be a hosting organization for GSoC… and we were ecstatic when we received our notification of acceptance. As it was our first year, we only received 2 slots but the experience was so beneficial to both us and (I hope!) the interns that we intend to renew it next year.

The gist of GSoC is to pair a student with a mentor and let the magic happen. This year, Marko Topolnik and Bence Erős were our mentors. In this post, we asked them a few questions about their experience.

Hello, Marko and Bence. Could you first introduce yourself?

  • Marko: I’ve been with Hazelcast since 2015, doing Hot Restart persistence as my first task. Today, I’m the tech lead of the Hazelcast Jet team. I also like hanging out on Stack Overflow, mostly on the Kotlin Coroutines tag. It’s a language feature the Jet team would really like to see in Java!
  • Bence: I joined Hazelcast in 2019 October and I’m a member of the Management Center team as a senior developer. Previously, I worked in various industries (logistics-related R&D, language processing, healthcare IT). My most significant open source contribution was a JSON schema validator, implemented in java.

What motivated you to be a mentor in Google Summer of Code? Did you already have any teaching experience? What were your expectations?

  • M: I used to work at the Zagreb University teaching Java. I enjoy working with motivated students, helping them learn not just programming, but also the ropes of being a software professional.
  • B: I used to be an associate lecturer at the University of Debrecen (Hungary), and later I mentored a couple of interns at my workplace. I always enjoyed it a lot and considered it as a valuable activity, so when the opportunity came across in Hazelcast to be a GSoC mentor, I thought why not.

Could you tell me a little about how you approached your mentoring? What was your relationship with the student? How did you work day-to-day?

  • M: I used my experience from the university, where I noticed that mentors generally tend toward too much ceremony, dragging the student’s attention away from the essence of the work. I emphasize close interaction and iterating over the design ideas quickly, in the informal setting of a chat. Purely verbal communication has many drawbacks and there’s plenty of opportunity for misunderstanding. You have to practice it with each individual to get better and more efficient at communicating the ideas in both directions.
  • B: we started working on the project during the community bonding period because there were a couple of refactoring tasks to be done before getting to the actual feature implementation and this imposed some risk on the completion of the project on schedule. We stayed in close connection with the student all over the summer, we talked on gitter 3-5 days per week, and also I gave him detailed feedback in PR reviews (fortunately that was doable since the whole project got broken up into a dozen of small-ish PRs). Luckily, the student accomplished everything he listed in his proposal by the end of July (a month before the final deadline) so we could also implement some stretch goals. Overall, we were in a friendly working relationship and the student will probably continue as a member of the Hazelcast contributor community in the future, so we will keep working together.

What’s the takeaway from this experience? Would you do it again? What would you do differently?

  • M: I highly enjoyed my interaction this year, it was smooth at the beginning and got even better over time. The student did an excellent job and was also very happy with the way things worked out in the project.
  • B: I would definitely love participating in GSoC as a mentor again next year. Maybe I would try to get my mentee a bit more engaged in the community, and try to answer user questions on the various community channels we have (StackOverflow, Slack, Google Groups).

Would you have any advice for students who want to take part in GSoC 2021?

  • M: To be honest, I don’t know what advice I could give to the participants at large, but I’m happy to share some advice with students who consider applying to my projects: make sure you bring a lot of enthusiasm and the desire to do some honest, serious work. Don’t expect a typical professor-student relationship, I’ll want you to become my colleague for the summer. Keep asking questions, keep the ideas coming, and you can achieve something you’ll be proud of.
  • B: My single advice would be: don’t rush. It is much more valuable from a mentor’s perspective to provide good work at moderate speed than submitting mediocre quality code in haste.

Any parting words?

  • M: If you’re interested in the inner workings of distributed systems, especially stream processing, if you feel you’re ready for a serious challenge, I’ll be happy to take that journey with you and let you experience what it’s like to be a part of the Hazelcast Jet Core Team!
  • B: GSoC is a great opportunity for students because not every university can offer such great options to participate in significantly large-scale and quality software projects, so I encourage everyone to apply and give it a go.

Thanks a lot Marko & Bence!

At Hazelcast, we know first hand Open Source is not only about people contributing to our codebase. It’s a whole process that benefits everybody involved.

If you don’t want to wait until GSoC 2021, we intend to be part of Hacktober. If you want to start (or continue!) your journey into Open Source, Marko, Bence and our whole engineering team would be happy to help you along the way.

In all cases, come in and say hi, it’s just a Slack away.