You are viewing details from a past event. Please check our upcoming event schedule if you are looking for current content.

Daniel Hinojosa

Independent Consultant

Daniel is a programmer, consultant, instructor, speaker, and recent author. With over 20 years of experience, he does work for private, educational, and government institutions. He is also currently a speaker for No Fluff Just Stuff tour. Daniel loves JVM languages like Java, Groovy, and Scala; but also dabbles with non JVM languages like Haskell, Ruby, Python, LISP, C, C++. He is an avid Pomodoro Technique Practitioner and makes every attempt to learn a new programming language every year. For downtime, he enjoys reading, swimming, Legos, football, and barbecuing.

Presentations

Machine Learning Data Pipelines

9:00 AM MDT

This workshop builds an entire event driven data pipeline with Machine Learning and Kafka. From Kafka where we use producers or Kafka Connect to generate information, we then will Kafka Streams to apply a machine learning model to make business decisions.

This intensive lab will start by integrating sources into our backplane, then train our models, and operationalize our model using Kafka Streams. We will then create result topics when we can read in as a report and display visualizations of our data. The result will also be scalable and fault tolerant.

Machine Learning Data Pipelines

10:30 AM MDT

How do we move information realtime and connect machine learning models to make decisions on our business data? This presentation goes through machine learning and Kafka tools that would help achieve that goal.

In this presentation, we start with Kafka as our data backplane and how we get information to our pub/sub. As they enter Kafka, how do we sample that data and train our model, then how do we unleash that model on our real-time data? In other words, picture extracting samples for credit card approvals for training, then attaching the model for online processing: The moment we receive an application, we can either approve or disapprove a credit application based on a machine learning model trained on historical data. We will discuss other options as well like Spark, H2O, and more.

The Java Sessions: Futures

1:00 PM MDT

Starting with JDK 5, we have had Futures, and they mostly went ignored. Now with concurrency and reactive technology in demand, it is essential that we understand what futures are, and how to handle them and make use of their power in asynchronous systems.

This presentation is a basic ground-up introduction to Futures. We start with Futures and how they came packaged with JDK 5. We take a look at Executors, how to create a thread pool, which pools you should choose. How to model Futures in the JDK and show the difference for awaiting the answer and taking on the answer asynchronously. We also take a look at what a Promise is and when to use one.

  • The Standard Future
  • How Guava Changed how we work with Future
  • Scheduled Futures
  • Completion Services
  • Completable Futures
  • Functional Manipulation

The Java Sessions: Module System

3:00 PM MDT

Hopefully, we started moving on from Java 8. One of the great benefits of doing so, and there are many, is a module system. It is a controversial topic indeed, but I am hoping in this presentation to make some solid arguments that it is an essential part of our development.

  • Understanding Module Basics
  • Limiting
  • JLink
  • JDeps
  • Packaging
  • Unnamed, Automatic
  • How to integrate with build tools
  • Demand that your dependencies use it
  • What's the hold up?
  • The log4j2 fiasco
  • Services
  • ServiceLoader
  • Creating lean docker images
  • A note about Layrry

The Java Sessions: Reactive API

5:00 PM MDT

Many have already seen what Reactive Streaming can do: RXJava, Akka Streams, Project Reactor. Now reactive streaming is a part of the canonical package for Java and now we can handle asynchronous pipelines with boundaries and make better well thought out applications

This session introduces you to the core components of Reactive Streams: Publisher, Subscriber, and Processor. We will discuss when to use Reactive Stream and how to avoid complicated scenarios like Backpressure. We will also cover some of the core problem spaces and how to overcome them. After understanding the core interfaces we will see how we use them with RXJava, Akka Streams, Reactor.

  • Flow API
  • Publisher
  • Subscriber
  • Subscription
  • Processor
  • Marble Diagrams
  • Libraries Committed to the Flow API
  • RxJava
  • Project Reactor
  • Akka Streams
  • Interacting between Libraries

IntelliJ Jedi Tricks

7:30 PM MDT

This presentation is the Dagobah of efficient editing and flow. Come only what you take with you.

Most efficient you will be, when keyboard tricks learned. You'll see. Hmmmm. You must unlearn what you have learned. A Jedi's power comes from knowledge of the tools used. Luminous beings are we… not crude typists. Mouse is your weakness. Learn to use more of the keyboard, you will.

Learn:

  1. Window Management
  2. Programming Flow
  3. Templating
  4. Version Control Management
  5. Testing
  6. Tooling
  7. Multicursors
  8. Emmet
  9. Debugging

Journey into Architectural Design Patterns

9:00 AM MDT

In this day-long work workshop, we will walk through a catalog of all the common architectural design patterns. For each design pattern, we will run docker-compose files that demonstrate the strengths and weaknesses of those design patterns. So you have a first-hand, full-on, and highly engaged full-day workshop to give you the knowledge you need to make critical architectural choices.

