Henry Zhu: Open Source Is About One’s Soul Searching and Moving the Whole Community


Henry left his day time job and became the primary Babel’s maintainer. In his interview with us, he shares his open source journey, explains what it’s like to be a core maintainer of an open source project, and describes challenges he faces daily. Henry is coming to Amsterdam to give a presentation at JSNation Conference, June 6–7, 2019.

I’m an open source maintainer based in New York City. I got into programming through games and Flash. Initially, I appreciated the interactive parts of programming and it led me to data visualization and front end development.

I wrote a lot about this in my post on leaving. I guess it was a lot of soul searching, so it was difficult for a lot of reasons: my status quo was great in that I was paid to do software with a great team. But I had some greater ambitions around open source, and I didn’t think I could do them even with the half-time they generously gave me to do open source.

In my mind, doing open source was a lot more than implementing features for a specific project (Babel), and I felt like I needed the headspace and freedom to be able to think about these ideas on my own. Ultimately, it helped me to realize I couldn’t do it at a company, and looking back at where I’m at now I don’t think being at a company to do it would be satisfactory for me either.

Babel is a compiler that many companies and people use to transform their JavaScript, mainly so that newer syntax runs on older environments. I’m not the creator, and joined a lot later (after it was already well used), mostly through my work on JSCS/babel-eslint. I was referenced in the 6.0 release and it spurred me to do more for the project.

Being a core maintainer is interesting: people tend to look to you for help even though you usually feel like you don’t know what’s going on. There are plenty of technical challenges but because it’s important to think more long term, a lot of it is around the sustainability of not really the project but the people behind it (regarding overwork, funding, burnout).

Some projects are complete, their authors are able to accurately define the scope of it and what they are willing to maintain and steward. Babel is inherently tied to the JavaScript language itself: if there are new syntax being proposed it’s one of our goals to help implement and provide a feedback loop to the committee that makes it. And in terms of users, it can always be made easier to use, faster, and work better with the rest of the ecosystem.

There are a lot of issues, and not that it’s our sole responsibility but we can do a lot to impact the future of how we work in JavaScript: whether it’s shipping less code or making creating and maintaining websites less complicated. People want to ship different (smaller) bundles to newer browsers, ship smaller code in dependencies which requires libraries to publish the latest syntax or minify the latest syntax. A lot of the issues are technical but the hard work is also in coordination and working with everyone to move the whole community.

I’m pretty focused on Babel at the moment, there’s more than enough work there so I’ve stopped contributing to other projects in terms of the code itself. But I care a lot more about open source as a whole and want to help with the overall projects any projects face.

People can fund me through our Open Collective or my Patreon, either supports me and the work I do. I agree that donations only go so far, and most of the support comes from corporate donations so I wouldn’t expect too much help from individuals even for the most well-known developers. After all, do we want to expect developers themselves to pay when their employees can; OC has set up a gift card link in this vein. I appreciate any support here, mostly to help not just Babel but my efforts to better understand open source sustainability: whether in my writing, podcasts, and research. Being able to work independently is a great opportunity.

I understand I’ve never really been the most eloquent speaker. I noticed that I just tended to work with my strengths. I speak about experiences and stories rather than the technical mostly since it allows me to just be myself on stage. I just talk about what’s happened and hopefully, it’s interesting enough to others because it is to me.

I started giving the talks because I finally felt like I had something I wanted to say and it comes out naturally. I don’t do much preparation other than making my slides (which tend to be simple words, quotes, or screenshots), which just remind me of what to say. Most of my talks are the same thing: just about my journey in doing open source. I speak about my questions and struggles of this amazing part of tech culture that not that many get to experience. I don’t know why I felt like I needed some kind of novelty; sometimes we just need to tell ourselves the same story until we live it.

Yeah, Hope in Source is a podcast about two topics I care a lot about: faith and open source. I had the pleasure of co-hosting it with my friend Nadia. We chat a lot and we brought up how both saw parallels (from my own experience, and from her observation) and thought it would be fun to record those conversations instead.

The episodes are very casual chats of around 30 minutes each on a topic that would incorporate the two. Once you bring it up, you realize how many similarities there are: whether it’s about money (fundraising/tithing), evangelism, or trust. Both topics are about people and community and how we learn to build one another and participate in something greater than ourselves for the purpose of serving others (whether you are in tech or religious I would encourage you to check it out)!

There are only 10 episodes now because we pre-recorded all of them ahead of time. I would love to continue with more, given we are inspired to do more. There’s no rush to do some kind of weekly thing, this is the kind of experiment that is about more than “content”. We are recording a bonus episode soon though!

I’m pretty into ping pong as a sport (I know many tech companies don’t use the tables but I’m always on the lookout!).

The interview was prepared with the assistance of Marina Vorontsova, a copywriter from Soshace.com. Soshace is a hiring platform for web developers: hire a developer or apply for a remote job.