"I contribute to Ember" with Bekzod Khaitbaev


#1

Hello folks and welcome to the third edition of the interview series “I contribute to Ember”, presented by the folks at The Ember Times :slight_smile:

This week we’d like to highlight the work of contributor @bekzod and talk about his contributions to the framework and why he believes any contribution to open-source has a huge impact on the work of many others!

What have you been working on recently in regards to Ember?

Besides my main job, I don't have anything big working on open-source wise. I'm just squashing bugs in ember-core and optimizing the implementation of property getters and setters. I'm also improving code around the internal meta object.

What made you interested in working on the projects you mentioned?

For the work on the getters and setters, my motivation was: Since Ember is transitioning to using native getters, most of the time you don’t need to use the get helper anymore except for path keys get(obj,'a.b.c'). In the future Ember might only require the get helper for the use with path keys (same thing with set) and therefore I tried to explicitly separate code, that deals with path keys from code, that deals with single level keys. Maybe getPath/setPath could be exposed as public API at some point in the future.

Do you remember your first contribution to Ember - what was it?

My first contribution was removing an unused property in some function in the core_object . It was a little intimidating because I doubted that a sophisticated framework like Ember could have an unused property inside a function because it was a silly mistake to have. So first I was thinking that there might be some clever way it is actually used and my pull request (PR) was a big mistake. But later it got merged without modification and I learned that even complex frameworks can have silly issues laying here and there because even core team members are human. So I think there are always good opportunities for new contributors: be it a PR review, creating an issue, removing one line of code etc.

How do you find the time to contribute to Ember and what motivates you?

Whenever I have free cycles I try to contribute to Ember, I am motivated by the impact of my contributions, because by improving Ember you can also improve experiences of millions of users that use Ember apps. Since big companies like Apple and Netflix use Ember, in a sense, they are using what you wrote and even if you added or removed only one line of code in the scale of millions of users it is a big deal. So large scale impact of contributions is a big motivator for me.

At the same time contributions are a great way to learn and improve; when you create a PR, you do so in front of the Ember core team and thousands of great developers that can help you to improve your code and further your knowledge. Although it can be intimidating to expose your code, it is the only way to tap into the collective knowledge and the wisdom of great developers. For me, contributions are also a great way to express my gratitude towards Ember as a framework and to its community, which helped me in a sense to be successful as a developer and grow professionally.

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

Pick up a certain part of the framework and learn about it! Maybe there are ways of improving the code that you picked up and if not, maybe there are issues related to the part of the code that you're learning. If not, no worries - maybe there might be a related issue in the future that overlaps with what you know. In general, reading the source code and learning about it is a good investment. First of all, you learn how things work internally. Second, you learn first-hand what is upcoming in future releases before everything is publicly documented. Third, you learn new coding patterns that you can apply in your own work. Start small, and as you gain momentum, you will start making more impact-full contributions.


Bekzod Khaitbaev, also known as @bekzod, is front-end engineer at OAG Analytics and a contributor to Ember. You can find him on Twitter.