Venkat Subramaniam

Biography

Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., and an instructional professor at the University of Houston.

He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with agile practices on their software projects.

Venkat is a (co)author of multiple books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. His latest book is Functional Programming in Java: Harnessing the Power of Java 8 Lambda Expressions. You can reach him by email at venkats at agiledeveloper dot com or on twitter at @venkat_s.

Functional Programming with Java 8 and 9
With Java supporting lambda expressions, we have nothing to stop us from creating functional style of code for our day to day applications. We are so used to object-oriented programming, but remember the paradigm shift we went through to adapt to that way of programming. It is yet another paradigm shift and most of us wonder how in the world can we write functional style code. Much like how OO was not as much about the syntax as it was about the design, functional programming is about the design, the idioms, and the data structures we would use to program. In this hands-on workshop, we will learn about functional programming using practical examples, create small apps that will make use of this style of programming, and relate to how it differs from the traditional way were used to and the benefits it offers.
Let's Get Lazy: Exploring the Real Power of Streams
Efficiency is achieved not just by running things faster, but by avoiding things that shouldn't be done in the first place. Lazy evaluations are a core feature of many functional programming languages. Your code can benefit from lazy evaluations with lambda expressions and, more so, with the power of Streams. In this presentation, we'll start with a discussion of lazy evaluations, with short examples from Haskell and Scala. Then we'll dive into Java to see how we can achieve similar benefits using lambdas and the Stream API.
CompletableFuture: The Promises of Java
At the core of asynchronous programming facility in Java is CompletableFuture. It provides two channels, one for data and one for error handling. Using a nice series of transformations we can work with data or deal with errors quite elegantly. In this presentation we will learn about the key problem CompletableFuture solves, how and when to use it, and also take a look at some problems that can be easily solved using it.