Prairie.Code() Sessions

.NET Core on a Raspberry Pi

The Internet of Things (IoT) is one of the hottest technologies going right now, and the demand for Internet connected devices is only going to keep growing. Everything from home appliances to industrial warehouse sensors are getting connected to the Internet to leverage the power of the cloud. There will be great opportunity for those developers who understand how IoT can help industry move to this new frontier. So how does a .NET developer leverage their experience to build powerful, secure, and robust IoT devices? Using .NET Core of course! While there are many options when it comes to building an IoT device, we are going to cover how to use an inexpensive off-the-shelf Raspberry Pi. We will look at how to setup and configure our Pi, how to write an application, how to deploy to the device, how to access the cloud, and even how to interact with the real world through the general purpose input/output (GPIO) pins. Come see how to put your Pi in the sky (cloud)!

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

A Look at the Apollo Guidance Computer

Mankind has accomplished many great feats of engineering and willpower, but few as awesome as putting a human being on the surface of the moon. Men and women from all walks of life, all sorts of techincal backgrounds and specialties came together to do the impossible. A large part of the success of the mission depended on the Apollo Guidance Computer. The AGC was truly ahead of its time despite most of it looking low-tech and simplistic by today's standards. In this session, we'll take an in-depth look at the Apollo Guidance Computer - how it was architected and built, some of the clever innovations that were used to push the envelope of what was possible in 1969, and even dig in to some of the code that helped mankind land on the moon and return safely home.

Speaker

Adam Barney

Adam Barney

Staff Software Engineer, Quicken Loans

Advanced Fiddler Techniques

Fiddler is a great free web diagnostic tool that nearly everyone uses, but typically only for very basic things. If all you need is to see the requests made between the browser and web server, the browser devtools can do that. Fiddler has many more advanced features that most developers are unaware of. It can be used to capture traffic from smartphones, tablets, and non-Windows platforms! Discover the power of manipulating requests and responses with breakpoints, the auto responder, and a visual composer. Review popular extensions for formatting JavaScript, syntax highlighting, and detecting image bloat. Go beyond the basics and learn the full capabilities of the tool and how it can improve your web development and debugging techniques today!

Speaker

Robert Boedigheimer

Robert Boedigheimer

Principal Systems Developer

Application Security or Hacking yourself everyone else is...

Software security isn't a tool or a library, everyone knows that you should check your parameters, and watch out for SQL injection, but is that really enough? If you have never had the opportunity to spend time hacking your own applications, you are really doing yourself a disservice. More than ever, the web is becoming an increasingly hostile environment, and because of it developers really need to step up their game. In this session we will go over some of the methodologies that we use internally to test applications, helping developers to think more strategically about designing applications for general security. As part of this conversation I will go over active attacks that we have seen against production sites using steralized examples.

Speaker

James McKee

James McKee

Global Developer Security Program Manager, Trimble

Architecting a Serverless IoT application on Microsoft Azure

In this session, we'll work together to design and implement an end-to-end IoT solution using Microsoft Azure, a Raspberry Pi, and a hair dryer. In true cloud-native fashion, we'll use pure platform-as-a-service (PaaS) components - no VMs allowed! Audience participation is encouraged as we will discuss tradeoffs, design, and scale issues while taking this journey together.

Speaker

Jim O`Neil

Jim O`Neil

Senior Architect, Insight

Azure Fundamentals Training Workshop (AZ-900)

This 8 hour workshop is a full-day training that prepares the attendee to take the official AZ-900 exam. The workshop will line up with the measured skills for the exam, and will introduce the attendee to all of the critical aspects of Microsoft Azure, thereby positioning the attendee to move into more practical application of azure concepts. The major topics covered include Understanding cloud concepts, Understanding Core Azure Services, Understanding security, privacy, compliance, and trust, and Understanding Azure pricing and support, Along the way, we'll examine things like - Capital Expenditure vs Operational Expendature - Infrastructure as a service (IaaS) - Platform as a service (PaaS) - Software as a service (SaaS) - Resource Groups - Regions - Availablity Zones - Virtual Machines - App Services - Azure Container Instances and Kubernetes Service - Key vault - Network and Application Security Groups - Azure Active Directory - Subscriptions and Pricing - AI and Machine Learning Studio - Azure portal, Azure PowerShell and Cloud shell - Serverless computing - Azure DevOps and DevTest Labs - Big Data, SQL Data Warehouse, Azure Databricks And more.

Speaker

Brian Gorman

Brian Gorman

Senior Training Architect, Opsgility

Blasting Browser Security with Extensions

Abstract

Multi-platform browser extensions are easier to write than ever, can have great authority to examine and alter HTTP requests and responses, and are shockingly easy to get listed on the official respective browser stores. In this talk Micah builds an over-powered, multi-platform extension.

Description

In this talk, Micah gives an overview of how browser extensions work and the web-ext tool for creating extensions that work in both Google Chrome and Mozilla Firefox. He then shows how to debug and test extensions locally as well as how to package them up for distribution. The talk culminates with a real-time attempt to get an extension with an over-powered list of permissions listed on the Chrome Web Store and the Firefox Browser Add-ons Store.

Speaker

Micah Silverman

Micah Silverman

Lead Developer Advocate, Split

Building applications with Firebase

When Firebase first started it was focused on providing a real-time document database as a service. However when you search for Firebase now, you'll see products for Authentication, Serverless Functions, and… Machine Learning? Clearly there is a lot more that you can leverage when using Firebase today. In this talk we'll look at what takes to leverage the products Firebase offers for all stages of an application lifecycle. From development, to deployment, to monitoring the app, we'll see if Firebase helps our application lift off or burn out.

Speaker

Devin Kelly-Collins

Devin Kelly-Collins

Senior Software Engineer, Artisan Technology Group

Cloud-Native Apps in Azure: Architecture, Implementation, Deployment, and Monitoring

Technology has changed so rapidly and dramatically, its shifted the business model from under us all. The need for massive upfront investment for on-premise infrastructure will soon become a footnote of our past. It is now ever important to be aware of how software we haven’t even built yet will age, even how to retire it. Modern infrastructure isn’t just cloud based or about using the newest languages and frameworks, but rather how that code is architected, managed, deployed and monitored is key to embracing the cultural shift of adopting technology as operational procedures instead of capital intensive assets.

