In A Contributor’s Story series, our major open source contributors and community members give us insight into the projects they are working on, the successes and challenges contributors face when developing, and best practices for getting started in open source. For today’s blog post, we have Abishek V Ashok, a Pysa contributor working on issues and code efficiency through the MLH Fellowship. Let’s learn from them how we can start contributing to Pysa.
“Open source has always evoked in me the joy of creative expression. Working on Pysa, it took me to new horizons and made me realise how much I love to learn about security and exploits.”
I am Abishek V Ashok, a 20-year-old from India. I am an open source developer and someone who loves to make things. I grew up in a small village and spent my childhood in my uncle's workshop watching him build and/or repair computers to earn a living.
At that time, a battery and bulb was enough to spur my curiosity, let alone the vivid parts of the bulb my uncle assembled and repaired. Computers captured my imagination in many ways. I could play games and do a lot of different things using them. The fact that I could build a fully animated and lively computer from inanimate parts really captured my imagination. It thrilled me to see what I write appear on the screen. Further down the road I realized that by changing and moving files around, I could actually mod games. It was my first step towards programming.
Later, I learned HTML, CSS, and PHP to host my mods for the world. Even though my dream website was never put online and I ended up using a forum, I discovered that I was having more fun writing programs than modding games. I participated and won various global competitions such as the Google Code-in competition and a few national ones such as the Intel Tech Challenge. I became an open source citizen and firm believer in software freedom and privacy during my participation in these competitions. I am now part of Fossasia, the largest open source community in Asia, and maintain many projects, both Fossasia's and my own personal open source projects such as Cmatrix.
The MLH-Fellowship has been an extension of my journey. Now, I am working on Pysa, Meta's static code analyzer as part of the fellowship.
I discovered open source in 2015 during a global programming competition called Google Code-in. As part of the competition, I was required to complete open source tasks. I couldn't understand why people opted for open source, but after participating in the competition and the community for three long years, I began to see the benefits of open source—particularly the heightened security of code, the amount of knowledge and learning it generates, and the warmth of the community. I now understand why so many companies support open source and how much one can learn just by being in a good open source community.
Open source excites me in a sense. It is an opportunity for me to know more people and contribute back to the world and/or community which has given me wings to fly as a programmer.
I am currently working on Meta's python static code analyzer by the name Pysa. Pysa is part of the Pyre-Check project and can be used to detect security issues in Python projects. I have pushed in 25 pull requests to date to either the pyre-check repository or the SAPP repository, an interactive viewer for Pysa issues with filtering support. I plan to add more contributions throughout and after the Fellowship.
I learned about Pysa and SAPP during the MLH Fellowship. I actually learned how to use these projects only after I was allotted it, but the concept of a tool to analyze security vulnerabilities quickly captured my attention. I then began writing code and solving issues for it.
There weren't any big challenges, the community, which is composed of Meta engineers, is very supportive and encouraging, which enables me to work efficiently.
Some of the resources I found useful were the Pyre check website, the documentation throughout the repository, the community, the internet, and last but not the least, our maintainer, who has been super nice and helpful throughout.
I have 25 pull requests pushed into both Pysa and SAPP. Of those, 19 have been merged. I have committed about 3,000 lines of changes and have fixed various bugs, added new features, and added coverage improvements to Pysa. I spent a considerable amount of time hunting down security issues Pysa didn't detect and adding coverage for them via Pysa model files.
It was fun learning about React and GraphQL. Although I did know Python, I never went deep enough to see various threads used by Flask, such was my experience in the fellowship. Having been new to React and GraphQL, I have grown to like React and prefer GraphQL and SQLAlchemy over naive databases.
I enjoy being in the community. I am learning so much, making so many connections, talking to people, and enjoying my time here at the Fellowship.
My biggest takeaway would be the commitment I was able to put into the project. It enabled me to work on real things that would be useful and learn in the process
Have fun! Open source is all about learning, so grab those tough issues and dive deep—and don't forget to have fun and make connections.
We would like to thank Abishek for taking time to share their experiences with us. It was very interesting to learn about the process of contributing to open source and we would like to thank Abishek for their continuous contributions to the Meta Open Source ecosystem. If you’re interested to learn more about Abishek’s work, follow them on LinkedIn and GitHub.
Open source at Meta is about more than just code. It's also about facilitating environments where collaborators from all backgrounds and experiences can come together to discuss ideas, foster innovation, and work on projects together.
This blog is a part of A Contributor’s Story series where we hear from various contributors about their experiences contributing to the open source projects under the Meta Open Source ecosystem, how to get started, the challenges and successes faced when developing, and what excites them about open source. Look out for more blogs from A Contributor’s Story series where we learn about various other open source projects and how to start contributing to them.