James Ward’s Recent Presentations

Introduction to Apache Kafka – The Next Gen Event Streaming System (Slides | Video)

Apache Kafka has emerged as a next generation event streaming system to connect our distributed systems through fault tolerant and scalable event-driven architectures. Now open source through Apache, Kafka is being used by numerous large enterprises for a variety of use cases. This session will introduce the basics of Kafka and walk through some code examples that will show how to begin using it.

Introduction to Machine Learning (Slides | Video)

Machine Learning is all the rage today with many different options and paradigms. This session will walk through the basics of Machine Learning and show how to get started with the open source Spark ML framework. Through Scala code examples you will learn how to build and deploy learning systems like recommendation engines.

Refactoring Monoliths to Microservices with Functional Programming (Slides)

Functional programming is growing in popularity for a variety of reasons, but for many, the most compelling reason is that it enables refactoring from monoliths to microservices. This session uses code examples and real-world experiences to explain why moving to FP will make it easier for you to embrace microservices. The code examples use Scala and Play Framework.

Managing Open Source Contributions in Large Organizations (Slides | Video)

In contrast to just a few years ago, most large enterprises are now contributors to and maintainers of open source projects. For many, there are aspects to the contributions that slip through the cracks, causing headaches for legal teams and unnecessary risk for the organization. Things like managing code licenses, contributor license agreements, and patent-related issues are often not addressed. This session describes how your organization can tackle these issues and covers some of the tooling Salesforce has built to help ensure legal compliance with incoming and outgoing contributions.

Reinvent your App Dev Lifecycle with Continuous Delivery on Heroku (Video)

Learn how your team can use modern application development and deployment practices on the App Cloud to build apps with Internet scale and sophistication. We will walk through how we used Continuous Delivery with GitHub and Heroku Pipelines to build a consumer-facing real estate app.

Intro to Scala for Java Developers (Slides | Video)

Scala and Functional Programming can be scary at first for those of us coming from the OOP world. With a bunch of new concepts like immutability, first-class functions, implicits, and a ton of language features, it is easy to get overwhelmed when jumping into Scala. This session will provide a gentle introduction to Scala. You will learn the basics and walk away with a solid foundation to build on and be able to apply what you’ve learned to Java 8’s Lambdas.

Comparing Elasticity of Reactive Frameworks (Slides | Video)

The world is going Reactive and there are now a number of different ways get there. The Reactive Manifesto states that Reactive apps must be “Elastic” so this session will use code examples and real apps to compare the different models of elasticity in frameworks like the Typesafe Platform (Play Framework, Akka, and Scala), RxJava, Reactive Streams, and NodeJS. Traits like programming model, back pressure, and horizontal scaling will be considered in the comparison.

Architecting Engagement Apps (Video)

Modern systems are composed from all sorts of pieces, like back-office systems, legacy systems, mobile apps, JavaScript web UIs, third-party services, relational data, NoSQL data, and big data. Effective user engagement requires an architecture that brings all of these pieces together instead of the traditional siloed approach. Join us to learn about the Engagement Architecture and how it can be used to create modern composition-oriented systems.

Building Reactive Apps (Slides | Video)

Non-blocking, asynchronous, and reactive programming models are all the rage today. This session will explore in-depth why these patterns are important in modern apps. We will drill down and see how to apply them to event-driven web, mobile, and RESTful apps. To illustrate the concepts, we will use Java, Scala, Akka, and the Play Framework as examples.

Intro to sbt-web (Slides | Video)

sbt-web is a new web asset pipeline for Play Framework and other sbt-based frameworks. It can pull dependencies from both Node and WebJars. The pipeline covers all of the phases of client-side development, including: linting, compiling (CoffeeScript, LESS, etc), minification, concatenation, fingerprinting, and gzipping. This session will give you an introduction to sbt-web and show you how to get started using it.

Reactive All The Way Down (Slides | Video)

The world is going Reactive but not just for the back-end; UIs are also becoming Reactive. In this session we will walk through how to build an end-to-end Reactive application with Scala, Play Framework, Akka, and AngularJS.

Optimizing Play for Production (Slides | Video)

Play Framework is easy to deploy and scale but like any system some optimizations can help things run more smoothly. This webinar will teach you the basics of deployment, configuring thread pools, managing blocking, and common performance pitfalls.

Intro to Scala (Slides)

This is a very brief introduction to Scala.

Web Fundamentals (Slides | Video)

Many of us have worked with abstractions over Web technologies such as HTTP, but REST, HTML5, and WebSocket are requiring us to understand how the Web really works. What actually happens when a Web browser opens a Web page? What is the connection between session state and cookies? How do HTML, CSS, and JavaScript work together? This session starts at the beginning and walks through the Web’s fundamental building blocks.

Architecting Event-Driven Web, Mobile, and RESTful Apps (Slides)

Non-blocking, asynchronous, and reactive are all the rage today. This session will explore why the patterns are important in modern apps and how to apply them to event-driven web, mobile, and RESTful apps. To illustrate the concepts, Java, Scala, Akka, and Play Framework will be used as examples.

Client/Server Apps with Play Framework, HTML5 and Java (Slides | Video)

The web application landscape is rapidly shifting back to a Client/Server architecture. This time around, the Client is JavaScript, HTML, and CSS in the browser. The tools and deployment techniques for these types of applications are abundant and fragmented.

This session will teach you how to pull together jQuery, LESS, Twitter, Bootstrap, and some CoffeeScript to build the Client. The Server could be anything that talks HTTP, but this session will use the Play Framework.

Client/Server Applications with HTML5 and Java (Video)

The Web application landscape is rapidly shifting back to a client/server architecture. This time around, the client is JavaScript, HTML, and Cascading Style Sheets in the browser. The tools and deployment techniques for these types of applications are abundant and fragmented. This session shows you how to pull together jQuery, LESS, and Twitter Bootstrap to build the client. The server can be anything that talks HTTP, but this session uses JAX-RS. You will also learn how to deploy client/server Web applications in the cloud with a content delivery network (CDN) for the client and a PaaS for the server.

Introduction to the Play Framework – Java Edition (Slides | Video)

The Play Framework is a lightweight, stateless Web framework for Java and Scala applications. It’s built on Java NIO, so it’s highly scalable. This session gives you an introduction to building Web applications with the Play Framework. You will learn how to set up routes and create controllers and views, plus how to deploy Play Framework applications in the cloud.

Introduction to the Play Framework – Scala Edition (Slides)

Play Framework is the High Velocity Web Framework For Java and Scala. It is lightweight, stateless, RESTful, and developer friendly. This is an introduction to building web applications with Play. You will learn about: routing, Scala controllers & templates, database access, asset compilation for LESS & CoffeeScript, and JSON services.

Playing in the Deep End (Slides)

Play Framework is simple to get started with, but it also has some very advanced and powerful features. This session will explore some of these features, including Action Composition, Filters, Reactive Requests, WebSockets, Advanced JSON, and Dependency Injection. Through lots of code, you’ll dive (or be thrown) into the deep end of Play.

Practicing Continuous Delivery (Slides)

This session will teach you best practices and patterns for doing Continuous Delivery / Continuous Deployment in Cloud environments. You will learn how to handle schema migrations, maintain dev/prod parity, manage configuration and scaling. This session will use Heroku as an example platform but the patterns could be implemented anywhere.

Running Java, Play, and Scala Apps on the Cloud (Slides)

Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java, Play! and Scala apps on the cloud. Deployment is as simple as doing a “git push”. This session will teach you how to deploy and scale Java, Play! and Scala apps on Heroku. You will also learn about how to get started with Play Framework.