One of the most useful metaphors in software development is the idea of a "pipeline". When we can find a way to organize a complex process as a pipeline of operations, it becomes a lot easier to isolate discrete parts of the process and understand the dependencies between them. In today's episode, guest chef Nithin Bekal joins us to demonstrate how using the yield_self method from Ruby 2.5 can help clarify these kinds of pipelines. I hope you find the sequence of refactorings in this episode as satisfying as I do. Enjoy!