Making Open Work
May 8–9, 2017: Training & Tutorials
May 10–11, 2017: Conference
Austin, TX

Functional programming with Kotlin

Hadi Hariri (JetBrains)
9:00am12:30pm Monday, May 8, 2017
Location: Meeting Room 17 A
Level: Intermediate

Who is this presentation for?

  • Developers and architects

Prerequisite knowledge

  • Experience with Java or Kotlin

Materials or downloads needed in advance

  • A laptop (if you want to follow along with an IDE and JVM)

What you'll learn

  • Learn functional programming concepts and how to apply them


Hadi Hariri explains the basics of functional programming using Kotlin—where it fits in with the object orientation paradigm and how to use it in your everyday work. Along the way, Hadi covers important functional programming concepts, such as as lambdas, higher-order functions, currying, partial functions, memoization, and monads, and demonstrates how and where to apply functional patterns to cut down boilerplate code and keep it maintainable.

While the workshop will use Kotlin, many of the concepts can be applied to other programming languages, such as Java 8.

Photo of Hadi Hariri

Hadi Hariri


Hadi Hariri leads the Developer Advocacy team at JetBrains. His passions include software architecture and web development. He has authored a couple of books and is a frequent contributor to developer publications. Hadi has been speaking at industry events for for nearly 15 years. He is the developer and creator of many things OSS, and he spends as much time as he can writing code. He is also an ASP.NET MVP and ASP.NET Insider. Hadi is based in Spain, where he lives with his wife and three sons.

Comments on this page are now closed.


Paige-David Peck |
04/14/2017 12:51pm CDT

I am in a Software engineering capstone class, and we are looking to ask questions for some speakers since we will not be able to make the conference this year. If you have time, could you answer my question?

Why do you prefer Kotlin over Java, on top of the popular reasons such as lack of null pointer exceptions and ability to cut down on boilerplate code, such as getters and setters.