We will demonstrate how to manage the full lifecycle of a modern application using Microsoft Azure tooling. We will start with how we are going to build, deliver, and monitor the app. You will learn about Infstracture As Code, Docker, Microservices, Azure Monitoring, Azure DevOps.

Agenda: * Architectures in Azure * .NET Core and NodeJS * MongoDB and SQL * Docker * Infrastructure as Code * Azure DevOps Pipelines * Azure App Services * Azure Container Registry * API Gateways * Azure Monitoring

Speakers

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow
Alex Will

Alex Will

United States, ArchitectNow

Containerization For Software Developers

The end is nigh. Your application is almost ready and you will need to deploy it. And with the deployment, the endless tweaking to actually get everything running in a production environment. If only there was a way to test everything in that environment first… This is where containers will come in to save the day. With container, you not only run your code in an environment similar to the production server, it is the production environment. In this talk, the attendees will learn about how to create container friendly applications, how to use containers to share their code with their team and finally, how to use those same containers to deploy to a production server with very little efforts.

Speaker

Joel Lord

Joel Lord

Developer Advocate, Red Hat

Content is King: How Contentful and CaaS are Changing the CMS Game

Content as a Service (CaaS) has been making huge inroads in how content is managed and consumed in the digital world, thanks in large part to the huge growth of JAMstack-powered digital experiences.In this presentation, we'll discuss how Contentful, one of the biggest players in the CaaS space, makes your project's content scalable and reusable across channels, show how properly modeling your content can make or break a successful CaaS implementation, and demonstrate how easy it is to add Contentful to your JAMstack projects.

Speaker

Aaron Ladage

Aaron Ladage

Architect, DEG

Continual Product Discovery with StoryMapping, OKRs, and more

Description

Whether you are a product owner, manager, analyst, engineer, or tester, you build products. And building products is challenging - not only getting the product right but also making sure the team working on the product understands the nuances of your product. How do you go about designing, delivering, and adapting your product to deliver better solutions while incorporating product learnings as you go?

In this 1-day hands-on workshop, you will learn and use product discovery tools used to help teams discover and continuously learn about their product. You will learn:

Lean Product Discovery with product framing, design targets, and storymapping
Product validation with experience tests
Driving product language within and across teams
Blending discovery with delivery to drive continuous product learning

You will use:

Product framing, design targets, and OKRs to drive product alignment and meaning
Storymapping and user journeys to explore options, dependencies, and validate decisions
Annotations to drive product language within and across teams
Leveraging continual product discovery as part of product development

All exercises are hands on and done in small groups Who should attend:

Product Owners / Managers looking to understand how to blend product thinking into delivery within and across teams
Managers, analysts, designers, and team leads challenged with getting the 'requirements' right
Engineers tired of not having a voice in the process

Whether you are new to product discovery and lean or are looking to hone your skills, this class will give you hands on experience applying these techniques in real world scenarios. The course is designed for anyone working on building or leading teams building products, within or outside of software.

Speaker

Joel Tosi

Joel Tosi

Co-Founder, Hands-On Coach, Dojo & Co

Continuous Security: Integrate security tools into your DevOps Pipeline

OWASP, a nonprofit composed of security experts from around the world, provides a number of free and open source tools designed by security experts to help your secure your applications. Learn how to integrate these tools - from active penetration tests to project dependency checkers - into your DevOps pipeline and deliver on the promise of continuous security.

Speaker

Bill Dinger

Bill Dinger

Managing Director of Technology, VMLY&R

Creating GUI Applications with Python

In this talk, you'll learn how to create a cross-platform graphical user interface (GUI) using Python and the wxPython toolkit. The wxPython toolkit is a Python wrapper about the C++ based wxWidgets project.

You will learn the following in this talk:

  • An Intro to wxPython
  • The elements of a wxPython application
  • How to create an application
  • Utilities for distributing your application

This will be a code heavy talk and cover a lot of ground. However by the end of the talk, you will walk away with the knowledge of how to create your own application with Python!

Speaker

Mike Driscoll

Mike Driscoll

Software Engineer, Ag Leader Technology

Creating Scrum

Scrum is taking over the world, along with the agile practices. This doesn't mean that you're team is there yet, nor that they're doing it right. This session will be run like a Scrum meeting, and go over the lesson's learned as a developer who's seen it fail, as well as a manager who's had to bring an entire team on board from dedicated waterfall. We'll also discuss some alternatives, like Kanban, as well as the tools available for small to medium teams.

Speaker

Kevin A Cox

Kevin A Cox

United States, TEC Vector

Creating with Blazor

We will create a full working application utilizing Microsoft Blazor and related .NET 5 components. We'll cover some basics, then write some code together, so come prepared to learn and create at the same time. After lunch, we'll move on from the basics and dive into the more advanced features that Blazor can do, and discuss the different between server and client based Blazor.

We'll be able to utilize several different Azure hosted utilities as well, including databases and blob storage.

Speaker

Kevin A Cox

Kevin A Cox

United States, TEC Vector

Developer Potluck: Useful tools, APIs, services, and other toys every developer should know about

This talk is designed to quickly introduce developers to a wide range of useful tools and services we have found extremely useful in helping us provide better solutions, improving our development process, and generally just making our lives easier.  

These tools range from sites that provide useful services for developers, APIs we frequently utilize within our applications to provide more capabilities, SDKs and libraries we commonly leverage, and utilities we find useful.  

Our goal with this talk is to quickly demonstrate a large number of useful tools, utilities, and APIs and leave attendees with the resources they need to find out more.   Some of these tools are free/open source and others are commercial, but we find them all extremely useful and can’t wait to share how we use them.

We will discuss:

Developer utilities (all the way down to our favorite command prompts) 3rd party APIs Productivity software IDEs and plugins Useful NPM and NuGet packages

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Developing Cross-Functional Teams

Odds are you have heard the phrase cross-functional teams many times. When organizations start an agile transformation, it is the bedrock of forming an agile team. In practical terms, what does a cross functional team look like? How does an organization start their journey developing a cross functional team? I order to help solve this problem, I have developed a Skills Martix workshop for teams. By identifying and ranking skills gaps, teams can begin developing an intentional plan to increase skills across the team. No more spreadsheets that get comlepted once a year then tucked away on a server to never been seen again. In this session, you will learn how to create a skills matrix that teams can display and reference.

Speaker

