Henry Zhu
Henry Zhu splits his time between working on Adobe’s Behance team and Babel, a popular JavaScript compiler used by companies like Facebook, Google, and Netflix.
For more background, I cover a lot of how I got started with OSS in this blog post. I wrote: in no way was I able to do anything without the many folks in the community who helped, taught, and inspired me!
When I first heard about Babel, I got really excited about the ways it could improve the development experience. I followed Dan Abramov’s advice: “watching” (really lurking on!) the GitHub repo to try to get more context into the project and its issues. I made my first Babel pull request on March 2, 2015.
Then Sebastian (the creator of Babel) made the issue: Looking for a maintainer for a non-core Babel project, so I reached out to help. Being added as a “collaborator” soon after helped push me to get more involved. I started reading every issue and pull request and began to think about the project as a whole. I didn’t realize that after a short while I had become a Babel core maintainer, rather than just a “collaborator”.
The majority of my work on Babel has been in my free time, but in the last few months, I’ve been given the opportunity to spend a good amount time at work working on Babel. Since then, I’ve been able to spend time developing things that would benefit our work: currently babel-preset-env and babili (babel-minify). It’s been awesome to be able learn and contribute to so many other projects due to Babel’s position in the JavaScript ecosystem.
I believe the list has changed as I’ve learned about new aspects of maintenance!
I’ll work on bugs and features (which is great), but the project health still suffers without contributors. That’s why I’m leaning towards doing more of the pure maintenance side of things like making it easier to contribute, finding beginner-friendly issues, spending timing writing documentation on how to contribute, etc.
There are the regular tasks:
There’s also support:
Community:
And project sustainability:
Being able to work out problems with so many awesome collaborators has been great. Huge shoutout to our whole team and the greater community of people and tools. I’ve been able to learn so much, including:
Technical skills: I learned more about JavaScript and the tool itself which helps me in my job: I can help our team troubleshoot issues with it, work on new features, and teach others about the language which is really cool
Empathy: I’ve learned a bit more about caring for your users (it helps that I am a user too). It isn’t just about the code (like all things in life), it’s the people that keep the project moving forward and alive and the community of users
Writing chops: I have a newfound appreciation for writing and see the parallels of being a greater writer and a great programmer. For someone who hated English and writing in school, I’m starting to understand its immense importance in our field
“It isn’t just about the code (like all things in life), it’s the people that keep the project moving forward and alive and the community of users.”
We have no idea the amount of work that goes into each and every project. It’s not just the contribution graph but the hours of thought that goes into design, code review, and discussion.
It’s easy for us (and me) to forget that maintainers and users are all people. Issues are opened with the highest degree of entitlement. Unpaid volunteers are expected to help with a problem and with grace and urgency. Angry blog posts and tweets are written explaining how project was done wrong or is constantly buggy.
Like many in open source, I was struggling with the burden of maintaining a project. When I first started doing open source, I used to just stay late to work on it or right when I got home. I replaced a lot of time playing video games with open source.
I’ve tried in the last year to cut back on this, even though it’s hard. I try to spend weekends to rest, and on Sunday block out all of time for church and other related activities. I was able to discuss with my boss the issues I was facing and we came up with ideas on how we could incorporate open source tasks given our own use of Babel.
I’m still trying to understand burnout. Even though it’s been a struggle at times, I just feel blessed to have been able to take part in all of this. As a Christian, I believe my prayers for wisdom in maintenance and grace in discernment really showed in my interactions with others, and I hope that my experience has helped or inspired others to get involved in open source.
“Even though it’s been a struggle at times, I just feel blessed to have been able to take part in all of this… I hope that my experience has helped or inspired others to get involved in open source.”
Being able to meet other developers whether online, at meetups, or at the few conferences I’ve been to has been such a joy for me, but one moment stands out: learning about Guy Fieri!
Editor’s note: We love the moment Henry’s referencing, so here’s a little more context. Jordan Scales, a JavaScript developer, wrote a satirical Medium post, where he joked that Babel’s heavy dependencies were due to a photo of Guy Fieri being secretly installed on everyone’s computers. The post led to Babel maintainer James Kyle proposing a “fix”, Jordan’s reverted pull request that officially made him a Babel contributor, matching Guy Fieri sweaters, and, finally, a meeting between Jordan and Henry in real life. Ah, the unifying power of open source (and fried food).
I think the greatest need for Babel is just more contributors. For a project that’s downloaded ~6 million times a month, there’s still no one who actually works on Babel full-time, and only a handful of contributors. Someone (or more) working on Babel full time would be great: if not code, then project management. We’d also love to have:
project
location
day job
From flexible hosting to data‐powered security, get everything your team needs to build at their best.
Contact sales