RequireJS and jQuery - A Journey in noConflict Mode

Being purveyors of 3rd-Party JavaScript, sandboxing is something near and dear to our hearts. We take integrating with our publishers seriously, aiming to ensure a high-quality experience for their engineers and most importantly their users. jQuery has noConflict() and you’re gold; easy enough,...

Engineering Team Lead, SFP
Software Engineer

Your Backbone Can't Save You Now: Why We Use Backbone Marionette

The big ball of mud is a well understood software anti-pattern, and we’ve all experienced it at some point in our careers (sometimes on the receiving end but all too often as the creator). There is never a specific event where we can look back and say, “this is what caused the problems we’re experiencing...

Software Engineer

The Right Time for Structure: Retrofitting Backbone.js to a jQuery Application

It started innocently enough. We had a story to make a few UI changes to a small JavaScript app. There would be no functionality changes, so it was going to be an easy morning. Maybe even an early lunch? When we fired up Vim we saw that lunch was going to be a bit later than expected and that we...

Software Engineer

jQuery Vs jQuery

During integration testing, one of our publishers recently reported that their Comments section didn’t work correctly after adding our tags. Nothing else seemed to be amiss, and our content was appearing and behaving correctly.

Shipping 3rd Party JavaScript comes with its own unique set of challenges...

Engineering Team Lead, Client

3rd Party JavaScript: Welcome to the Circle of Trust

For the last three years, we’ve been supplying our publishers with 3rd Party JavaScript to power native content distribution, helping them make a buck by providing non-interruptive, choice-based advertising. Our code is put on the publisher’s page directly, versus in an iframe (typically referred...

Engineering Team Lead, Client

Keep Your Friends Close and Your 3rd Parties Closer

As part of our viewer engagement tracking, we send back a umtime parameter (MDN: milliseconds since the epoch) to our tracking servers, http://.../?umtime=1375503164030&.... Timing allows us to tell a story around how viewers engage with our content, for example “Unfolded the card, watched a video...

VP of Engineering