Amir Barylko started his career in 1994 working for IBM as a senior developer while he was finishing his Masters degree in computer science. Since then he worked as team leader and architect for the past 15 years.
Having started with languages like C++ and Java he spent many years coding in C# and training other developers in topics such domain modelling, abstractions, patterns, automation, dependency injection, testing, etc.
Being an incurable geek, always thirsty for knowledge, his passion for technology moved him towards Ruby on Rails (RoR) a few years ago, becoming an advocate of RoR web development.
Looking for new ways of sharing his knowledge and helping others to achieve their goals motivated Amir to become an owner and build a lean management tool called SmartView (http://smartview.io) that was released in 2014.
Amir is a rare combination of high technical skills, experience in a wide range of platforms, exceptional presentation skills and a great sense of humor. His presentations are always rich in content and fun to attend.
Many developers feel disheartened by functional programming because not only the language is different but the idioms, approach, and patterns also change.
The idea of this session is to present a list of strategies and patterns that are common to imperative programming and object oriented programming and show with examples how to make them work in a functional language.
The talk will include topics like working with immutability, recursion, replacing loops with well-known functions, avoiding null values, using function to short-circuit flow, dependency injection, variadic parameters, generative testing and testing with mocks
The examples will be mainly in Clojure, Scala, Haskell, F# and we may even include Elixir and Lua.