Recap: LinkedIn at EmberConf 2019

Photo credit: Jo Chou
 

Every March, a JavaScript conference called EmberConf is held in Portland, Oregon. EmberConf is the best place to meet the folks behind the magic of Ember, like core team members and contributors, who are all excited about the future of this open source web framework. As Jenie Gao shared at the conference, the Ember apps that power LinkedIn include more than 1.7M lines of frontend code and generate over 3,000 requests per second. At EmberConf 2019, over 1,000 engineers from around the globe attended to connect with the community and hear from the 40+ speakers, of which 6 were from LinkedIn.

emberconf3

Photo credit: Jo Chou
 

In case you didn’t have a chance to attend, here is a recap on some of the trainings and presentations.

Training: Supercharging Ember Octane with TypeScript

Chris Krycho led a training session on “Supercharging Ember Octane with TypeScript.” He talked about what TypeScript is, how it works as a language, and how it works with Ember. Then, he guided the group through the process of converting parts of a small existing application from classic Ember with JavaScript to Ember Octane with TypeScript.

TypeScript provides big developer experience differences, such as always-up-to-date documentation for functions and classes, fewer “undefined is not an object” errors, and confident refactoring. TypeScript is not just a "typed superset of JavaScript." It's a way to develop faster and more reliably, especially when you have to make changes.

BonusConf: Maintaining an Ember application at scale and intro to Ember editions and Octane

Kacey Lewis emceed the BonusConf, which is a not-so-secret, small mini-conf held on Monday, a day before the official start of the conference. Here, we had two LinkedIn engineers present.

emberconf4

Yours truly (Chris Ng) led a talk on “Maintaining an Ember Application at Scale,” about how to handle catching and fixing issues—preferably earlier in the process than later—in order to maintain high-quality craftsmanship throughout the overall application. I discussed what it means to be at scale, how we try to maintain high-quality craftsmanship for the overall application over time, and tips on enabling change rather than restricting it. In my presentation, I espoused the LinkedIn saying, “If it’s not in the docs, it ain’t a real thing,” in order to reduce tribal knowledge, which is often the root cause of bad patterns that hinder maintenance.

emberconf5

Robert Jackson capped the BonusConf sessions with a talk titled, “Intro to Ember Editions and Octane,” as a prelude to the opening keynote the next day. Rob talked through what an edition is and the upcoming features of Ember Octane, including native classes, glimmer components, tracked properties, and more.

Opening keynote: Ember past, present, and future

The opening keynote, presented by Tom Dale and Yehuda Katz, started with the history of Ember. As members of the Ember core team, they also shared insight into the balance the core team strives to achieve in shipping framework features quickly and letting the community catch up to the latest upgrades. This was evidenced by the recent 2019 Ember Community Survey that reported 28% of developers worked with Ember 3.7, while 12.5% worked with 3.8, which had just been released a few weeks prior to the time of the survey. This indicates that a large part of the community is engaged with the framework by promptly upgrading to the latest two versions.

emberconf6

“We spend lots of time focused on performance, correctness, build pipelines—it feels good to spend time making Ember more FUN.” - Yehuda Katz
 

Tom and Yehuda talked about how the community is getting from “where we are” to “where we want to be.” This sometimes leads to a “pit of incoherence,” where we’re in the middle of upgrading Ember’s features or at the halfway point between two versions. Thankfully, the arrival of Ember Octane edition will encourage more cohesiveness across the community—the preview is available now in stable, beta, or canary! Now, you can try out features such as Angle Bracket Syntax or dig into creating a new Octane app.

emberconf7

“[We are] bending the curve of modern productivity and the lightweight feeling of writing plain HTML.” - Tom Dale (Photo credit: Jo Chou)

emberconf8

“We should make decisions based on our values, and not let our values be changed by our decisions.” - Yehuda Katz
 

Yehuda and Tom also talked about Simon Sinek's "Celery Test," and how it applies to Ember operating within a simple framework to make the right decisions. It is Ember’s value signaling not to have its shopping cart filled with candy and cookies—or any trendy technology that we might not need—this lets developers trust the framework will make the right decisions because of its authenticity (i.e., buying the celery instead of the cookies).

A call to action: Don't break the web

emberconf9

“There are too many excuses we tell ourselves for avoiding accessibility in our applications.” - Melanie Sumner (Photo credit: Jo Chou)
 

Melanie Sumner gave a talk titled “Don't Break The Web.” However, in her opinion, the web is already broken. In an analysis of the top one million home pages, more than 59 million distinct accessibility errors were detected with an average of 59.6 errors per page. She believes 100% of the issues are preventable by leveraging built-in tooling available today. There is even a spec already written for it!

She concluded her presentation with several calls to actions, including: contribute to existing a11y add-ons, learn how to use assistive technology, and ask about accessibility at work. We should all do our part in supporting accessibility efforts across our day-to-day lives.

Day 2 Insights: Dealing with data in 2019

emberconf10

“Instead of falling off a cliff of edge cases, you fall into success (on using Ember Data addons to help you, such as Ember M3 or Ember StoreFront)” - Igor Terzic (Photo credit: Arvian Heidir)
 

Igor Terzic opened day 2 of the conference with his talk titled, “Dealing with Data in 2019.” He recounted his experience working with Ember since he graduated from college in 2012, and the progress that has been made since. In 2019, thanks to the work done with ember-data, dealing with data enables developers to achieve velocity with minimal amounts of configuration. Ember data provides separation of concerns with an isolated model layer. This network layer isolation makes application-wide changes like Fastboot just work.

Igor talked about an ember-data add-on called ember-m3, which we use at LinkedIn. The idea is to work around requiring thousands of models, especially when your API already provides a schema. Ember-m3 does this by having a single model class, together with the ember-m3 adapter and serializer, that all your models use to handle performance at scale with ember-data.

Acknowledgements

It takes a lot of work to put together trainings and talks, so special thanks to Chris Krycho, Kacey Lewis, Robert Jackson, Tom Dale, Melanie Sumner, and Igor Terzic for all of the engaging content throughout the conference. I would also like to thank Janessa Kirst for organizing the LinkedIn conference delegation to travel from across the world to EmberConf. Finally, thanks to all the engineers who volunteered to man our LinkedIn booth and answer questions from attendees.