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 theyface when developing, and best practices for getting started in open source. For today’s blog post, we have Michelle Shen, 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.
“Getting to work with people from around the world on improving the developer experience for Hack and HHVM was a truly unique and eye-opening learning experience in the world of open-source!”
Hey everyone! I'm Michelle, and I'm currently in my second year at Georgia Tech studying towards a joint BS and MS in Computer Science. Last summer, I was a part of Meta's Production Engineering Fellowship, and this spring, I joined the Fellowship as a Meta Open Source Fellow. On-campus, I'm involved in organizations promoting female representation in engineering and a research project team that works on dancing robots. In my free time, I enjoy eating pineapples, folding origami and making music!
With open source, you get to not only use cool technologies, but get the chance to see how they work, and even contribute to them. When I first started gaining interest and learning about computer science and software, using open source projects and reading articles that were written by open source community members greatly guided me through the vast amount of software on the internet.
Now, having gained a bit more experience, I'm able to appreciate how amazing open source is: working simultaneously alongside people around the world on a project that anyone can use for any number of interesting projects and applications. My favorite part about open source is that it's an endless opportunity to both obtain new knowledge and contribute your skills and abilities to expand the knowledge pool of the internet in the form of an ever-expanding array of interesting projects.
I'm currently working on Meta's open source HHVM project. HHVM stands for HipHop Virtual Machine and is a virtual machine specially designed to execute programs written in Hack, an object-oriented programming language that was built by Meta to build massive-scale, reliable sites.
I learned about this project through Major League Hacking's Open Source Fellowship. Before starting on the project, I was asked about my interests and skills so I'd get to work on a project that would be both exciting and challenging for me.
Having had no experience with both Hack and OCaml (the programming language I would be using to contribute to HHVM), there was definitely a steep learning curve. With the codebase being so large and the language unfamiliar, it was hard to know where best to start, but I solved this by jumping in at the basics. I learned more about the purpose and semantics of Hack and taught myself more about coding in OCaml and functional programming in general.
The maintainers I was working with were also incredibly helpful and recommended to me some great resources that I was able to use to further my knowledge. Soon enough, I was comfortable jumping into the codebase and playing around with the issues I was assigned, learning more as I went. There were many other challenges and roadblocks along the way, but they all turned out to be wonderful learning experiences that I was able to work through and learn from!
Without a doubt, I couldn't have made as much progress and learned as much as I have without the help of the awesome project maintainers, Wilfred and Shayne, who were always open to my incessant questions. I also found great help from my project partner, Jonathan, who has been a sounding board for my ideas and is always open to meetings.
Over the span of the Fellowship, my partner and I were able to land around 11-12 pull requests (PRs) to solve their associated issues. Except for one that's currently being reviewed, all of them have been merged. Over the few weeks they've been available, we have already had over 600 usages and over 292 users! Seeing the contributions I've been able to make being offered and used in production has been such a uniquely wonderful experience!
This was my first time making significant code contributions to an open source project, so I learned a lot about how contributing to open source works. The most intimidating part of open source for me at the start was how any individual could get started working on a new project, and I was able to learn more about how that worked through this Fellowship! Through each PR review and every question at every meeting, I also learned more about software development in general and how best to structure code for it to be readable for future maintainers to continue adding on to.
The open source community is incredibly friendly and open to new contributors. I know I was worried I wouldn't be able to make meaningful additions before, but through this process, I've seen that there is so much you can do if you're willing to try something new and put effort into it! I'll definitely be a lot more comfortable looking into new projects to contribute to in the future.
I would say don't be afraid to try something new! I know when I first started working on HHVM, I was worried about how much I could do for the project having not had exposure to the technologies we were using and building for. But in the end, it was an amazing learning experience that has allowed me to contribute meaningfully to an open source project while also learning more about technologies and skills that I might never have been exposed to without taking the opportunity to work on something outside of my comfort zone.
We would like to thank Michelle 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 Michelle for their continuous contributions to the Meta Open Source ecosystem. If you’re interested to learn more about Michelle’s work, follow them on LinkedIn.
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.