Back to News for Developers

HHVM: A Contributor’s Story with Jonathan Warner

July 7, 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 Jonathan Warner, a HHVM contributor working on issues and code efficiency through the MLH Fellowship. Let’s learn from them how we can start contributing to HHVM.


“Working on HHVM/Hack was an amazing opportunity. The project's awesome maintainers helped me make my first open source contributions, and guided me to become a better problem solver and hacker.”

Tell us a little bit about yourself

I'm a UI Engineer from Harrisonburg, VA. I enjoy toying with CSS and building full-stack web apps.

What excites you to work on open source?

What excited me the most about working on open source is being able to make a positive impact on software while working with absolutely brilliant people. The maintainers that I have worked with on this project have been absolutely fantastic.

What project are you working on currently?

I am currently working on the HHVM/Hack project. Hack is Meta’s language derived from PHP to support their products, and HHVM is a virtual machine for executing programs that are written in Hack.

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

I learned about this project through the Major League Hacking Fellowship. Through this fellowship I have had the privilege to work with the project maintainers and contribute to the project with their support.

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

When I first started working on the project I hadn't written a single line of OCaml in my life, and I had only the faintest idea what a functional programming language was. This was a huge challenge up front, and I had no idea where to get started. The project maintainers recommended a book called Real World OCaml, which turned out to be invaluable. I am not a huge fan of programming books, and tried my best to avoid reading the book. Given that there are few online resources for OCaml, I was really struggling. After reading through the getting started guide in the book and asking questions about things I was unsure of, I was a lot more successful.

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

The HHVM/Hack project maintainers are absolutely awesome. They have been so helpful, responsive, and are brilliant. If you are looking to enter this space, check out the book Real World OCaml which is available for free online. The getting started guided tour in this book was so helpful in getting me started with OCaml.

What is the current status of development for this project?

My work on the Hack project has primarily consisted of writing quickfix functionality for programmers writing Hack. I've written a few fixes that have been merged and are actively making Hack developers more efficient.

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

Throughout my work on this project I've gone from knowing zero OCaml to understanding it better and really enjoying working with it. I've also had the chance to learn more in depth about how the Hack programming language works behind the scenes. Being able to contribute to the project and see that my code is being used by other developers is really exciting.

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

For me, the barrier of entry into open source was pretty high, but the community is generally full of people who really want to help you contribute in any way they can, and successfully getting your code merged into a project is a really good feeling.

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

Don't hesitate to ask questions! So many times I was so close to a solution, but was missing a critical piece of info. Asking good questions is an important skill that will save time and make you a better programmer.

We would like to thank Jonathan 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 Jonathan for their continuous contributions to the Meta Open Source ecosystem. If you’re interested to learn more about Jonathan’s work, follow them on LinkedIn.


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.