In this episode I discuss abstraction and emergence with Jorge Manrubia from 37signals. We explore how abstractions should hide distracting details while showing essential information, debate whether programming guidelines are subjective or objective, and examine how good explanations distinguish useful abstractions from poor ones. The conversation touches on service objects, domain modeling, and the importance of showing actual code when discussing software design principles.