Diana Williams

Diana Williams

Director Agile Coaching, Project Brilliant

Developing with Blazor

We will create a simple application with Microsoft Blazor, and cover when to use it, why to use it, and where it's going to take you.

Speaker

Kevin A Cox

Kevin A Cox

United States, TEC Vector

DevOps for .Net 5 web app CI/CD using GitHub Actions or Azure Dev Ops

There are many GIT solutions available, but for Microsoft developers, the top two choices are Azure DevOps and GitHub. Both Azure DevOps and GitHub have the ability to set up CI and CD to ensure that your solutions build and deploy correctly.

According to Donovan Brown's well-established definition, DevOps itself is the idea that one team does all the things - unifying the people, the processes, and the products. In this talk, we'll look at how you can empower your team to leverage DevOps in your day-to-day solutions.

We'll start by setting up a new Web App for each environment at Azure, then right-click and publish from our developer app. We'll then walk through setting up the app to have pipelines at Azure DevOps that build and deploy the solution into our Azure Web App.

We'll look at the differences between ADO and GHA, and how you can leverage your flavor of choice to integrate with your Azure account, either via a service connection (ADO) or a publish profile (GHA). We'll also look at things like using Secrets and configuration to ensure that everything works the way we would expect when the pipeline completes. Of course, by nature we'll be looking at some YAML throughout the talk.

Along the way, we will also talk briefly about the ideas of Rugged and Secure DevOps, but those topics in-depth are worthy of their own talk, and are outside of the scope of this talk.

Additionally, this talk does NOT leverage containers, but is using traditional .Net deployment approaches to hosting and delivering highly available solutions.

Speaker

Brian Gorman

Brian Gorman

Senior Training Architect, Opsgility

Docker and Kubernetes for Software Developers

Do you need to containerize and deploy to Kubernetes but don't know where to get started? This workshop is for you. In this full-day workshop, the attendees will start with a code base still in development mode and slowly break it down in pieces. They will learn how to package those pieces in containers. And finally, they will learn how to deploy them in a Kubernetes cluster. This workshop is a mix of hands-on and theory and teaches the basics of cloud native development to software developers.

Speaker

Joel Lord

Joel Lord

Developer Advocate, Red Hat

Document databases vs. Relational Databases: An honest comparison and things to consider

Many developers still struggle to understand which application scenarios might benefit from utilizing a document database or a relational database. Both of these options are powerful and many vendors have great products ready to build on. Unfortunately not one size fits all and there are definite scenarios where choosing one or the other will give your application architecture a leg up. There are also scenarios where a hybrid of using both a document database and a relational database might be the best choice.

We will discuss the benefits and tradeoffs of each option, how they differ, and give real-world design tips to consider when building on either. We will also discuss the current options available for database platforms in both the relational and document DB space. Many examples of real code and architectures will be given.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Dumping the Data Center: Strategies for Migrating to the Cloud

We are currently in the middle of a big shift in IT. Many companies who have already migrated their infrastructure to the cloud are now trying to realize savings. Others have not even started their efforts and are looking for the most efficient solution. Both are searching for strategies to smooth their journey.

This session lays building a framework for cloud migration. It gives you a starting point for mapping your journey, giving you guidance to properly dispose of each application as part of your cloud strategy. You will discover to assess your portfolio, choose the correct migration strategies, and govern the results of your migration efforts. From lift-and-shift to modernizing applications in cloud native deployments, you will gain knowledge on how best to make your journey a success.

What you will learn • Assessing applications for proper disposition (7 Rs) • Preparing applications for migration • Strategies for legacy app modernization • Governing your cloud presence

Speaker

Gregory Beamer

Gregory Beamer

Director of Cloud Architecture, Larsen & Toubro Infotech

Embrace an Agile Mindset

Organizations undergoing change must embrace the idea of experimentation. Those that only change vocabularies and not behaviors wonder why they quickly fall back into old habits, why the changes did not ‘stick’. Those organizations failed to embrace or misunderstood the objectives of experimenting. Organizational learning happens when people begin questioning the way things are done, they begin trying out different ideas together and share those learnings. Join me as we explore what it means to have an experimentation mindset.

Speaker

Diana Williams

Diana Williams

Director Agile Coaching, Project Brilliant

Encryption for Developers

Encryption has become a major part of the implementation of many products, but how many of us really understand what is going on behind the scenes. During your implementation, do you really know what an initialization vector does? What is the difference betwen AES-CBC and AES-CFB, and when should you use one over the other? How do you store the decryption key to prevent the same code leaking both the data and the key?

In this breakout section we will talk through some of the history of encryption, the different types of encryption, its appropriate uses, and the key elements that we are required to include encryption in your products.

Speaker

James McKee

James McKee

Global Developer Security Program Manager, Trimble

Esoteric Programming Languages

Most of the time we program in modern languages like Ruby, Python or C#. However, there are a plethora of languages out there that are strange, odd, and/or just plain funny. In this talk, I'll go over a number of esoteric programming languages such as Whenever, Befunge, and LOLCODE. You'll learn about their idiosyncratic behaviours and strange features, and why these languages are a great place to learn about building compilers and interpreters. Come with a sense of humor!

Speaker

Jason Bock

Jason Bock

Developer Advocate, Rocket Mortgage

Event-Driven Architecture in the Cloud

Event-driven architectures is a versatile approach to designing and integrating complex software systems with loosely coupled components. While not a new concept, event-driven architecture is seeing a new life as applications move to cloud as it provides much more robust possibilities to solve business problems of today and in the future. In this session, you will learn how to create a loosely coupled architecture for your business that has the domain at the core. You will learn the basics of event-driven architecture, how to transform your complex systems to become event driven, and what benefits this architecture brings to your businesses. The overall architecture is applicable to any cloud stack, but this session will have examples using Azure offerings.

Speaker

Chad Green

Chad Green

Director of IT Architecture, Glennis Solutions

Explaining HTTP Security Headers You Need On Your Website

In this session, we'll explain a handful of HTTP Security Headers (including HSTS, CSP, XFO, and more) from the bottom up. We'll explain what they are, what they do, and how you can implement them to secure your sites. On each of these, we'll demo a before and after so you can see first hand what each of these security headers do.

Speaker

Scott Sauber

Scott Sauber

Director of Engineering, Lean TECHniques

Feature Flag Football with Azure App Configuration

