By Anthony Bull, April 8, 2013

Ember.js at CrowdFlower

Every day, I love coming to work at CrowdFlower for having the opportunity to build UIs that are changing the way work gets done around the world, conceivably for the next twenty years. We’re just beginning to scratch the surface as we empower customers and contributors alike with great interfaces.

It’s an exciting time to be working with Ember.js to build interfaces like the following as depicted for Skills Tests, our Senti dashboard, and our Contributor dashboard:

three apps built with Ember.js

Though Ember.js has seen some criticism recently, I’ve been a big fan of its approach to solving the challenges of modern web development for over a year, particularly as the framework saves me time by generating much of the code I would otherwise have to write. Developing with such a bleeding-edge technology hasn’t been all rainbows and ponies though. A major hurdle we’ve faced has been dealing with changes in the framework’s API. We currently have three applications in production using three different versions of the framework (and we’re about to roll out a fourth).

The volatility of the API has presented two issues in particular. First, it’s tough to codify a set of best practices for architecture and testing to apply uniformly across applications against a moving target. The second issue has been to bring other engineers up-to-speed on those (evolving) frontend practices – we’re all solid full-stackers but not as many of us spend as much time in the presentation layer as I do.

Our approach to the use of Ember.js in specific speaks to our engineering culture in general: to minimize exposure to risk, we vet bleeding-edge technologies where one or two people are able to become localized centers of excellence. Then, as the technologies mature, those who ran point are able to pay it forward by transferring knowledge across the team through pairing, kitchen conversations, wikis, and code lunches.

If you’d like to be a part of creating great user experiences as we change how the world gets works done, join us.

Anthony (@inkredabull) is the Sr. Web Engineer at CrowdFlower. He’s presented on Ember.js, maintains the Yeoman Ember.js generator, teaches the Pro Ember.js Class at Marakana, and thanks CrowdFlower for supporting his participation in the Ember.js and OSS communities.