Kenneth Kousen
ÜberConf
Denver · July 18 - 21, 2017

President, Kousen IT, Inc.
Ken Kousen is a Java Champion, several time JavaOne Rock Star, and a Grails Rock Star. He is the author of the Pragmatic Library books “Mockito Made Clear” and “Help Your Boss Help You,” the O'Reilly books “Kotlin Cookbook”, “Modern Java Recipes”, and “Gradle Recipes for Android”, and the Manning book “Making Java Groovy”. He also has recorded over a dozen video courses for the O'Reilly Learning Platform, covering topics related to Android, Spring, Java, Groovy, Grails, and Gradle.
His academic background include BS degrees in Mechanical Engineering and Mathematics from M.I.T., an MA and Ph.D. in Aerospace Engineering from Princeton, and an MS in Computer Science from R.P.I. He is currently President of Kousen IT, Inc., based in Connecticut.
Presentations
Functional Java, Part 1
Understand Java from a functional programming point of view. This part covers the basics of lambdas and streams, emphasizing functional programming by transforming collections using the stream approach.
Functional Java, Part 2
Functional features in Java, including parallel streams, the java.util.function package, the Optional data type, and reduction operations.
Special Topics In Java
This talk will focus on interesting features of Java 8 that go beyond the basics. Topics will include:
- the
map
,filter
, andflatMap
methods - simple reductions
- extracting and combining streams
- using
Optional
as intended - grouping and partitioning
- downstream collectors
- the
java.time
package - generics in detail
Refactoring to Java 8
Java SE 8 introduces many new features that can simplify your code. Using streams, lambdas, and the new Optional type all change the way we write Java. In this presentation, we'll work through a series of examples that show how to rewrite existing code from Java 7 or earlier using the new Java 8 approach.
Beyond Managing Your Manager
This is a revised and updated version of the previous talk, with current thinking from practice and the literature. The talk presents why conflicts with your manager are inevitable based on differences in priorities and perspectives, and how to plan for them. The goal is to show you how to build the loyalty relationship that allows you to get what you need when you need it.
Gradle In Depth
Gradle is the build tool of choice in the open source world, and rapidly becoming the standard in industry as well. Anyone who works with Gradle on a Java project knows the basics of the Java plugin and how to write simple tasks in Groovy. Gradle can do much more, however. This talk will demonstrate how to write your own custom task classes and how to create Gradle plugins from them. Other Gradle features will be demonstrated as well, including file manipulation, incremental builds, generating the Grade wrapper, and resolving conflicts in dependencies.
Gradle Recipes for Android
Android applications no longer use Ant or IDE builds. The new build mechanism is based on Gradle, the popular build tool from the Groovy ecosystem. This talk will introduce Gradle to Android developers and show how easy it is to integrate into Android projects.
Groovy and Java 8
Groovy works cleanly with Java 8, but goes beyond it. In additional to basic functional programming, Groovy also provides techniques to use memoization, trampolining, tail recursion, and closure currying. Groovy also makes it easy to use closures to process relational data, both with simple queries and when calling stored procedures.
Gradle Workshop
The Gradle build tool has been adopted by the vast majority of open source projects and is growing rapidly in industry as well. Gradle provides a powerful DSL for customizing and managing your build, with flexible configuration features and sophisticated dependency management. Gradle is also actively supported by a commercial entity, and in partnership with companies like Netflix and LinkedIn is currently being optimized for performance.
This workshop is designed to get you started on Gradle, from its basic capabilities up through advanced techniques like build scans, the build cache, and resolutions strategies.