Utilizing Feature Flags is a powerful technique for allowing developers to modify system behavior without changing any code. .NET Core recently introduced a new Feature Management Library that makes implementing feature flags a breeze, ultimately which can standardize feature management in your system.

Azure App Configuration is also a recent Azure offering for configuring a host of variables in your .NET Core application. Basically, App Configuration offers a central place to manage app settings, environment variables, config values, and secrets. The feature also allows updating these configurations at runtime without needing to restart or redeploy an app service.

Imagine these two items being used in conjunction to create a solution where automation rules, deployment risk is reduced, and new features can be introduced into your application very rapidly, but more importantly very safely. It would be like if the New England Patriots wanted to try out a new offense against the lowly Detroit Lions for one week, while not worrying about de-railing their annual trip to the Super Bowl.

Speaker

Brian McKeiver

Brian McKeiver

Co-Owner, BizStream

Finding Fullstack in the Jamstack: Using Next.js and Prisma

Since the advent of the Jamstack, some of you may have been asking the same question as me: "This is great! Now where can I put my data?". Unless you have a personal squad of developers serving you the "a" in Jamstack, you have to deal with a backend at some point. Do you have to give up the developer experience of the Jamstack and do something separate and more traditional? Maybe not.

Join me as I explore my favorite approach to this issue using Next.js and Prisma. Be ready for lots of code!

Speaker

Austin Crim

Austin Crim

Software Engineer, Principal Financial Group

Game of Scrum: Planning and Designing in and around Agile Processes

Scrum, the most popular agile framework, takes its metaphor from the game rugby, arguing that self-organizing teams can move the ball down the field by working together as a cohesive unit, creating tactics as they go. This is contrasted to a relay race metaphor of traditional waterfall development. But often, this metaphor is imagined too narrowly, and disregards the game planning, coaching, drills, film review, team selection, training, and even equipment management necessary to make a successful rugby side.\n\nUsing a little history of scrum and agile, and our experience as a developer and a designer in multiple agile and non-agile environments, we will extend the metaphor to try to forge an understanding between the needs of a planning function, like design, and an execution function, like development, in the context of agile and scrum. We’ll talk about why developers “cry waterfall” every time someone tries to plan something, and why designers curse agile’s unholy name every time a new story is added. We hope you’ll come away with a better idea of how to integrate planning and design into a holistic development strategy.

Speakers

Mollie Cox

Mollie Cox

Director of Product Design, DMSi
Adam Erickson

Adam Erickson

Sr. Architect, DMSi

Getting Going with GraphQL

In this session, we'll discuss GraphQL - an alternative to REST for building API's. We'll go over the basics of what GraphQL is, what the benefits are, and the fundamental concepts and tools you need to know in order to get going and be productive. We'll do live coding and demos all throughout to lock in the concepts. If you've heard of GraphQL, but don't understand what the buzz is about, you won't want to miss this talk.

Speaker

Scott Sauber

Scott Sauber

Director of Engineering, Lean TECHniques

Getting Reactive with Relational Databases and R2DBC

Not too long ago, a reactive variant of the JDBC API was released, known as Reactive Relational Database Connectivity (R2DBC). While R2DBC started as an experiment to enable integration of SQL databases into systems that use reactive programming models, it now specifies a robust specification that can be implemented to manage data in a fully-reactive and completely non-blocking fashion.

In this session, we’ll briefly go over the fundamentals that make R2DBC so powerful. Then we’ll take a pragmatic look at the recently released R2DBC driver from MariaDB to shed some light on how you can take advantage of crucial concepts, like event-driven behavior and back pressure, that enable fully-reactive, non-blocking interactions with relational databases.

Speaker

Robert Hedgpeth

Robert Hedgpeth

Director, Developer Relations, MariaDB

Getting Started with Julia

Looks like Python, feels like Lisp, runs like Fortran. Julia is a language for high performance technical computing.

This session will include an introduction to the Julia language and some demos showing off some of its capabilities.

Julia is a general purpose dynamic programming language designed for high-performance numerical computation. Although relatively new, Julia is quickly becoming a serious contender in the data science arena currently dominated by languages like R and Python.

Julia feels like a scripting language, but offers performance approaching that of C or Fortran thanks to just-in-time (JIT) compilation using LLVM. Notable features include multiple dispatch, optional typing (including user-defined types), built-in vectorization, parallelism and distributed computing support, and Lisp-like macros and metaprogramming facilities.

Speaker

David Body

David Body

President, Big Creek Software, LLC

Git Demystified!

Git is a lot simpler than it looks.

Everything in a Git repository is based on just three fundamental types of objects: blobs, trees, and commits. Once you understand what these are and how they relate to each other, the apparent complexity of Git melts away revealing a simple, elegant system that is powerful because it is simple.

In this talk, we'll look under the covers of Git to see what is actually in a git repository on disk and what happens when you enter git commands like git commit. You'll come away with a better understanding of how Git really works and greater confidence in using Git.

Note: This is not an introduction to Git or a "how to" tutorial. You'll get more out of this talk if you have at least a little familiarity with Git, even (or perhaps especially) if you're struggling to get Git.

Speaker

David Body

David Body

President, Big Creek Software, LLC

Hack your first box!

This will be an hour-long talk with step-by-step instructions on how to enumerate, exploit, and privilege escalate a vulnerable machine to root/admin. This will use an "easy" VulnHub machine (Blogger), and would be distributed before the class begins. The USB drive will have Oracle VirtualBox download, the "Blogger" Virtual machine, and a fress copy of Kali.

Attendees can install using the provided USB's, bring their own kali box and follow along, or watch the screen as I explain how enumeration, exploitation, and privilege escalation works.

Speaker

Hacking OAuth: Pitfalls and Remedies

Abstract

OAuth 2.0 is the most widely used standard for secure authorization on the Internet for modern Web and Mobile apps. There are a lot of pitfalls that can lead to an insecure app.

Description

In this talk Micah gives a brief overview of OAuth and its mechanics. Then he leads you through a number of risks and remedies to best secure your applications. This isn’t just theory, but the practical application of certain risks and how to configure OAuth and write your code to mitigate those risks.

Speaker

Micah Silverman

Micah Silverman

Lead Developer Advocate, Split

How I Beat Vegas* With Deep Learning

