Welcome to the thirteenth edition of the interview series “I contribute to Ember”, presented by the folks at The Ember Times .
This week, community member Ryan Mark @tylerturdenpants, talks about his work on codemods. Ryan was an early contributor to The Ember Times in its nascent days! He did a lot of work with Puppeteer on ember-times-tools, a tool to convert Times blog posts to Goodbits, our email provider. Puppeteer is also what ember-codemods-telemetry-helpers uses.
We’d like to thank Ryan for his contributions to the Ember community, in addition to his financial contribution to cover the Ember Times Goodbits subscription for the last year!
What have you been working on recently?
I’m currently working on a few codemod-related projects. Right now I’m one of the major contributors to ember-angle-brackets-codemod and I contribute to the ongoing improvements to ember-codemods-telemetry-helpers.
As the official Octane release approaches, we’ve been working hard to bring you the best ember-angle-brackets-codemod@3.0.0. The latest release uses telemetry to enumerate components and helpers within your app to intelligently convert those curly invocations. Take it for spin and report back!
We wrote about creating runtime assisted codemods using telemetry helpers in last week’s Ember Times!
What made you interested in working on that particular project?
About six months ago, I was working at Princess and we committed to using native classes in our flagship app. It seemed appropriate to use angle bracket invocation because it provided the same readability in templates that native class usage did for component source. I noticed that there was an angle bracket codemod, but it was very early in its development. Additionally, I had always been very interested in how codemods work: Abstract Syntax Trees, parsers, syntax builders, etc. Today the codemod has matured greatly, and has even identified bugs with Glimmer!
And do you remember your first contribution to the community - what was it?
My first contribution to the Ember community was for a small helper addon for doing string manipulations, ember-string-helpers. I created a substring helper that I thought would be helpful to others, so I opened my first PR!
What’s your biggest motivation to contribute to Ember?
I was raised with modest values and I hated always “being on the take”. Open source only works if you give (or give back) to the community. Once I stopped feeling guilty for not giving back all my time, I realized that I really enjoyed the rush of contributing what I could. I would feel so happy when I would look at the stats on npm or when other contributors would give me shout outs in #news-and-announcements. It’s also an excellent resume booster!
Is there any piece of advice you can lend to first-time contributors?
If you find a bug or file an issue on any of the community projects, take a look and see if the repo has any issues labeled good for new contributors
. These issues are great for learning how to submit a PR, how to give and receive PR reviews, and how to gain the trust of the author and other major contributors. Also, if you contribute enough, you can possibly be promoted to maintainer and be able to shape the outcome of a project!
Another piece of advice - add a failing test! It’s an easy way to contribute and get yourself on the radar. The author will be more inclined to help you, if they know where to start.
About Ryan
I live in Sunny Socal, in a little town called Santa Clarita. I was previously employed at Princess Cruises where I introduced Ember. I now work for a smaller more hip software company in “Silicon Beach” named SimplePractice. I’m an aspiring ninja, but with chronic back pain, I haven’t quit my day job just yet. Speaking of my day job, I prefer tabs for indentation when writing code. When not coding, I love spending time with my family, especially watching the news with my toddler son Zachary. If you want to be my friend, you should share my passions for traveling, snowboarding, and mowing the lawn.
Check out Ryan’s EmberConf 2019 talk: From Mainframe to Mainstream: A Case Study in Emberification.