Kenneth Kousen
Northern Virginia Software Symposium
Reston · April 21 - 23, 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.
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.
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, andflatMapmethods - simple reductions
- extracting and combining streams
- using
Optionalas intended - grouping and partitioning
- downstream collectors
- the
java.timepackage - generics in detail
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.
Practical Android
Modern Android applications use many features that go beyond the basics. This talk will demonstrate the compatibility library, along with many of the popular open source libraries, including:
- ButterKnife
- Dagger
- Retrofit
- EventBus by greenrobot
- Espresso testing
- the Realm database
The talk will also include a discussion of application architectures, like MVP and MVVM.
The Groovy Way
Like all languages, Groovy code can be written in many different ways. This talk will review how to write Groovy that follows the most commonly accepted idioms and practices, especially in light of the changes in Java 8. Features demonstrates will include closures, class and method definitions that best accommodate Java integration, testing techniques, and more.
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.
Android Performance Workshop
In this workshop, attendees will learn how to take advantage of recent work with Gradle and Android to make building Android projects more efficient and effective. The examples will feature the new Android 2.5 plugin, with all the associated improvements, but will also focus on systematic ways to structure your app to make the build faster. We will show how to take advantage of incremental builds, how to use avoidance strategies to reduce the impact of annotation processors, and demonstrate how to use build scans and other profiling techniques to detect bottlenecks in the build process. Finally, we'll show how to avoid the “legacy multi-dex” problem and make your debug-related builds more efficient.