"I contribute to Ember" with Ben Demboski

Welcome to the fourteenth edition of the interview series “I contribute to Ember” , presented by the folks at The Ember Times . :newspaper_roll:

This week, community member Ben Demboski @bendemboski, talks about his work on ember-electron.

We’d like to thank Ben for his contributions to the Ember community, and for all of his help keeping ember-electron up and running!


What are you working on right now (/recently)?

I’ve been putting a lot of work into the ember-electron v3 beta. ember-electron allows you to build multi-platform desktop applications using the Electron framework, with all of the UI built in Ember.

In v3, we upgraded some core Electron tooling to making it much easier to use newer releases of Electron and to consume related libraries. We also simplified the build pipeline and project structure quite a bit, and think it has much improved developer ergonomics, as well as build performance.

Try it out and let us know what you think!

What made you interested in working on that particular project?

A couple of years ago at my day job, we realized that we needed to deploy our technology as a desktop app. Since it was already built as an Ember web app, we went with Electron, and ember-electron. With the Electron ecosystem moving fast and ember-electron still at a somewhat early stage, it was easy to find ways to help improve it! As Ember and Electron have progressed, it’s been a fun ride keeping ember-electron moving forward!

And do you remember your first contribution to the community - what was it?

Oh man…I think I filed an issue regarding ArrayProxys in 2014, and then PR’ed a change to ember-exam to support multiple partitions in 2016. Maybe also something in ember-cli to support custom blueprint options? It’s all pretty fuzzy, but I think the majority of my contributions have been related to testing frameworks/support, including probably my favorite contribution, ember-concurrency-test-waiter (which I’m currently working on porting to a decorator in ember-test-waiters so it fits in the Octane world!)

What’s your biggest motivation to contribute to Ember?

The community! I’ve always been a community-oriented person, and Ember’s community is very special. It’s a great feeling to identify a pain point that a lot of us share and come up with a solution to it. Or to chat on Discord with somebody who built something awesome about how I can help improve it. It mixes two of my passions – problem-solving and connecting with people.

What has been your most important learning from contributing to Ember so far?

I’d probably say thinking of libraries/addons in terms of their API surface area. The Ember core team has done such a stellar job of the challenging task of managing compatibility and making upgrade paths smooth. One of the strategies they’ve used is limiting Ember’s API surface area, so there’s less to maintain and worry about changing during an update. I’ve run into my share of compatibility challenges when making breaking changes to my own libraries, so I’ve learned to pause every time I want to add some new publicly-exposed functionality and double-check that it’s really part of the core value proposition of the library and is worth the extra maintenance cost of including.

Is there any piece of advice you can lend to first-time contributors?

Reporting issues can be a great way to get started! As a project maintainer, I always appreciate having issues reported, especially when the reporter clearly spent some effort making sure to provide complete and relevant information. It can sometimes be hard to get the attention of a project maintainer to ask a question about a possible contribution, but if you put some effort into filing a clear and helpful issue, that will often grab their attention and make it easier for them to engage with you and help you through the process of PR’ing a fix and getting it merged! Filing an issue along with a branch or PR with a failing test case is even better!

About Ben

Living in Seattle, I’m into all the typical outside-of-work Seattle stuff — skiing, hiking, mountain biking, grunge, bike commuting (okay, maybe not so typical), coffee, watching the city descend into chaos when we get 3" of snow, etc. My wife and I are sometimes-servants-to sometimes-wranglers of our 4-year-old Simo. When I’m not recovering from injuries, I also spend a lot of time on one of my other passions, playing Ultimate Frisbee. I cut my coding teeth during the dot com bubble interning at a startup, and then spent the first decade of my career in a kind of wild startup ride, starting at Wildseed Ltd building pre-iPhone smart phones, going in and out of AOL and then RealNetworks, and eventually landing where I am now, at Rowan TELS’ Seattle/Pioneer Square office building legal tech software.