John Davies walks through and demonstrates how to reduce latency while increasing throughput in applications, with demos using Java 8 and lambdas.
Benjamin Augustin takes the practical approach of a complex API to explain how RxJava and Functional Reactive Programming (FRP) can be used on every project to make one's life easier.
Mini-talks on: OS/application inversion, testing, living databases, and rogue protocols.
Haoyi Li introduces Scala.js and shows how to get started with it, building a number of small Scala.js applications to show its capabilities.
Sebastian Zarnekow discusses JVM internal optimizations, presenting how the JVM sees through code to apply techniques like inlining, loop unrolling and escape analysis at runtime.
Hans Dockter, Etienne Studer present an Eclipse plug-in for Gradle, demonstrating the integration between Eclipse and Gradle.
Small sessions on: Deterministic testing in a non-deterministic world. Hash Spreads and Probe Functions. Typesafe Config on Steroids. Real-Time Distributed Event-Driven Computing at Credit Suisse.
Hubert Matthews describes some of the problems encountered in multithreading and discusses how to avoid them through appropriate design choices.
Maurice Naftalin discusses stream performance problems and creates guidelines for getting the best performance from Java 8 streams.
Mike Hartington introduces Ionic and its components, builds a sample app, and explores the suite of tools and services Ionic provides for hybrid mobile app development.
Sam Aaron introduces Sonic Pi, a live coding system installed by default on all Raspberry Pis and used in a variety of venues from Algoraves to international music venues.
David Tanzer introduces Clojure and ClojureScript, discussing the language basics and some libraries useful for writing real applications.