Fighting performance trolls (lightning talk)

We love tech talks at Uber. Every Friday we come together as an engineering organization and share our knowledge. Topics cover all manner or things; architecture, realtime systems, mapping, routing, products, fraud, integrations and more. We love to teach and we love to learn (and we love external speakers, email…

Converting AMD to CommonJS

Browser technologies are evolving faster than most projects can keep up. If you started a project about a year ago, you probably evaluated some popular frameworks and ended up building your app with a set of tools which now feel outdated. At Uber, we move incredibly fast and I found…

Promises; in theory and reality

Preface It's nearly 2015, do we really need another promises blog post? After having spoken to a few of my colleagues and heard reactions like this: Oh God, kill me now. I want to do my part in setting the record straight. This post is an adaptation of a talk…

Managing Subviews in Backbone

The debate on how best to manage subviews in Backbone has always been relatively contentious. As intended, Backbone gives us the structure but not the solution, which has resulted in a myriad of different strategies created by the community. Many people seem to be turning to other libraries to handle…

Handling RESTful HTTP errors with promises

Preface I understood the basic concept of promises before I started working at Expensify but I had never really used them in production code before. Since then, I've taken a lot of the things I learnt over to Uber with me and have applied that knowledge to the projects I'm…

RESTful search with Backbone

The auto-complete box is the todo list of search in Backbone. There are hundreds of examples out there which cover searching through a collection. Almost all of these, however, are just searching the already fetched collection on the client side. While working on a new project at Uber, I needed…