SCHEDULE

7/22/2019 8:30a – 6:30p  @ 300 E Randolph St. Chicago IL 60601

TIME AUDITORIUM A AUDITORIUM B
8:30 - 9:00 KEYNOTE KEYNOTE
9:15 - 10:15 Josh Long David Giard
10:30 - 11:30 Ruth Yakubu Robert Boxall
11:45 - 1:15 (90m) Paul Warren Mariano Gonzalez / Grace Chang
1:30 - 2:30 Uncle Bob Martin Derek Ashmore
2:45 - 3:45 Eric Boyd Brett Lindsley
4:00 - 5:00 To Be Determined Joel Vasallo
5:15 - 6:15 Networking Networking

INSIDE THE CO-OCCURENCE RECOMMENDATION ENGINE

By Brett Lindsley

Online shopping provides the means for a business to present a vast number of products to consumers. In order to increase sales, it is desirable to present a focused list of “recommended” products to a user that the user would be interested in purchasing. To create a list of recommended products, the historical purchase history and user demographics need to be processed.

This presentation provides an in-depth analysis of the inner workings of a recommender called “co-occurrence.” This type of recommender is simple, yet it is powerful enough to be used for various applications. This presentation leads by way of example to show the various steps used to create a recommendation system. Once the co-occurrence matrix is computed, two different styles of system can be developed: (1) an individual recommender that takes the current user items and creates a recommendation for the current products, and (2) a search engine recommender that finds surprising relationships between items and presents them as additional items in a search response. The co-occurrence recommender can provide cross-recommendation (i.e. browsing movies can recommend music) and can be extended for streaming recommendations (matrix is updated as each new item arrives).

Spend a little time coming up to speed on the core technologies of a recommender system and think about how to reach your customers!

THE PAST, PRESENT AND FUTURE OF SOFTWARE

By Uncle Bob Martin

In 1946 there was one programmer in the world.  Today the number is approaching one hundred million.  Take a trip through time as Uncle Bob describes how software began, how it got to where it is today, and where it is going.  The theme of this talk is professionalism. What are the ethics, the standards, and the disciplines that software developers will need to adopt as our industry approaches the midpoint of the twenty-first century.

NATIVE SPARK EXECUTORS ON K8S: DIVING INTO DATA LAKE

By Grace Chang and Mariano Gonzalez

Everybody wants to do big data on a data lake! However, implementing it and maintaining the infrastructure necessary to explore it, such as Spark, has been a historically challenging endeavor. Kubernetes is the tool of choice for cloud orchestration, and Spark continues to be the de facto framework for most data wrangling tasks. We’ve previously tried different data lake architectures, and suffered from the pain that Hadoop carries with it. Finally, we decided to bring the best from the cloud and big data worlds together, and walk you through a session on how to set an endless data lake powered with native Spark executors on Kubernetes. Come to this session to get a grasp on how data visualization can be achieved with ease!

BE MORE RESPONSIVE WITH JAVA SERVERLESS APPLICATIONS

By Ruth Yakubu

Learn how to build Java Azure functions that are more reactive to event-driven triggers.  Whether you are responding to real-time streaming processing, timed-based processing, real-time bot messaging, or application backend processing etc., Azure function enables you to execute serverless code in these scenarios.  This session will show how Azure Functions provides Java developers a productive programming model based on triggers and bindings to accelerated development time and serverless hosting of event-driven applications. A real-time demo will be used to illustrate the robust benefits of using this open source service.

REACTIVE REVOLUTION

By Josh Long

Microservices and big-data increasingly confront us with the limitations of traditional input/output. In traditional IO, work that is IO-bound dominates threads. This wouldn’t be such a big deal if we could add more threads cheaply, but threads are expensive on the JVM, and most other platforms. Even if threads were cheap and infinitely scalable, we’d still be confronted with the faulty nature of networks. Things break, and they often do so in subtle, but non-exceptional ways. Traditional approaches to integration bury the faulty nature of networks behind overly simplifying abstractions. We need something better.

Spring Framework 5 is here! It introduces the Spring developer to a growing world of support for reactive programming across the Spring portfolio, starting with a new Netty-based web runtime, component model and module called Spring WebFlux, and then continuing to Spring Data Kay, Spring Security 5.0, Spring Boot 2.0 and Spring Cloud Finchley. Sure, it sounds like a lot, but don’t worry! Join me, your guide, Spring developer advocate Josh Long, and we’ll explore the wacky, wonderful world of Reactive Spring together.

WE WANT THE FUNC! USING AZURE FUNCTIONS TO EASE DEPLOYMENT

By David Giard

 

Azure Functions allow you to write, deploy, and test code without worrying about where that code runs. Scalability, reliability, and server management are handled for you in this example of a “serverless” technology, so that you can focus on the code.

In this session, you will learn how to create, test, and deploy Azure functions; how to trigger them using REST calls, queues, database, and a scheduled interval; how to bind functions declaratively to other technologies; and how to create long-running durable transaction in Azure functions.

DIGITAL TRANSFORMATION IS A LARGE UNDERTAKING FOR ANY ORG

By Robert Boxall

Robert, having already transformed and moved his previous employer to the cloud, now is about 6 months into kicking off yet another cloud migration. This time for Redbox, moving a Microsoft Centric .NET stack from a data center into a Cloud Native .Net Core stack on Linux. He’ll share insights into the culture change required and steps taken to get a company to buy in to such a move.

Having worked at Netflix with a culture of freedom and responsibility, Robert will reflect on how moving back to traditional midwestern culture further challenges the transformation of an organization. He will also address overall cloud path, DevOps, DataOps and other with comparisons between lift and shift to cloud native and share progress and data on migration. He will share insights into approaches for both Java and .NET stacks.

SUPERCHARGING SPOTHERO SEARCH WITH KUBERNETES, KAFKA, AND GO

By Ben Goldberg

At SpotHero, Search is the most critical and algorithmically complex component of our entire Platform. We recently rebuilt our Search service from the ground up in Go, using Kafka and Kubernetes. This process resulted in a service that is so performant that one instance of our new application, with equivalent resources, can do the same work as hundreds of legacy machines. Throughout this presentation you’ll get an inside look into how we architected, load tested, monitored, and transitioned to this new service in Production.

EXTENDING SPINNAKER WITH GITOPS

By Joel Vasallo

Source Control? Check. CI/CD with Spinnaker? Check. Now what?

In this talk, we will cover the tertiary requirements of creating repeatable and reliable code pipelines for software delivery. Recently the term “GitOps” has been creeping up in the software industry. What is it, why is it important, and how can we leverage this concept to make a developer’s life easier?

First, we shall explain the concept of GitOps, its advantages, and some practical examples you can apply it in your day to day workflow to improve reliability and efficiency. From simple disaster recovery to eliminating infrastructure configuration state drift, GitOps can be applied and exposed in many ways! Examples will go over how to tie Git with everyday popular tools such as JobDSL, Terraform, Slack, and Foremast x Spinnaker.

Foremast is an Open Source Project to create repeatable software delivery pipelines for Spinnaker using code. Foremast allows users to cut down the workload of creating pipelines by hand; all while ensuring every pipeline is compliant and has auditing built in. More importantly, it allows platform leads to define safe (and in some cases mandatory) pipeline defaults while exposing various toggles to development teams to specify application specific configurations. It leverages highly customizable standard Jinja2 templates; enabling various organizations to define what they need for their businesses software delivery pipeline.