ShardingSphere x Google Summer of Code: Students, How Was Your Open Source Experience?
Recently the ShardingSphere community had the pleasure of contributing to the Google Summer of Code (GSoC), and mentoring the next generation of open source innovators. Our project was select to be part of this brilliant and long running program, to provide students from all over the world with an experience in open source software.
Thanoshan and Liangda are the students that worked with Apache ShardingSphere mentors during the latest GSoC, and continue contributing to the project ever since.
They were kind enough to agree to a phone interview with Yacine, one of the ShardingSphere committers and community managers — to share their opinions and experience with the GSoC application process, joining the Apache ShardingSphere project, and their future plans.
Country: Sri Lanka
University: Sabaragamuwa University Major: Computing & Information Systems
School: University of Mannheim
Major: Business Informatics
How did you get into software development?
Thanoshan: Basically, my degree is related to software development. And I’m personally very interested in this field. I was passionate about it even before starting university.
Liangda: Mainly through my current studies. During high school, I was interested in both business and computer science, then I decided to study Business Informatics, which is a combination of both subjects. That was the beginning of my journey in coding and software development, where I’ve learned Java, C++, Python, and design patterns etc.
How did you get the idea to apply for Google Summer of Code?
Thanoshan: Here, in Sri Lanka, many of my seniors have already done the Google Summer of Code. They strongly advised me to look at this opportunity and told me that I should definitely try it. So, I researched the GSoC program, for things such as “What is about? How can I work on that?”.
Liangda：The first time I got to know GSoC was during last year’s summer, I was surfing on the internet, and I accidentally found out a blog sharing about some GSoC experiences and application tips. I was really fascinated by this program. But at that time, open source was completely new for me, and I was not confident enough. Then during the winter of 2020, I got the chance to work as a research assistant at the university on a chatbot project using Rasa, which is an open source conversational AI framework. That was the first time I dove so deep into an open source framework and interacted with the open source community. It was a great experience for me. And the idea came into my mind, why not take the opportunity of GSoC to get to learn more about the open source world.
What’s so great about the program anyway?
Liangda: I think GSoC provides a really great platform for interested students to dive deep into the open source community and learn the newest technologies. There are almost 200 open source organizations participating in GSoC and each of them suggests several projects, which requires different kind of stack and technologies, from beginner level to professional level. So, I believe, every student could find a suitable project, if they spend enough time and effort. On the other hand, GSoC brings fresh blood into the open source community. So, it’s beneficial for both students and organizations.
What project did you work on during GSoC?
Thanoshan: ShardingSphere’s ANTLR project. I’m really interested in Java, and Java related technologies and it’s my one of the favorite languages. Also, I am very passionate about open source software development. So, I want to do something in Java and open source, to learn more from other people, something that allows me to collaborate with other people. The Java-related technology is the main motivation, which actually drove me in this project.
Liangda: My GSoC project contributes to Apache ShardingSphere’s parser engine, which handles different database SQLs like MySQL, PostgreSQL, Oracle etc. And I was focusing on proofreading the Oracle SQL definition of DDL (Data Definition Language) and TCL (Transaction Control language).
How did you start with your contributions with ShardingSphere? Any particular thing which made you to start contributing?
Liangda: That’s an interesting story. When I found the ShardingSphere project, which requires Java, Database SQL and Antlr knowledge, I felt that I finally found the one that matches my skills and knowledge. However, when I went to the Jira page, where the project details are listed. I noticed there’s already another student working on it since January–Thanoshan, another GSoC student .
At that time, he had already submitted a couple PRs and was making good progress there. So, I felt I have no chance here and I left and looked for other organizations. Then one day in March, I came back to the Apache Software Foundation project list and surprisingly there was a new project added by Apache ShardingSphere, but this time, there was no student working on it! So, I felt this was my chance and I should take this opportunity. Then I just started to work on the preliminary issues.
How is working with ShardingSphere? How easy is it to get started?
Thanoshan: On getting started with ShardingSphere, actually at that time I was not familiar with the ANTLR project (Another Tool for Language Recognition) and working with ANTLR, but then my mentor Trista created an issue, that’s like a great beginner-friendly issue.
She listed the number of tasks that we have to do and the processes to follow. So, I followed those steps, practiced and at last I also learned ANTLR, it’s not difficult. Actually, I feel it’s like intermediate level, but my mentor’s help and support made it become easy. So, I learned a lot from my mentors, as actually each of them helped me with the tasks. The mentors were 100% helpful, I had three mentors including Trista and the others I am not sure about their names now, but they are very friendly. They helped me a lot. I learned many things from them.
Liangda: It was hard for me to get started at the beginning, since I’m not coming from a strong computer science background, and it was my first time working on such large-scale project. It took me hours of effort to set up the package and I did face some issues during my first few pull requests.
However, the Apache ShardingSphere is a nice and friendly community, my questions got answered and I received a lot of help from other contributors. I feel I’m warmly welcomed in this community. And this is also one of the reasons I decided to contribute to Apache ShardingShpere.
How was your experience as a GSoC student?
Liangda：It was a really great experience. The program is well organized with clear timeline and schedule. I was able to learn a lot about open source development and improve my skills and knowledge. The GSoC student summit at the end of the program was also really interesting and informative.
What did you do differently in order to get selected for GSoC by ShardingSphere?
Liangda: I think I was really motivated and I’m able to dive deep into the issues I faced to find the root cause. If I could not solve the issue by myself, I’m not afraid to ask on GitHub directly. This makes me get started quickly.
And after I got familiar with my project, I also worked proactively to answer questions, review pull requests and fix other small issues. Beside this, when I was writing my project proposal, I communicated with my mentor regularly and asked for early feedback. It is important to know mentors’ expectations.
Is there anything that you would like to say to students who are looking forward to work with ShardingSphere in GSoC? Or do you have any tips for them?
Thanoshan: I would say there will be some projects that will be specified by the mentors and the ShardingSphere community. So, students will have to participate in the community even before the GSoC.
Students can approach the ShardingSphere community even before the program and work on some preliminary tasks related to the GSoC’s main task, which will definitely help them compete in the selection process. So, I would say that they should approach the ShardingSphere community as early as possible.
Liangda: Yes, I would highly recommend it and it will be a great experience for sure. There are some issues labeled as “good first issue” or “volunteer wanted”. Just go and try it as soon as possible! The easiest way to get started is learning by doing. And if you feel blocked, don’t be afraid to ask questions and express your thoughts! We are all here to support you!
Do you have any suggestions to improve ShardingSphere?
Thanoshan: To improve ShardingSphere? I mean it’s a huge project. And the plus point I see here is the documentation. It’s great. So, to be honest with you, I learned a lot about SQL. I worked on the SQL parser engine part of the project, so I learned the concepts of the SQL parser engine in the ShardingSphere project. For the improvement, I currently do not see anything specific. Actually, ShardingSphere is a great one. I really love to collaborate with the ShardingSphere community. I was able to understand the concepts very easily with the help of the documentation of the ShardingSphere. I also see that there are many community contributors who submitted pull requests for the improvement of the documentation. I’m an inquisitive person so I look around in the ShardingSphere documentation and codes, support, pull request, and issues all the time. So, when I set up the project the first time, I didn’t have this setup guide. Even though I use the Intellj, the JDK, and I set up it correctly, but I didn’t have the support at that time.
It’s nice to see that ShardingSphere currently has been adding the setup guides, so that the new contributors can easily jump to that document and read and understand what they have to do. So, it’s a great thing to have. I am happy for it.
Liangda: Overall, I had a great summer with ShardingShpere.
I would have loved to have some video calls with mentors and other students to get to know more about each other during the community bonding.
Things that people are passionate about help make them who they are. What are those things you are passionate about?
Thanoshan: I’m really passionate about Open Source. I have contributed to projects by a company called 99X, in Sri Lanka. They support some open source projects, so I contributed to at least five of their projects, with just simple contributions like adding a read-me file, contributors guide and improving the documentation and fixing some small bugs and so on. So that was the starting place for me, where I really became interested in open source.
Liangda: I’m passionate about building communities. For example, I was the president at the Association of Chinese Students and Scholars in Mannheim, which helps Chinese students in their studies and career. We also promote exchanges with German culture and society. And after GSoC, I become passionate about open source community! It’s nice to see people around the world working together to improve a product and support each other.
What’s on the roadmap for the next year for you?
Thanoshan: Next year, it will be my 4th year in college. So, I’ll be planning on completing my undergraduate studies and hoping to work on more open source projects as well and collaborate with the community.
Liangda: From October, I will start my master’s degree at the Technical University of Munich, and I will lead the Google Developer Student Club at the University, another great community! I will organize technical events and workshops for students interested in Google technologies. I am really looking forward to this challenge ahead. At the same time, I will still be part of the open source community and of ShardingSphere. Maybe I will attend GSoC again next year!
Do you have any questions for me or anything you’d like to know？
Thanoshan: Only one question. So are there any kind of tips that you can give me for an active contribution to ShardingSphere and making a significant impact？
Yacine: Okay, sure. So, there are many ways. One of them is the issues. We have the issues, and you can help with that. Or as you mentioned, the documentation is something that we are working on. I have seen you are a good writer. I read your piece on Medium, so that is something that you could help with if you’d like. Moreover, your article had a lot of readers, so it helps in community building.
Contributions can be made in many ways. There are code contributions, but also non-code contributions. Those are also equally appreciated by the community. I’m not sure if you have a desire to maybe one day become a committer in the Apache Community, but there is a voting process, and this type of contributions are considered when voting. I’m not sure if you have a desire to maybe one day become a committer in the Apache Community, but there is a voting process, and this type of contributions are considered when voting.
Thanoshan: That’s one of my goals! After I graduate, I definitely want to become a committer, it’s a goal I set for myself.
Yacine: Actually, I was talking about this just recently with the ShardingSphere PMC Chair. And he mentioned that the ShardingSphere community appreciates code contributions but even if someone is still learning and shows a desire to help, to learn and grow with the community, that is highly appreciated by the ShardingSphere community. And if you want to become a committer, there is a voting process, and if you’re happy with us and the project, etc., you definitely can achieve that.
Thanoshan and Liangda shared a lot of their experience with the GSoC and the ShardingSphere project and community. Our community really appreciates their efforts. The two GSoC students had really a good experience with the GSoC and ShardingSphere, a community where they can grow and also contribute to a large project with the help of supportive mentors and community members. So don’t be afraid of getting started!
The ShardingSphere community welcomes people of all skill levels and with different skill sets, that don’t necessarily have to be coding skills — to join and help the community grow.
If you are interested in the Apache ShardingSphere project, feel free reach out to us on our socials (links below) or check out our GitHub page.
ShardingSphere Github: https://github.com/apache/shardingsphere
ShardingSphere Twitter: https://twitter.com/ShardingSphere
ShardingSphere Slack Channel: apacheshardingsphere.slack.com
Yacine Si Tayeb
Apache ShardingSphere Contributor
SphereEx International Operations Manager
Passionate about technology and innovation, Yacine moved to Beijing to pursue his Ph.D. in Business Administration, and fell in awe of the local startup and tech scene. His career path has so far been shaped by opportunities at the intersection of technology and business. Recently he took on a keen interest in the development of the ShardingSphere database ecosystem and Open-Source community building.
Yacine’s Twitter: https://twitter.com/RedVega11
Thanks to the contribution of Xu Luomei for her help during the interview transcription process and the preparation of this article.
Xu Luomei’s LinkedIn: https://www.linkedin.com/in/%E9%AA%86%E6%A2%85-%E5%BE%90-b796461b9/