Jared Faris discusses how to build rich user experiences without messy JavaScript code. He advocates for decoupling JavaScript objects, writing small discrete chunks of code, and pushing events rather than state between objects. This avoids JavaScript spaghetti and promotes loose coupling between components. Design patterns like Mediator and Observer are useful, as are tools like Knockout and Backbone that help manage state, routing, and views. Testing discrete layers without HTML elements also helps produce clean, modular code.