Design approach Wójtowicz/Normand promote as the umbrella idea behind the talk: organize systems into layers, make sure each layer has a legitimate abstraction (not just a split of code across files), and ensure dependency arrows only point downward. Applies at every scale — functions, classes, Rails apps, microservices. Four practical tools: straightforward implementation (make obvious simplifications visible via call graphs), abstraction barrier (draw a fat line you never need to look under), minimal interface (keep each layer's surface area as small as possible), and comfort with your layers (question both 'zero layers' (DHH) and '20 000 layers' (Trailblazer-style) extremes — pick what fits the team).