Trip with monads This talk is about a journey: from imperative code to purely functional one. It starts with a program written in imperative style. Its weak spots can be quickly recognized: lack of robustness, testability and maintainability. We seek our salvation in the functional paradigm, but the road to enlightenment, has many dangerous and deceivable dead-ends. The quest has a happy ending, as we reach code that is performant, testable, readable and maintainable. Keep in mind however that knowledge comes from experience. As once someone wise said "Its the not the Destination, it's the Journey." Though it is not a live coding session, it will sure feel like it. Code is written in Scala, parental guidance is advised.