Do you want to see what all goes into a deep learning library? Do you want to see how you can deploy all your hard work using TensorFlow.JS and Google Cloud to a web site or using TensorFlow Lite, Java, and Android Studio for an Android application? Do you want to hear me talk about my blazing hot streak in college basketball?

I will walk through my small personal project that started with using Jupyter Notebooks and TensorFlow to a full blown course for Manning Publications. I will start with using TensorFlow and Keras to build a neural network. Then explain how I was able to deploy my trained model using TensorFlow.JS and use simple JavaScript code that predicts the outcomes to a hosted web site. Next, I will show how I was able to use TensorFlow Lite and Java to create an Android application.

Speaker

Evan Hennis

Evan Hennis

Software Engineer

How to be a Java Automated Testing Superstar

Automated testing in a crucial step in modern software development. A quality automated test suite enables rapid development and deployment practices like CI/CD by providing a stable quality check before an application is delivered to the world.

But how do you write a quality automated test suite in Java? In this presentation we will look at the practices and principles for writing reliable, accurate, and portable tests, and how they can be implemented using modern automated testing frameworks and libraries including; JUnit 5, Mockito, Test Containers, and others. With this knowledge you can become an automated testing superstar and help your team get to production faster!

Speaker

Billy Korando

Billy Korando

Java Developer Advocate, Oracle

How to communicate effectively across time zones and cultures

Even without COVID’s work from home arrangements, many teams are already co-located or distributed across time zones. Precise and concise communications not only saves time but improves software quality.

In this talk, we will go through some case studies of effective communications and common mistakes that lead to miscommunication.

Speaker

Nien Sui

Nien Sui

Technical & People Manager, Solution Architect, Capgemini

Implementing Kaizen to Improve Legacy Products

We've all worked on the dreaded legacy product. Maybe the applications developers are no longer part of the company, or possibly it was developed by a team offshore. What are the steps to take it from a whole broken code base that stresses out developers, to something that people don't fear working on. This course provides a step by step process to revitalize legacy applications and make them more managable.

Kaizen is the Japanese word for improvement, as was introduced to the development world as part of the LEAN development model. But from it's humble introduction and implementation as part of the Toyota Production System to it current use in modern software development, it has proven it's effects on improving software code bases and the lives of developers.

Speaker

James McKee

James McKee

Global Developer Security Program Manager, Trimble

Introduction to Cloud and Cloud Native Computing

Cloud Computing is ubiquitous these days. It seems to be as common as the air that we breathe in, without which there would be no running computer systems. But what exactly is Cloud Computing? What about Cloud Native Computing? Are these terms referring to the same thing? If not, what are the differences? This lively talk will go over the fundamentals of Cloud Computing, and then move on to explain what Cloud Native really means. We will also venture into the console of a major Cloud Provider, and look around to see some key features that it has. We will then examine a basic Cloud Native Java application to understand how containers fit into the picture. For someone who is new to Cloud Computing, s/he would be able to start to understand the differences and similarities between Cloud and Cloud Native Computing.

Speaker

Mary Grygleski

Mary Grygleski

Developer Advocate, IBM

Introduction to Observability with Elastic

As applications grow more complex, understanding their behavior becomes more important, especially when things go wrong.

Tools and practices around collection and analysis of logs, metrics, and distributed traces make running these systems possible.

If you're unfamiliar with these types of tools or with concepts like distributed tracing, this talk will help you get up to speed. Using Elastic Observability for the examples, you'll see what it takes to start having a better understanding of the operation of your systems.

Speaker

Nathan Smith

Nathan Smith

Software Engineer, Elastic

Just what can the browser do?

With Angular, React, Vue, and more frameworks coming out each day it can be tough to figure which one you should use. But what if we didn't use any of them? You might be surprised to find out how much you can do with just the tools the browser gives you. It may not look as pretty as React or be as verbose as Angular, but all of these frameworks had to start somewhere. Join us as we build yet another conference app complete with data binding, notifications, geolocation, and much more! All with just plain old Javascript, CSS, and HTML.

Speaker

Devin Kelly-Collins

Devin Kelly-Collins

Senior Software Engineer, Artisan Technology Group

Knowing What Risks Matter--And Don’t--In Your Open Source

As digital transformation accelerates, software developers face increasing pressure to speed up their work, and open-source software helps them meet aggressive timelines by dropping standardized code into an application. But cyber criminals are targeting more attacks on the software supply chain, exploiting software vulnerabilities that occur in production. As a result, organizations must prioritize protecting the open-source code in their applications. Attend this session to learn about the findings of the 2021 Contrast Labs Open-Source Security Report. The research uses telemetry from applications protected by Contrast OSS and Contrast Assess to reveal trends about library usage, vulnerabilities, and best practices from thousands of real-world software supply chains. You will learn about surprising findings such as:

  • Less than 10% of code in the typical application is open-source code actually used by the software.
  • Legacy software composition analysis (SCA) tools have a false positive rate of up to 69%.
  • The average library uses a version that is 2.5 years old, increasing risk and promising future headaches.
  • High-risk licenses are present in 69% of Java applications and 33% of Node applications.

In a world of accelerating development and frequent exploitation of vulnerabilities, protecting applications containing open-source libraries and frameworks requires a different approach. Organizations need a comprehensive picture of active and inactive libraries and classes, library age, vulnerabilities, and licensing issues. Such observability enables an organization to address the riskiest issues—and not waste time with vulnerabilities that pose no risk.

Speaker

David Lindner

David Lindner

CISO, Contrast Security

Metrics - Moving from what is easy to what matters

Metrics are a good thing when we ground them in decisions we want to make. Metrics for the sake of having metrics loses its purpose.

In this session, we will walk through a simple way of grouping metrics - from easy to collect, to directional, to impactful. Along the way, we will give examples of metrics in each group - what they mean, why they are good, where they fall apart. All along working towards better metrics and the approach to collecting and using them.

Additionally we will introduce and show process behaviour charts - a technique that looks at data and helps separate noise from signal.

Leave this session with simple ways to group metrics and ways to interpret if your changes (product, process, or people) are making a difference.

Speaker

Joel Tosi

Joel Tosi

Co-Founder, Hands-On Coach, Dojo & Co

Migrating to Multi-Stage YAML Pipelines in Azure DevOps