We will cover:

  • Anti-corruption-layer
  • Claim Check
  • CQRS
  • Gatekeeper
  • Strangler Fig
  • Bulkhead
  • More …

Journey into Architectural Design Patterns

11:00 AM MDT

In this day-long work workshop, we will walk through a catalog of all the common architectural design patterns. For each design pattern, we will run docker-compose files that demonstrate the strengths and weaknesses of those design patterns. So you have a first-hand, full-on, and highly engaged full-day workshop to give you the knowledge you need to make critical architectural choices.

We will cover:

  • Anti-corruption-layer
  • Claim Check
  • CQRS
  • Gatekeeper
  • Strangler Fig
  • Bulkhead
  • More …

Journey into Architectural Design Patterns

1:30 PM MDT

In this day-long work workshop, we will walk through a catalog of all the common architectural design patterns. For each design pattern, we will run docker-compose files that demonstrate the strengths and weaknesses of those design patterns. So you have a first-hand, full-on, and highly engaged full-day workshop to give you the knowledge you need to make critical architectural choices.

We will cover:

  • Anti-corruption-layer
  • Claim Check
  • CQRS
  • Gatekeeper
  • Strangler Fig
  • Bulkhead
  • More …

Journey into Architectural Design Patterns

3:15 PM MDT

In this day-long work workshop, we will walk through a catalog of all the common architectural design patterns. For each design pattern, we will run docker-compose files that demonstrate the strengths and weaknesses of those design patterns. So you have a first-hand, full-on, and highly engaged full-day workshop to give you the knowledge you need to make critical architectural choices.

We will cover:

  • Anti-corruption-layer
  • Claim Check
  • CQRS
  • Gatekeeper
  • Strangler Fig
  • Bulkhead
  • More …

Do more with JReleaser

5:00 PM MDT

Hey. Remember that time when we used to create jar or war files and we used to just ssh into a box and deploy on a single box? Well, it was simpler but also maybe that wasn't that great of an idea. Time has certainly moved on, and our releases have become very advanced with very technical CI/CD pipelines, docker or debian packages, multi-purpose testing, producing signatures, perform security scans, perform releases, and then when you're done tell the whole world about it. Whew! This presentation introduces JReleaser, a release platform for Java that does a multitude of chores for you.

In this session we will discuss:

  • Installing
  • Using JReleaser
  • Integration with Build Tools
  • Standard Defaults
  • Lifecycle Management
  • Artifacts
  • Continuous Integration
  • Performing Releases
  • Feeling Victorious

Kubernetes Security Concepts Part 1

8:30 AM MDT

There are multiple elements to Kubernetes where each component seems like a character in a book, pods, services, deployments, secrets, jobs, config maps, and more. In this presentation, we just focus on the security aspect of Kubernetes and the components involved. Particularly centered around RBAC and ServiceAccounts. What they are, what they do. We discuss etcd and secrets. We will also discuss other options for security in Kubernetes.

  • Service Accounts
  • Secrets
  • Kubernetes API
  • Authentication
  • Authorization
  • RBAC
  • Roles and Cluster Roles

Kubernetes Security Concepts Part 2

10:30 AM MDT

There are multiple elements to Kubernetes where each component seems like a character in a book, pods, services, deployments, secrets, jobs, config maps, and more. In this presentation, we just focus on the security aspect of Kubernetes and the components involved. Particularly centered around RBAC and ServiceAccounts. What they are, what they do. We discuss etcd and secrets. We will also discuss other options for security in Kubernetes.

Service Accounts
Secrets
Kubernetes API
Authentication
Authorization
RBAC
Roles and Cluster Roles

Books

Testing in Scala

by Daniel Hinojosa

If you build your Scala application through Test-Driven Development, you’ll quickly see the advantages of testing before you write production code. This hands-on book shows you how to create tests with ScalaTest and the Specs2—two of the best testing frameworks available—and how to run your tests in the Simple Build Tool (SBT) designed specifically for Scala projects.

By building a sample digital jukebox application, you’ll discover how to isolate your tests from large subsystems and networks with mocking code, and how to use the ScalaCheck library for automated specification-based testing. If you’re familiar with Scala, Ruby, or Python, this book is for you.

  • Get an overview of Test-Driven Development
  • Start a simple project with SBT and create tests before you write code
  • Dive into SBT’s basic commands, interactive mode, packaging, and history
  • Use ScalaTest both in the command line and with SBT, and learn how to incorporate JUnit and TestNG
  • Work with the Specs2 framework, including Specification styles, matchers DSLs, and Data Tables
  • Understand mocking by using Java frameworks EasyMock and Mockito, and the Scala-only framework ScalaMock
  • Automate testing by using ScalaCheck to generate fake data