Navigating open source — AMA with Vinit Shahdeo, Software Engineer @Postman & Github Star
Open source is a weird landscape to get into, there is a lot of general advice on how to get into it but it is still very confusing for newcomers. GirlScript Delhi NCR had the pleasure to conduct an AMA session with Vinit Shahdeo, a VIT grad working at Postman, where he answered YOUR questions. He has been recognized as a GitHub Star (if you don’t know what it is, just know that there are only 46 of them in the world). Here is what he had to say about some of the most popular questions:
How do I contribute in open source and how to get into GSoC?
Step 1 is to find an organization that is looking for someone with your skills. Choosing a project that you have used before or are familiar with goes a long way. A very important thing to keep in mind is to look at the previous year’s organizations and keep your eye on 2–3 orgs for the off chance that one of them does not get selected this time. October/November is the perfect time to start this process. To start making contributions head over to the issues tab and filter by tags, most have a good-first-issue or low-hanging-fruit type tag that is meant for newcomers and get started. A very important thing that people often forget about is to keep contributing not just for GSoC but beyond that as well. And of course, having a good proposal also helps to get selected.
What do you think about GSSoC?
It is a great beginner friendly way to get start your open source journey. The projects are smaller in scale and are thus easier for beginners. The mentors are also very welcoming and patient. The project Vinit mentored under GSSoC was Water Monitoring System.
How can I go about understanding the codebase?
To start off go through the readme first as organizations usually mention the contributing etiquettes and resources there. Then choose a specific issue by selecting suitable labels and go through the code/discussion of that specific issue. As an additional tip, every project has various tests that the contributions have to pass. These unit tests and/or system tests can teach you a lot about the architecture of the project and deepen your understanding. But most importantly, don’t panic! Understanding a new codebase is not easy and it’s going to take a little time to get the hang of it.
Are there any sites where we can find all open source projects to contribute to?
There are various sites that aggregate all the open source resources you need to get started. To name a few:
These websites have a large collection of issues/projects and seeing so many options can seem a little daunting so its best to filter through the list with the help of some labels and look for something that interests you.
How to make a good proposal?
First off don’t make grammatical mistakes. Secondly, use flowcharts and UML diagrams which make it easy to understand. Also go through your organization guidelines and see what they are looking for. Seeking feedback from the mentors and GSoCers will help improve your proposal a lot since they know exactly what the organization wants. Get it reviewed by multiple people and incorporate the changes they suggest. Proof-read your proposal multiple times, you will definitely pick up on some mistakes yourself. As a last note, plagiarism is not cool; if you have used someone else’s diagram or idea please credit them appropriately.
What one should do if he doesn’t like coding but still wants to make a change?
Luckily for you, projects are more than just code, you can still contribute by giving ideas and logic and keeping up with that. Bigger projects also need something you maybe haven’t thought of: managing the community. Afterall, someone needs to be organizing all the developers to work together and to organize sessions for beginners that want to get in. There are more ways to contribute than you think!
Can open source help in getting a job offer?
Yes, definitely. Some companies like Gojek even keep open source as a requirement/qualification. It shows the companies that you are not only capable of writing production quality code but are also passionate enough to do so in your free time. It can also result in direct opportunities from the organizations you are a part of.
This summer, Vinit will be mentoring a project for Postman — AsyncDiff, under GSoC. As the session came to a close, he concluded by saying that it isn’t enough to learn about tools, but also how to build tools. Subjects like DBMS, DSA, CD and OS are important and not be missed.
Overall, it was a very interactive session that everyone involved was happy to be a part of. If you want to know more about his journey you can read about it here. Keep your fundamentals strong and keep smiling :)