Back to News for Developers

Hasher-Matcher-Actioner: A Contributor’s Story with Franklin Phan

July 21, 2022ByNavyata Bawa

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 Franklin Phan, a 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.


“I couldn't have worked with a better community than with my maintainer, Dipanjan, and my partner, Samyak, on Meta's HMA project. Meta's Internet Safety team is doing good work and I'm very proud to have contributed to a project that makes the internet a better place.”

Tell us a little bit about yourself

My name is Franklin and I am a Computer Science graduate from Dominican University.

What excites you to work on open source?

What excites me most about working on open source is that I get to contribute to things that I believe in, projects that are awesome and where I can genuinely make an impact through coding.

What project are you working on currently?

I am working with Meta’s Internet Safety team on their Hasher-Matcher-Actioner (HMA) project. The HMA project is a content moderation tool that uses similarity search in media to classify potentially dangerous images and other media types to reduce effort for human reviewers.

How did you first learn about this project? What steps did you take to start working on this project?

To be honest, I found out about the HMA project when MLH assigned me to them, but it's definitely a project that I would be proud to work on regardless. Almost everything I've done on this project is something I haven't really done in depth before. This involves learning AWS and AWS Lambdas, Terraform and Docker. All of my work on this project is a result of the things that I've learned during the Fellowship.

Did you face any challenges or roadblocks along the way? How did you go about solving them?

I have made plenty of mistakes along the way. The project maintainer, Dipanjan, was kind and took these as learning opportunities, which made us very comfortable when sharing, troubleshooting and asking questions to him. He assured us that it was okay to not know things. He taught us that learning is just recognizing mistakes and remembering how to deal with them. There's comfort in the idea that I could become a great software engineer if I just keep learning.

What resources did you find most helpful when working on your project?

My maintainer, Dipanjan, as well as the AWS/Terraform and general Python documentation were a great help, along with the source code and its wikis.

What is the current status of development for this project?

I have merged multiple changes into the source code.

Reflecting on the work that you did, what did you learn about the project, process of development and open source as a whole?

I learned that coding involves more conversing, thinking and planning out loud, rather than just programming. Development is a collaborative process and that is even important for open source. If you bond with your partners, your mentors and your community, the coding experience is more fun and the learning process is a lot more effective.

What is the best takeaway you have from working on this project and open source in general?

Open source is cool; therefore cool people work on it. The OS community is friendly and doing good work for the world.

What advice would you give to future contributors to the open source projects?

Share your questions. It's the fastest way to learn, to understand and be understood.

We would like to thank Franklin 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 Franklin for their continuous contributions to the Meta Open Source ecosystem.


About A Contributor’s Story series

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.

To learn more about Meta Open Source, visit our open source site, subscribe to our YouTube channel, or follow us on Twitter and Facebook.