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 they face when developing, and best practices for getting started in open source. For today’s blog post, we have Samyak Mehta, Hasher-Matcher-Actioner contributor working on issues and code efficiency through the MLH Fellowship. Let’s learn from them how we can start contributing to Hasher-Matcher-Actioner.
“Working on Meta’s HMA project everyday felt extremely rewarding and gave me a whole new insight into open source work!”
I'm a third year student at the University of Toronto co-op program and I decided to do the MLH Fellowship to get a little more experience and meet developers around the world.
The most exciting thing about open source work is the feeling of fulfillment after your pull request (PR) gets merged into the codebase and knowing that you worked on an open source library and contributed to something that is used by tons of developers.
I am currently working on Meta's Hasher Matcher Actioner (HMA) project, which is part of their ThreatExchange project. HMA is a ready-to-deploy content moderation project for AWS that allows you to maintain lists of known content to scan for, which you can either curate yourself or connect to other hash exchange programs to share and receive lists.
Since I worked on the creation of a new feature rather than bug fixes, understanding the full codebase wasn't much of a requirement. I primarily worked on adding a new component, which was in Python, which I already had some experience with. However, it did involve a lot of web searching and troubleshooting as there were concepts I had never used before, which was a fun learning experience. I definitely learned a lot working on this project.
There were definitely a lot of roadblocks along the way. I first tried to troubleshoot the problem myself. If the problem still persisted after that, I reached out to the Meta maintainer and they were super helpful in troubleshooting all our problems. After the initial learning curve, I definitely progressed a lot faster.
StackOverflow has been of great help while working on this project.
We are working on implementing a new feature which we hope to get rolled out by the end of the Fellowship. I've had 4 pull requests (PRs) merged into the open source library so far, each showing the step by step implementation of this new feature we worked on.
I learned a lot about different Python modules, how codebases are formulated, the design and different ideas that go into these designs. I also learned a lot about AWS and Terraform, and how these technologies work and operate.
The best takeaway is to be open to learning new technologies and work towards being able to get your PRs merged. I feel like I’ve become a stronger developer at the conclusion of this Fellowship compared to when I began. That came a lot with guidance from the Meta maintainer as well as a lot of troubleshooting on my own.
The advice that I’d like to give to future contributors is that they shouldn't expect everything to work on the first try. A lot of things will go wrong and troubleshooting and finding your way around it is necessary. Hence, it is important to put aside and dedicate at least a couple of hours everyday to work on open source projects.
We would like to thank Samyak 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 Samyak for their continuous contributions to the Meta Open Source ecosystem. If you’re interested to learn more about Samyak’s work, follow them on 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.