Multi-Stage YAML pipelines is the latest way to accomplish continuous integration and continuous delivery in Azure DevOps. Pipelines as code offers a number of advantages including changes going through the same version control practices as application code. The pipeline also lives with the code so any pipeline changes needed for a branch of code is independent of the pipeline in other branches until it is merged. I will show you how to convert existing UI based pipelines to YAML, create a pipeline from scratch, and utilize templates to create more reusable pipelines and provide security and compliance with approvals.

Speaker

Mike Douglas

Mike Douglas

Director of Delivery Engineering, Lunavi

NEOPIXELS and LED MODULE HANDS-ON WORKSHOP

Come on in and learn to code an Arduino to light up a ring of Neopixel lights. We will make the lights blink and chase, and change colors. Then we will add a sound detector and program the Neopixels to react to the beat of the music. It’s up to you how the lights will react, you can make them blink, chase, change colors, or dream up your own combination. Finally, we will code an 4X1 Dot Matrix LED module to light up a short word or design. We will do a little wiring to get the Arduino, Neopixel ring, and LED Matrix setup. It’s all hands-on. Bring a laptop (A Windows laptop works best if you have that available.) to code along with us. Order the Arduino, Neopixel, and Sound Sensor listed below and bring them along. If you are not able to order the items below, we will have a couple of stations with the hardware (you will still need a laptop as listed above) for group work.

Key Takeaways: • learning about microcontrollers • learn to customize lights • learn programming concepts • hands-on experience, seeing instant results • fun

You can order your own items and bring a PC with Windows to program your own Arduino and Neopixel. Or come in and follow along to see how it works. Items to order: 1. Arduino Uno board with USB Cable: https://www.amazon.com/gp/product/B0168B39N4/ref=ohauisearchdetailpage?ie=UTF8&psc=1 2. Neopixel LED Ring (Note: it is important to get THIS one as other Neopixel rings need soldering): https://www.amazon.com/gp/product/B00KAE3R1U/ref=ohauisearchdetailpage?ie=UTF8&psc=1 3. Sound Sensor: https://www.amazon.com/Anmbest-Microphone-Sensitivity-Differential-Comparators/dp/B07CQZ93N4/ref=pdcp4212?pdrdw=5jDAu&pfrdp=ef4dc990-a9ca-4945-ae0b-f8d549198ed6&pfrdr=J9WDMX01MQCPYFHTK9RJ&pdrdr=736bfa43-d68c-47f1-83f3-88cb559b5dc5&pdrdwg=xo6Bg&pdrdi=B07CQZ93N4&psc=1&refRID=J9WDMX01MQCPYFHTK9RJ 4. Light Modules (Note, you only need one but this is the best one I have found AND with two if one doesn’t work you have a spare): https://www.amazon.com/Onyehn-MAX7219-Display-Arduino-Microcontroller/dp/B07KQ31FX6/ref=sr14?keywords=dot+matrix+module+4+in+1&qid=1567043078&refinements=p85%3A2470955011&rnid=2470954011&rps=1&s=gateway&sr=8-4 5. Jumper Cables: https://www.amazon.com/gp/product/B077N5RLHN/ref=ppxyodtbsearchasintitle?ie=UTF8&th=1

Node.js, ML, K8s and Unethical Face Recognition

How nice would it be to be able to remember everyone’s name? What if you could just walk into a room and know everyone’s Twitter handle? What if you could give them a score to decide if you should have a conversation with them or not? Kubernetes is a great tool that is being used more and more for deploying applications, and it can also be used in the context of machine learning. In this talk, the speaker will demonstrate how to use NodeJs, a touch of machine learning and a sprinkle of Kubernetes to recognize people in a crowd. This talk is about the various technologies that were used for this demo inspired by the Black Mirror show. It’s about the tech... and also why you shouldn't build it.

Speaker

Joel Lord

Joel Lord

Developer Advocate, Red Hat

Optimizing your career journey using combinatorial algorithms

Have you wondered how to advance in your career when you have multiple options? Or how to recruit the right team for your project or organization?

Searching for the optimum job or team member can be viewed as a mathematical optimization problem that we can navigate using well known heuristics.

Heuristic algorithms are techniques that can be used to solve decision problems that have no clear procedure, which in technical terms are called, NP-Complete problems. These innovative algorithms have been applied to engineering and financial problems for decades.

In this talk, you will learn how to use them in your own career planning or organization's recruitment strategy.

You will also learn how combinatorial optimization algorithms, such as simulated annealing and stochastic optimization can help professionals to get unstuck in their career advancement.

Organizations can also use the technique in recruitment and team building.

Speaker

Nien Sui

Nien Sui

Technical & People Manager, Solution Architect, Capgemini

Overcoming Technical, Cultural, and People Challenges to Reach Your DevOps Journey Goals

Many developers want DevOps practices but struggle with how get over some of the organizational hurdles. Tools like GitHub and Azure DevOps make it easier than ever to automate your CI/CD pipelines but maybe you have started automated deployments but are not allowed to do them in production. Maybe you want to introduce feature flags or toggles but are not allowed to deploy to production with any untested code. Everyone is at a different step of their DevOps journey. In this talk I will walk through the most common steps of a DevOps journey and help equip you will techniques and lessons learned for overcoming organizational obstacles no matter where you are at and how to achieve your goals.

Speaker

Mike Douglas

Mike Douglas

Director of Delivery Engineering, Lunavi

Packaging your world with NuGet

Whether you are creating an open source library or building enterprise app core components, you need to get that functionality into other projects. But developing these resources is usually easier than consuming them. How about a worry free way to distribute and reference those resources in your project that will let you stay up to date, but allow you to avoid problems that may introduce breaking changes or new bugs? NuGet packages to the rescue! We'll also take a look at where you can find NuGet (packages aren't just for code any more) and how to create, distribute, and maintain your very own package. Then, you’ll be ready to share your package with your team, your enterprise, or even… The world!

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Permit to Cloud - Land with confidence in Azure

An application is an idea that has code, data and infrastructure, and choosing whether to build a conveyor belt or to put up guard rails along the path is important in maintaining velocity to the cloud. In this session, we explore the tools available in Azure for creating and enforcing governance policy, standards and infrastructure, including Azure resource template technologies and Bicep, Azure blueprints, as well as DevOps processes including GitHub Actions that you can use to ensure your cloud journey is predictable, secure and compliant. We’ll see how the tools work and share best practices for maturing your cloud journey.

