A Summer of Google: Priyadarshi Raj's Open Source Conquest
Aiming to pursue a career in Computer Science and Engineering, third-year Priyadarshi Raj has great insight and experience in open source software development- a lesser pursued but more versatile form of coding in current trends. Open-source software development allows a developer to have access to the source code of the software products and with an open-source license to study, visualize, change and improve its design.
In the summer of 2019, Priyadarshi Raj got selected under probably the most famous open-source student development program, Google Summer Of Code(GSoC). GSoC provides students with an opportunity to work under and be mentored by the biggest tech-giants of the software industry in a self-proposed project. One of the most prestigious programs in the coding industry, GSoC provides students with maximum exposure and lets you get your hands dirty with the latest trends.
Following is an excerpt from a conversation team Monday Morning had with Priyadarshi Raj, where he talks about his selection procedure and shares his experiences with us:
Monday Morning: How did you get to know about GSoC?
Priyadarshi Raj: It has quite a long story behind it. My mother is an MCA and used to do loads of projects back then. Initially, I used to just look at those projects, but gradually I developed an interest in software and other technical things related to it when I was just in 6th standard. I opted for Computer Science in High School which was when I got to know about GSoC from my friends and online articles. However, I knew GSoC as just an event and was not familiar with the procedure and its functions.
MM: It has always been a misconception among students that Google Summer of Code is an internship. What according to you is GSOC?
PR: GSoC is not an internship program at all. Honestly, even I do not know what GSoC can be referred to as, except an open-source platform for coders to code and get paid. Talking about Industrial Internships, the company makes you work on some software or technology where you are working as a student developer; you’re is not exactly that of a complete a developer and nor are you completely a student. You are also provided with experienced professionals to mentor you throughout your internship. GSoC is very much similar to an internship in terms of the level of work we do, but it has been explicitly mentioned on the website that it is not an Internship Program.
MM: Being mentored by some of the best software developers from tech giants, what was your overall experience?
PR: The mentors were very humble and frank. They would solve the simplest of our doubts in a very patient and kind manner, which was very helpful to me and because of this I could work with them so smoothly. I never expected this from the mentors, on the contrary, I thought the mentors will be more like strict professors. They did give us a lot of attention and it was a very nice experience working with them.
MM: Getting into GSOC is not a one-step process. Walk us through the multi-step process you had to go through to get into GSoC.
PR: First of all, you go to the GSoC website where you will find a list of several organizations participating in it and each of them has a certain number of projects under them. Students need to apply for the organization they would like to work with and then the organization will shortlist the best candidates for their projects. Each student shortlisted by the organization will be alotted a project on which the student needs to work during the summer. Before all this, the student also needs to informally contact the people from the organization who may become their mentors after the allotment. The chat usually contains tech-related talks, the student needs to go to the chatroom and ask several questions like,” Can u tell me the basic point where I can start from”. They will then send the student some articles or links containing all the information as to what the student needs to do.
The student then simply needs to follow the steps and the next thing is to create a proposal where the student has to mention the projects he wants to work on, it's status, a plan for summer on the project and previous experiences. Before submitting the proposal on the website, it is better to first send it to the would-be mentor in contact so that the targets mentioned can be revised as they know the project better than any outsider and may suggest amending the proposal accordingly. After the submission of the proposal on the GSoC website, the student just needs to keep calm and wait for the results.
Talking about his future plans, he says:
I'm pretty interested in game development and UI/UX. So as soon as GSoC ends, I'm planning to get into open source projects in those fields. Never had any serious placement plans, pumping up my own superpowers is my first priority.
MM: Is there an aptitude test for it?
PR: GSoC does not conduct any test but the organization you choose to serve may ask you to cross some hurdles, in my case I was asked by my organization to work on another project. I fixed some of the issues on that project and only then could I submit my official proposal. I even had to mention the work I did earlier on that project in my proposal. So, you just need to prove your worth to the organization to get selected.
MM: Tell us about your mentoring organization and the project you were working on?
PR: My organization’s name was Moving Blocks. Their flagship product was Terasology which is a game engine and can be considered as an open-source clone of Minecraft (one of the most popular games). Minecraft is totally based on a cubicle world which makes it a closed source whereas Terasology is an open-source due to which it is much more extensible and customizable.
My project was over Terasology Launcher, an application that needs to be downloaded before starting Terasology. It is more of a Terasology manager and lets you know whenever there is an update or another version for your device. I proposed to improve the Launcher and add some more functionalities to it like backup and restore of the saved game, data and a lot more things. I am still working on it for the last 2 months and have to work for one more.
MM: Is there any role a student’s institute may play in buying him a ticket to GSOC?
PR: The tag of the college has nothing much to do with it but one of my seniors, Om Prakash Bhai, helped me know the exact procedure. He is in Tiburon and has his startup now. He helped me throughout the proposal and told me what all to add, how to start the chat and everything for which I am thankful to him
MM: What are the programming languages and skills that you worked within your project?
PR: Honestly, I will say JAVA is my forte. I essentially worked with two programming languages- JAVA and Kotlin which is an updated version of JAVA. But in my opinion, just learning the languages would not help. You have to comprehend their proper applications in the project and get used to it. One also has to be bold with the current technological applications like their frameworks, their updates from the server and how their User Interface (UI) works. I also learned and worked with other frameworks like SSH(Secure Socket Shell), HTTPS, JavaFX which is designing software for UIs of JAVA. For Open-Source development one has to be very well acquainted with GIT as all the work is done on GITHUB. I also used a couple of build automation tools like Gradle and Jenkins. These are the tools that I used in my project.
It does not make sense to hire smart people and tell them what to do; we hire smart people so they can tell what to do.
MM: As you got to work with an international software giant- Moving Blocks. Compare the technological trends there and the trend popular in NITR.
PR: To be honest, I have never really got in touch with the trends that have been going on in NIT Rourkela coding culture. But the one thing I have noticed is that people here generally practice competitive coding. On the other hand, in the open-source culture, they ask the basics of Data Structures and some basic core computer science questions. In competitive coding, you can learn all the theory and practice all the questions in the book and crack any interview. But in the open-source culture, you know all the technology and frameworks but the issues that you face are real-life issues, issues that a user of your product is facing while using your product. One more thing, the environment of NIT Rourkela is not properly set up for open-source culture right now. Students need to get out of theoretical knowledge and start working on real-life applications.
MM: Tell us about the experience that you got from it and what new things you learned from GSoC?
PR: The experience with the organization was pretty good. I learned a bunch of new frameworks and wrote a lot of code. But all of it didn’t actually make it into the official source code of the product. After you get an issue, they tell you the consequences of the steps that you are proposing to take. In that way, you learn a lot of new ways to do the same things. But most importantly, you learn working in a team. One of my mentors was from Germany, and one was from France, so we were from different time zones. As a result, I learned how to manage my time accordingly. Another thing that I learned was working with “Legacy Code” which is a hard thing. When you work on your project, you build it from scratch and know everything about it. But when you work on a code built by someone else, you don’t know the whole base of it. Sometimes you will update and issue and expect it to work fine, but then you get a customer complaint stating a system crash down. So, all in all, it was a holistic experience.
MM: Do you have any message for the budding coders and software enthusiasts of NIT Rourkela?
PR: I would suggest, before getting into GSOC or even preparing for it, get yourself acquainted with open-source development first. It might seem intimidating in the beginning, but the risk is worth the reward. Even if you’re not preparing for GSoC, you can start contributing to open-source through GITHUB. It is something you will be actually working with after you get placed. So it has more output than you think. It is something which will help you leap out of the books into the real world. Other than that, always feel free to contact me for any help related to open-source development. Just drop me a message on Whatsapp and I will be happy to help.
I would say that we engineers have already come through a lot of competitive exams, but it is more of a collaborative process. So, I will say, “Stop competing and start collaborating.”