You may be hearing a lot of buzz around functional programming. For example, Java 8 recently introduced new features (lambda expressions and method references) and APIs (Streams, Optional and CompletableFutures) inspired from functional ideas such as first-class functions, composition and immutability. However, what does this mean for my existing codebase? In this talk we show how you can refactor your traditional object-oriented Java to using FP features and APIs from Java 8 in a beneficial manner. We will discuss: * How to adapt to requirement changes using first-class functions * How you can enhance code reusability using currying * How you can make your code more robust by favouring immutability over mutability * How you can design better APIs and reduce unintended null pointer exceptions using an optional data type