Platform Engineering at Hudl

Software platforms are structures built to allow multiple products to leverage a shared technical infrastructure. In Software Engineering when examining our systems we often talk about performance metrics, fault tolerance, testing, scalability, availability, tooling, etc. In this talk, I'll posit that we should include feature velocity as a top concern when evaluating our systems. Building the required software platforms to power our products will lead to increased feature velocity, happier engineering teams, and better more profitable products.

At Hudl we use AWS to ingest, encode, and store thousands of hours of sports video every day. I'll use Hudl's video publishing pipeline as a case study on applying platform engineering principals to a shared application infrastructure that supports multiple rapidly evolving products at the same time with the same code.

I’ll go in-depth on how at Hudl we’ve used Terraform and AWS managed autoscaling to completely replace a in-house built legacy scaling solution, while achieving nearly 30% reduction in our annual EC2 compute costs.

Speaker

Andy Pryor

Andy Pryor

Engineering Director, Hudl

Rewrite Git History to Supercharge your Code Reviews

Dev1: "Hey, can someone go approve my pull request?" Dev2: (30 seconds later) "Sure, done."

In many organizations, peer review has begun being seen as an impediment to getting code deployed. The changes being reviewed are often way too large or difficult to follow, so reviews just get rubber stamped.

In this talk, we'll demonstrate several ways to get the most out of code reviews by looking at ways to make code reviews much more valuable. The majority of the our time together will be spent learning ways to make your pull requests tell a cohesive story about the code that's being implemented by using functionality in Git to rewrite the commit history. We won't just talk about it, though. We'll spend our time in a repository creating Pull Requests and using Git functionality to make them highly reviewable.

Speaker

Nathan Adams

Nathan Adams

Software Developer, United Fire Group

Sharing Your Experience for the World to See

Live coding is the practice of learning and developing code while streaming what you are doing to an online service like Twitch or YouTube. Come learn the benefits of such practices, how to get started, and learn learned after over a year of streaming TaleLearnCode.

Speaker

Chad Green

Chad Green

Director of IT Architecture, Glennis Solutions

Simple Computer Architecture - Building an 8-bit computer from scratch

Computers often present themselves as incredible complex, powerful machines. In reality, they're fairly simple and do very little. They just do very little several billions of times per second. I am not an expert on computer architecture, but I've recently taken the time to learn how simple computers work down at the metal - WAY down on the metal. In this session, I'll share what I learned about how the machines that power our society work. We'll talk about all the fundamental building blocks of a computer's architecture, how to build your own versions of those blocks, and how a basic assembly language emerges from the design.

Speaker

Adam Barney

Adam Barney

Staff Software Engineer, Quicken Loans

Slurm: Toxic Company Cultures and How to Survive Them

Believe it or not, a Futurama episode and my experiences have led me to create the SLURM Framework which I believe will help you navigate toxic waters of a company's culture. In this talk I provide tips for Sensing the environment, Learning the telltale signs of negative and dangerous behaviors, Understanding how to cope and combat disruptive processes, Refactoring the norms and continuously improving, and when it's time to Move on. Let's open up the floor for a serious conversation about what I think is the single most important aspect of any company: culture.

Speaker

Dennis Stepp

Dennis Stepp

Software Engineer, Lirio, LLC.

SOLID Interfaces: A pattern for success

Defining and using interfaces is one of the core tenets of modern software development. Interfaces are fundamental to making an application testable and keeping it loosely coupled, so why do so many get it wrong? As with many principals of software design, the benefits and goals are often misunderstood and therefore they are misused and abused. In this session we will examine what interfaces are and why you should care about them. We will also discuss when interfaces should be used and look at some of the common pitfalls and mistakes people make. Join us and make you software design fundamentals more SOLID.

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

State-of-the-art Search with Azure Cognitive Search

We all know that providing a good search experience for website visitors is hard. Everyone expects it to “just” work like Google or Amazon. Maybe there is a better way, maybe we fix this with a little help from some AI.

Join the session to see how you can leverage Cognitive Services with Azure Cognitive Search in your apps. With the newly minted semantic search abilities this technology can provide results that are semantically closer to the intent of original query. For example, can you your search return the right results for a query like "in the last 5 years" or will it just return matches based on those 5 words without any context.

You will also learn how to enhance and enrich search through Cognitive Service Skills like natural language processing, image analysis, entity recognition capabilities. Don't know what those are? Well that's not a problem because you will find out.

You can expect to walk away knowing how to generate your own enrichment pipeline that leverages the power of AI to solve your search woes. Why not use the same integrated Microsoft natural language stack that Bing and Office have used for more than a decade into your site? Maybe AI can make it "just" work.

Speaker

Brian McKeiver

Brian McKeiver

Co-Owner, BizStream

System Observability Across Your Tech Stack

"Hmmm, this behavior is odd." "What's causing this to happen?" "I have no idea what happens to this request after it's processed." Does this sound familiar? Did you agonoize for months trying to find the answer? Did you just sweep it under the rug for someone else to eventually notice? In this presentation I will provide you with some helpful tips to instrument and monitor your code bases and key services that power your software. We'll look into monitoring Apache Kafka, Java SpringBoot apps, Python apps, Kubernetes, Postgres, and more with tools such at Prometheus, Graphna, and Loki. We'll also briefly touch on system observability as it relates to the business domain and how that can lead your internal users to discover opportunities for future product offerings.

Speaker

Dennis Stepp

Dennis Stepp

Software Engineer, Lirio, LLC.

Teach Kids to Code

There are so many great ways to teach your kids to code. Come explore the newest and the best. Starting with unplugged options like games including Potato Pirates and Hacker to reading Hello Ruby and Girls Who Code. We will light things up and make games with the new microcontrollers, and learn how to get programming with robotics. Finally, we will explore free online projects from Scratch that will draw us in for hours of fun. From concrete coding samples to unplugged activities you will be inspired to teach your kids to code – or maybe learn something new yourself.

Tell Web Ads to Shut Their Pi-hole!

Speed up your browsing and protect your privacy and security by setting up a Pi-hole! It is free small DNS server that is "a black hole for Internet advertisements" that runs on a Raspberry Pi. We'll talk briefly about the Raspberry Pi, then learn how to setup Pi-hole on your network for use with all of your devices. With a low cost Raspberry Pi and an hour of setup time, we now surf faster and more securely, with nearly 40% of our DNS queries blocked. Its amazing how much more enjoyable using the web can be, you'll cry when you have to surf without it.

