James Ward

Developer Advocate for GCP

James Ward is a software developer who shares what he learns with others through presentations, blogs, demos, and code. After over two decades of professional programming, he is now a self-proclaimed Typed Pure Functional Programming zealot but often compromises on his ideals to just get stuff done. After spending too many sleepless nights in data centers repairing RAID arrays, he now prefers higher-level cloud abstractions with appropriate escape hatches. James is a huge Open Source proponent, hoping to never get burned by lock-in again.

Presentations

The Java Platform has seen a tremendous amount of evolution and improvements over the past 5 years in many different areas including: language features in Java, Kotlin, and Scala, Functional Programming, dev environments, test workflows, Reactive, Stream processing, distributed data, containerization, Serverless, and AoT compilation.

This talk will give you a tour of the most important improvements, why they matter, and how to take advantage of them.

Over the past few years architectural patterns for distributed data have gained more importance and adoption. At the same time similar patterns have emerged for decentralized data. You will learn how CQRS and CRDTs are used in trusted and untrusted environments to overcome the challenges of eventual consistency, data privacy, and global scalability.

Through code examples you will learn how to use these patterns and will see how they are applied through higher-level abstractions like GraphQL, Cloudstate, and even Blockchain.

In this hands-on workshop you will learn how to take a Cloud Native Application from inception to production. Starting with a base sample application we will learn how to break the application into separate services that communicate via gRPC Kotlin. We will then learn how to containerize and deploy the application to Kubernetes. Along the way we will learn how to address some of the major challenges of deploying applications to Kubernetes, such as scaling and service discovery.

Some of the topics to be covered include:

Service communication using gRPC, a fast and efficient binary protocol

Creating Kubernetes Deployment Files
Deploying, Managing and Scaling services using Kubernetes
Using Kubernetes Service Discovery with gRPC

In this session, Matt and James will develop two apps that do the same thing. One will be written in Grails and one will be written in Play. We'll deploying them to Heroku and hammer them to see how they both perform under load. Afterward, we'll compare performance, lines of code, etc.
Who will be declared the winner?!

Who will be declared the winner?!

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.

Heroku is a Polyglot Cloud Application Platform that makes it easy to deploy Java 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 and Scala apps on Heroku.

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 instantly deploy and scale Java, Play! and Scala apps on Heroku.