A set of resources to encourage best practices and provide training for Ember developers:
eslint-plugin-ember-best-practices, memory-leak-examples, jquery-avoidance-techniques, ember-perf-timeline and recommendations

You can use Encapsulated Tasks, which behave just like regular tasks, but with one crucial difference: the value of 'this' within the task function points to the currently running TaskInstance, rather than the host object that the task lives on (e.g. a Component, Controller, etc).