Speaker

Robert Boedigheimer

Robert Boedigheimer

Principal Systems Developer

The Command Line - A Humble Journey

Have you used the command line lately? Ever given much thought how it came to be?

I'm not surpised - I haven't given it much thought either. But after learning more about the journey the CLI has taken to get us to where we are today, it gives me new appreciation, and understanding, of how the CLI works. Many of the things we do today are rooted in the past, and the CLI is no different. Sit back, relax, and enjoy the origin story of our old friend, the Command Line.

Speaker

Kelly Andrews

Kelly Andrews

Senior Developer Advocate, Nexmo

The Dark Side of UX

User experience design brings clarity, removes obstacles. It rewards - makes us feel accomplished, successful, happy. Users are confident when using a well-designed application - as easy as turning on a light switch: [Buy]

Don't make me think: did I opt in? Don't make me think: was that a hidden fee?

We will explore the wild world of user manipulation. The Bait and Switch. Trick Questions. Misdirection. Confirm-shaming! Discover the latest ways UX designers trick their users, how easy it is to do by accident and how it affects your brand.

[ Sounds great ] [ No, I hate knowing things ]

Speaker

Courtney  Heitman

Courtney Heitman

Technical Accessibility Specialist, Gallup

The GUI is a prison: Automate your infrastructure with Ansible

Configuring your infrastructure through the GUI or shell is a buggy, time consuming, hard to audit and error prone exercise. In this session learn how to use Ansible to configure your servers, switches, docker containers and everything in between with code. Learn practical tips, tricks, and demo code to get you started right away on both windows & linux and learn why you'll never want to use the GUI again.

Speaker

Bill Dinger

Bill Dinger

Managing Director of Technology, VMLY&R

The Web is for Everyone

Tim Berners-Lee is noted as saying “the power of the web is in its universality." The web was meant to be a great equalizer for everyone - whether you are situationally, temporarily, or permanently disabled. After all, you never know when you might break your arm or have to order pizza while holding a child.

This talk will go over why things like inclusive design, user experience, and programming for accessibility aren't just good practices, but why they are essential to helping make the web a better place for everyone. You'll leave this session with greater knowledge of how to design and develop with accessibility in mind.

Speaker

Courtney  Heitman

Courtney Heitman

Technical Accessibility Specialist, Gallup

Think Outside the Box: Building a Better You Through Brain Hacking

There is a myth human beings on use 10% of their brains. While this is a myth, it is true a large percentage of people only live up to a small percentage of their potential. Much of the failure to achieve is due to limiting beliefs and unchallenged biases.

You live in a box. The box can protect you from the outside world, but it can also limit your potential through false beliefs and biases. But you can adjust your box and live the life you desire. All it requires is realizing your box and taking reasonable steps to alter it to fit the reality you want to live.

What if you could learn to solve your problems with ease? What if you could live up to your potential? Modern neuroscience says you can. Will you?

What you will learn • Why you should embrace cognitive dissonance • Why confirmation bias limits your creativity • Practical brain hacks for solving problems

Speaker

Gregory Beamer

Gregory Beamer

Director of Cloud Architecture, Larsen & Toubro Infotech

To Java 17 and Beyond!

The next version of Java, 17, will be releasing soon and will mark a major point of change in the Java community as many organizations migrate to the latest Java runtime. So what has changed in Java if you are still primarily writing in Java 11? Or even Java 8?

In this presentation we will look at some of the key changes that have been added to Java post-8. The large changes; the Module System and Records, quality of life improvements; var, text blocks, pattern matching, and the many performance and runtime improvements. We will finish the presentation with a brief look ahead to some of the changes that will be coming to Java in the near future and why Java’s future is bright.

Speaker

Billy Korando

Billy Korando

Java Developer Advocate, Oracle

Unit-Testing .NET With Ease

Do you want to skip all the setup ceremony and get straight to the actual testing when writing unit tests for your .NET code? Leveraging dependency injection and IoC makes it a breeze to build solutions that are modular and testable, but building out those dependency chains in our unit tests can leave them cluttered and overly complex. It's time to learn to embrace the magic of IoC, DI, and mocking to lower the friction of writing and maintaining unit tests. Taking cues from the open-source library Ease, you can see how to tap into the life-cycle of unit testing frameworks and integrate it with an IoC container to give you a fresh start for each test. Throw in a little mocking and a flexible pattern for managing setup and now you are testing in high gear! A great side-effect of using Ease, or a similar methodology, is that tests become more resilient against changes in the dependencies that are not a direct concern of the test, so you end up breaking fewer tests and changing less test code. What are you waiting for? Stop the ceremony, and start testing!

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

What's New in C# 10

C# is an open-source, mature object oriented language, used by millions of .NET developers, yet its evolution is still underway. In this session, we'll cover the latest features that are being considered for C# 10 and how they work in detail so you'll know when to use them effectively in your new .NET projects.

Speaker

Jason Bock

Jason Bock

Developer Advocate, Rocket Mortgage

What's New In EFCore5 (and coming in EFCore6)

In this session, we'll dive into many of the new features available in EFCore5 that can help to enhance your solutions.

All samples assume a code-first approach.

We'll look at practical examples of Many-To-Many auto navigations, Table-Per-Type inheritance mapping, Filtered Includes, Split Queries, Simple Logging, and Flexible Entity Mapping. We'll then talk about a couple other changes that happened with EFCore5.

The talk will finish up with a discussion of new stuff potentially coming with EFCore6/.Net 6.

Speaker

Brian Gorman

Brian Gorman

Senior Training Architect, Opsgility

Where's my Stuff? Exploring data options in Azure

Data is the currency of tomorrow, and with the explosion of IoT, edge devices, cloud computing and cheap storage it's never been more important to define and build around a solid data architecture. The tools of yesterday brought us to where we are, but the relational engine is not your only choice. In this session we look at storage options, including Relational, NoSQL and Document databases including SQL Azure, Cosmos DB and Azure Storage, and show pros and cons of each. We walk thru converting a real application from using SQL Server to using storage options in the cloud, including SQL Database, table storage and Cosmos DB. We see how to leverage storage patterns to make the most out of our investment in the cloud.