Prairie.Code() Sessions

A beginners guide to Computer Vision

Computer Vision is at the heart of the coming Mixed Reality future and is an important skill to be aware of and even dive into! As developers we are lucky to have a rich resource that is OpenCV that makes it straightforward to learn core tenants of computer vision. I will use Python to demonstrate power features of OpenCV such as image tracking, Snapchat like filters, and face detection. I will then go into how OpenCV can be utilized in iOS and Android applications to add power (and fun!) to a wide array of applications.

Speaker

Andrew Rangel

Andrew Rangel

Lead Mobile Developer, VML

A Beginners Guide to Machine Learning

The beginners talk will be a journey into what Machine Learning is and what it is good for. There has a been a rise in interest in ML / AI and with it a lot of misconception. As someone with almost no real math background I will give a guide to those who are non techincal and ML newbies. From real examples and a theoretical background my goal is to make learning more about Machine Learning to be fun for everyone.

Speaker

Andrew Rangel

Andrew Rangel

Lead Mobile Developer, VML

A guide to JavaScript's scary side.

We all know that JavaScript has good parts. But some areas are not for the feint of heart. We hear terms like Prototypes, Hoisting, Closures, Event Loop, and all this weird async/callback behavior. Why in the world would you ever setTimeout to 0, and why can I never rely on ‘this’? In this talk, Jon will show you how all this works…and how to use these tools to your advantage. It’s time to shine a light under the bed of JavaScript. Much like scary monsters under the bed, when the lights come on, the monsters are not so scary after all.

Speaker

Jonathan Mills

Jonathan Mills

Paige Technologies

A Skeptics guide to functional style javascript

With modern JavaScript, we have seen a rise in ‘functional style’ javascript popularity. This style introduces a whole slew of terms and patterns that have different connotations depending on who you are talking to. Phrases like purity, higher order functions, and currying are thrown around all over the place. What does ‘no side effects’ mean, and what about when you need to get something done? And what in the world is a ‘monad’? In this talk, Jon will walk through the world of the functional programmer and show how these phrases and patterns fit into modern JavaScript development. Jon will work through functions as first class objects in JS, and show how we can use that feature to write clean, maintainable, and reusable code. You will also walk away armed with the information you need to see through all they hype. You’ll have a firm grasp of where these patterns are useful, and as importantly, where they are not.

Speaker

Jonathan Mills

Jonathan Mills

Paige Technologies

Adding Realtime Features to Your Applications with SignalR

Ever wondered how hard is to add real time eventing to your ASP.NET application? SignalR is a new library that makes bi-directional communication easy and fun. In this session we'll cover the features and approaches SignalR offers on both client and server sides. If you're interesting in adding real time eventing to your applications today, you don't want to miss this talk.

Speaker

Javier Lozano

Javier Lozano

CEO, Lozanotek, Inc.

Advanced TDD with Mocks

All the talk about Test Driven Development is great, but how do you make that work when you have complex systems that need to interact? Either you have complex, brittle tests, or you can use a Mock version of your system. In this one hour session we will work through implementing a mock database connection and the tests around it.

Speaker

Clay Dowling

Clay Dowling

Agile Software Consultant, Pillar Technology

Agile Failures: Stories From The Trenches

When agile first burst on the scene, there was a lot of discussion about how agile is not just a silver bullet, but THE silver bullet. But is it really? Even after the "mainstreaming" of agile, projects continue to fail. In this talk we look at a series of failed projects, examining the root causes, and the lessons learned from those failures. Fast failure and careful retrospectives is the best way to continuously improve.

An Extended Explanation of Caching

Caching can be like regex. If you've got a problem and not a clear understanding of what you're trying to solve, you're going to end up with two problems. Understanding the mechanisms and types of caching possible from end user browsers down to in-memory databases can help clarify just what problem each layer of caching is designed to solve. Learn about what to cache, how to cache, and when to introduce caching into the mix of what you're building out. We'll talk about how to use CDN's, in memory, on disk, and cloud solutions when having to scale your applications with a caching solution.

Speaker

Tom Cudd

Tom Cudd

Systems Architect, VML, Inc.

Angular and Observables: A Reactive Extensions Story

Reactive Extensions (Rx) may fundamentally transform how you compose your applications.

Rx turns almost anything into an asynchronous, pushed-based stream of data. These data streams can be easily composed and reasoned with. Have you ever needed to respond to an asynchronus API call? A single call is easy enough, but what if we need to take action only after 3 or 5 async calls complete? Rx makes this as easy as iterating over an array with LINQ! Want to retrieve data from an API only once, then return a cached result for all subsequent requests? Rx solves this with two lines of code. Only execute a method after a user has been idle for 5 seconds? Easy!

In this talk we'll review some of the basics of Reactive Extensions and Observables then see some of the patterns in practice within an Angular application.

Speaker

Aaron Hoffman

Aaron Hoffman

Co-Founder, Stonefinch

Angular vs. React: A live demonstration, comparison, and discussion

Are you thinking of bending to peer pressure and diving head-first into learning Angular? Are your "other" friends telling you React is the framework you should choose?

This session will provide developers with a quick introduction to both React and Angular 2. We will provide a demonstration of a basic application written in both frameworks. This will give attendees a great, side-by-side comparison to see similar concepts implemented in both. Both application will support a similar build/development process and will utilize TypeScript as the implementation language.

Finally we will share information on what type of tools support you can expect with either framework, what their respective communities look like, and what the impact of choosing either one might be.

Just a warning to the curious...you may not find as many differences between these frameworks as you think.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Angular2 with an ASP.NET Core backend, happiness ensues...

If ASP.NET Core married Angular2, would TypeScript get jealous? It is a match made in heaven. Leveraging the grace and poise that Angular2 brings to the single page application paradigm, ASP.NET Core is the perfect spouse with its seamless and pluggable middleware. Let me prove how easy it is to marry these two powerful open-source projects together.

We'll discuss how Angular2 has been componentized. We'll touch on TypeScript as it pertains to enterprise JavaScript applications. We'll explore the Web APIs that compliment the SPA architecture while demonstrating the power of RxJS.

Speaker

David Pine

David Pine

Technical Evangelist (Microsoft MVP), Centare

AOP: Add a new Aspect to your Java Programming

Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure. The key unit of modularity in OOP is the class, whereas in AOP the unit of modularity is the aspect. We'll talk about AOP and its concepts including Aspect, Pointcut, and Advice. Then we'll use Spring AOP to put these concepts to use in a Java application.

Speaker

Scott Bock

Scott Bock

Senior Software Consultant, Object Partners

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

Solutions Developer / Enterprise Architect / Security Analyst, BlueBolt Solutions

Applying Design Patterns to Everyday Problems

Have you read about design patterns but weren’t quite sure how or where to apply them in your application? Have you heard of principles like loose coupling and programming to an abstraction, but didn’t know if you were really doing it right? If so, this talk is for you.

In this talk, I’ll work from several example code segments and show how to recognize which design pattern would be appropriate. I’ll then show how to refactor the existing code to use the chosen design pattern and demonstrate how the resulting code is more understandable, easier to maintain and easier to test.

Among the examples I will show is how a dependency on an external system can be refactored using an interface and applying the bridge and adaptor pattern. I’ll also show how to use the decorator pattern to cache results from an external call. Finally, I’ll show examples of how patterns like the strategy pattern and chain of responsibility pattern can replace large blocks of if/else if statements to create a simpler design that is easier to test.

When this talk is complete, you will have a good idea of how to recognize where these patterns can be applied in your codebase and how you go about implementing them.

Speaker

David Berry

David Berry

Solution Architect, Robert W Baird

Are You Really Using Kanban, or Just Making a List of Issues?

Maybe you think you're using Kanban now, but are you just tracking tasks in big ugly list? Kanban's focus on Flow, Work in Process, Visualization, and Continuous Improvement requires a change of mindset. With Kanban, teams must prioritize completion of work, maximize effort, and constantly increase efficiency. Where Kanban can provide the most value is in dealing with unplanned work, competing priorities, and unknown variables at project start. Examples of these types of projects include:

  • Legacy projects migrating to a cloud platform
  • Budgets shifting towards newer investments
  • A new merger brings on new properties
  • Existing projects have shifted into an end-of-life, but not end-of-support phase

Or maybe, you're a support desk, service desk, or an on-call workforce for production issues. Kanban allows teams to learn from the work completed and pivot out of the chaos of all urgent requests all the time.

Speaker

Tom Cudd

Tom Cudd

Systems Architect, VML, Inc.

ASP.NET Core 2.0 Fundamentals

In this talk we'll go over the fundamentals of ASP.NET Core 2.0 and what you need to know to get started and be productive. We'll discuss the latest changes and improvements made in ASP.NET Core 2.0 over the 1.x versions. I'll also share some tips and common gotcha's that people run into and how to avoid them.

Speaker

Scott Sauber

Scott Sauber

Lead Software Developer, Iowa Bankers

ASP.NET in Linux and Windows Containers

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. ASP.NET Core is a cross-platform, open-source reimagination of the Microsoft stack. They come together in beautiful synchrony. Whether you're targeting Linux or Windows workloads, you can build your ASP.NET app into containers, and still have the F5 debugging experience you expect.

Speaker

Rob Richardson

Rob Richardson

@rob_rich

ASP.NET MVC & Identity: The Things You Were Never Told

Following the quick start examples it is trivial for a developer to stand up a new ASP.NET MVC application and use ASP.NET identity to handle user authentication and authorization. However, following these tutorials there are many important details that are left out. How do you work within a single DB Context? How do you share your data model with a project outside of ASP.NET MVC? How do you use Dependency Injection with Identity? How about displaying the users name on each page load?

This talk goes into all of the details that you need to truly SUCCEED with ASP.NET MVC and Identity. By sharing a big set of lessons learned, and other helpful insight your next project should be much easier to get off the ground!

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Assembling the Web - A Tour of WebAssembly

WebAssembly...what exactly is it? Is it a new VM? A way to create a binary version of JavaScript? A new standard to get everyone to code in C/C++ for the web? In this session, we'll demystify WebAssembly, demonstrate exactly what it is, and provide insight into how this will affect JavaScript and web development in the future.

Speaker

Jason Bock

Jason Bock

Practice Lead, Magenic

Authentication and Security Strategies for the Modern Web

In today's ever-connected world, security is of utmost importance. Breaches round the world have shown the sheer amount of data that is at risk every day. The best approach to security? Start fundamentally and don't compromise!

In this session, Spencer will demonstrate authentication and security strategies for your systems, from avoiding cross-site scripting and request forging attacks to leveraging OAuth to make your systems more secure. We'll discuss implementation as well as some common mistakes to avoid and demonstrate live how hackers perform some common attacks like SQL injection.

Come to this session and learn how to avoid becoming the next big data breach on "Have I Been Pwned?"

Speaker

Spencer Schneidenbach

Spencer Schneidenbach

Principal Consultant, Aviron Software

Azure Functions and AWS Lambdas - Serverless Architecture and You

Have you heard the buzz words Serverless Architecture, Cloud Scale, or Microservice? In this talk we'll quickly overview Azure Functions and AWS Lambdas and provide some examples where they might be useful. We'll cover the basics of spinning up a function/lambda within both cloud providers, how to debug and monitor them, and demo their local dev toolsets. With a wide variety of integrations and many supported languages (C#, JavaScript, Python), functions/lambdas are a relatively quick, easy, and cheap way to spin up a cloud service that can scale easily!

Speaker

Aaron Hoffman

Aaron Hoffman

Co-Founder, Stonefinch

Build an Alexa skill with .NET Core and AWS Lambda

AI is expanding into our daily lives. Devices and agents like Siri, Cortana, Amazon Alexa, and Google Home are gaining huge traction in homes and phones around the globe. What better way to embrace our AI overlords than to build your own Alexa skill?

Learn how to use open-source tools and .NET Core to build and deploy a custom Alexa skill. The project will utilize AWS Lambda for friction-free deployment and scaling. A live demo will be included!

Speaker

Nate Barbettini

Nate Barbettini

Developer Advocate, Okta

Build Your Own Arduino Workshop

Participants in this workshop will be handed a shifty looking baggie full of inexpensive parts which they will use to create their very own Arduino - compatible microcontroller board.

While constructing the board, we will discuss and tinker with each component (clock source, power regulation, etc.) to see how they work. Then we'll boot 'em up and (provided the blue smoke hasn't escaped by this point) start writing some code and talking to some devices.

Speakers

Clay Dowling

Clay Dowling

Agile Software Consultant, Pillar Technology

Building a Magic Mirror w/ .NET

Have you ever heard of a “magic mirror”? And no, I’m not talking about Snow White. I’m talking about a real-world mirror, with smarts… Lend me some of your time and I’ll walk you through my experiences of developing my magic mirror. It’s running Windows 10 IoT Core, on a Raspberry Pi 3. It was written in C# as a Universal Windows Platform (UWP) application. My magic mirror boasts facial recognition and the Microsoft Cognitive Services (Emotion APIs), plays music, updates with current local weather and forecasts, displays a clock, and your upcoming aggregated calendar events.

Speaker

David Pine

David Pine

Technical Evangelist (Microsoft MVP), Centare

Building for Alexa with Web API

Amazon Echo, Amazon Tap and Echo Dot have brought voice interfaces to life for the home. We will discuss ways to integrate your existing software or database into an Alexa Skill, allowing for voice-activated, meaningful interaction with a user. Using this SAAS approach, with Web API hosted on Azure can make this process easy for rapid prototyping. We will build and deploy a skill that you can use immediately with your Alexa enabled device, and discuss the challenges of the publishing journey to get in Alexa's Skill Store.

Speaker

Heather Downing

Heather Downing

Senior Software Engineer, VML

Building Large, Yet Maintainable, ASP.NET Applications

As an application adds more and more features, if you're not careful, it can quickly spiral into becoming the application no one on the team enjoys working on. This talk is structured as a series of lightning talks on various topics to help you improve the maintainability of your ASP.NET applications. We’ll discuss libraries and best practices to help with folder structure, validation, ORM’s, unit testing, code flow, profiling, and more. By the end, you should be able to take at least one thing away that you can start implementing immediately when you get back to the office.

Speaker

Scott Sauber

Scott Sauber

Lead Software Developer, Iowa Bankers

Building Single Page Apps with React and Redux

Placeholder here! Will edit it soon.

Speaker

Spencer Schneidenbach

Spencer Schneidenbach

Principal Consultant, Aviron Software

Choice is Overrated - Designing Products That Know What You Want Before You Do

According to CEO Aaron Shapiro, the next big breakthrough in design and technology will be the creation of products, services, and experiences that eliminate the needless choices from our lives and make ones on our behalf, freeing us up for the ones we really care about: “Anticipatory design”. Rather than traditional UI/UX, where the tendency is to provide options in a participatory manner to determine a result, here you remove all choices from the user, and use predictive modeling to give an outcome to liberate them from so-called “decision fatigue,”

“Flow not friction,” “convenience not choice,” and “efficiency not freedom” are the mantras of anticipatory design.

In this talk, we’ll explore some implementations of anticipatory design, discuss areas where it is done well, and issues with the overall movement.

Speaker

Heather Wilde

Heather Wilde

CTO, ROCeteer

Contextual Inquiry: The Gold Standard of User Research

Contextual Inquiries are a context-based interview tool used to better understand user goals, existing processes, roadblocks, workarounds, and culture. This presentation will give you the why and how to do contextual design (a method created and popularized by Beyer and Hotzblatt). This technique is the gold standard of user research based on its depth and ability to flesh out flows of information throughout a user's environment: it shows how the work really gets done. Ash will discuss the basics of conducting a contextual interview, review the FACES model approach to analysis, and give best practices for analyzing your data to apply to your design.

Speaker

Ash Banaszek

Ash Banaszek

Sr. UX Specialist, Union Pacific Railroad

Cool SQL Server Features Everyone Should Know About

We all use SQL Server every day in our jobs, so it pays to know what SQL Server can do for us that will make our jobs easier. This talk will introduce you to some key features of SQL Server that you might not know about but will definitely want to use once you learn about them. First, we’ll discuss temporal tables, which provide a convenient way to track all of the changes made to data in a table. Second, we’ll talk about the JSON support built into SQL Server 2016 and what capabilities it provides us. Third, we’ll cover some advanced SQL constructs like the MERGE statement and Common Table Expressions that can make the SQL you write simpler. And finally, we’ll wrap up by talking about the windowing functions in SQL Server, which provide powerful analytic capabilities to our SQL Statements.

After this talk, you will better appreciate some of the rich functionality built into SQL Server and understand how to use these capabilities to make your job easier.

Speaker

David Berry

David Berry

Solution Architect, Robert W Baird

Creating Three Beautiful Apps at Once with Xamarin.Forms

You read that title correct – you can create an app for three different platforms all at once using Xamarin.Forms.

Xamarin.Forms has come a long way since the days of when its recommended use was for simple apps and prototyping only and in this session, I will show you the advances made and how to utilize them to create beautiful apps yourself. You will see the basic structure of a Xamarin.Forms app and how to use XAML and the built-in controls to create a UI. You’ll learn about the MVVM pattern and data binding so information can be presented and modified in the UI and app logic layer with ease. You’ll walk through accessing platform specific native controls – from XAML! At the end of this session – you’ll be able to create a beautiful app – make that three beautiful apps – with Xamarin.Forms.

Speaker

Matthew Soucoup

Matthew Soucoup

Principal, Code Mill Technologies, Inc

Data Science: The Big Picture

Data Science is the practice of transforming data into actionable insight. This set of skills is currently in high demand and commanding significant increases in salary, as data science is fundamentally changing the world around us. However, most of us have not yet learned this valuable set of skills.

In this session, you will learn what data science is and why it’s important. In addition, you’ll learn what you need to know to prepare for our new data-driven economy. Expect to learn about the Internet of Things (IoT), Big Data, machine learning, and how they are converging to create fully-autonomous intelligent systems.

Speaker

Matthew Renze

Matthew Renze

Data Science Consultant, Renze Consulting

Deconstructing TypeScript’s Type System

TypeScript isn’t just a strongly-typed replacement for JavaScript – it’s a full language with lots of modern features, including a cutting-edge type system. This awesome type system is often overlooked in favor of other features such as decorators and async/await, but is one of the best reasons to use TypeScript.

In this session, Spencer will discuss the advanced type features of TypeScript, including intersection types, type guards, nullable types, type aliases, string literals, and discriminated unions. We’ll also discuss ways to take full advantage of TypeScript’s compile-time checking to ensure your code is clean and safe.

Speaker

Spencer Schneidenbach

Spencer Schneidenbach

Principal Consultant, Aviron Software

Deep Learning: The Future of Artificial Intelligence

Over the past few years there have been a series of breakthroughs in machine learning that have lead to significant increases in prediction capabilities and accuracy. These breakthroughs are largely the result of deep-learning algorithms like deep neural networks.

In this session, we'll learn what deep learning is and why it is so important to the future of machine learning and predictive analytics. In addition, we'll learn about the tools that allow us to create deep-learning models like TensorFlow, Torch, and the Microsoft Cognitive Toolkit.

Speaker

Matthew Renze

Matthew Renze

Data Science Consultant, Renze Consulting

Demystifying Dependency Injection

What is Dependency Injection (DI) and why should you care? Come learn what DI is and how you can use it to keep your apps loosely coupled and test friendly. We will examine why you should avoid tight coupling and how you can avoid it using different methods of DI. After looking at the basic patterns, we'll take a look at a few different DI containers and see how they do their magic to make us better programmers.

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Developers are People Too

We all understand the value of focusing on User Experience when designing products and services. Costs go down, revenues go up, satisfaction and efficiency both increase while errors and complaints decrease.

But are you sure that you have identified all of your users? For most companies, there is a major category of people that are often overlooked: Software Developers. Developers are users of many systems within an organization: databases, web services, web hosting, authentication providers, and more. However unlike most users, developers depend most on the environments that are considered non-production, and the direct and indirect costs of outages are rarely considered.

What is the impact of equipping a developer with a $1,000 laptop instead of a $5,000 multi-screen rig? What happens to your product development when one of your developers quits and a new person joins the team? How can you support developers that write clean, maintainable code?

We will look at best practices for supporting the developer experience, including documentation, processes, tools, and supporting systems.

Speakers

Michael Dowden

Michael Dowden

Software Architecture Lead, CSpring

Docker hands-on (Workshop)

Docker is carefully tucked between virtualization, continuous deployment, and pure awesome. Bring your Windows 10 Anniversary Update or Mac OS X El Capitan 10.11 laptop, and we'll walk through together getting Docker for Windows or Docker for Mac installed, fired up, and get you building development and production containers. We'll dig deep into:

  • installing prerequisites and Docker for Mac or Docker for Windows
  • Dockerfile
  • Docker volumes
  • Docker Compose
  • Docker Swarm
  • Best practices for building at cloud scale
  • Tips & Tricks for leveraging Docker
  • Administering Docker hosts

We'll look at the commands and ecosystem around building infrastructure as code, deploying a swarm, and sharing images on Docker Hub. Come see why devs and ops love Docker.

Speaker

Rob Richardson

Rob Richardson

@rob_rich

Dockerize Your .NET Development Environment

It works on my machine. We’ve all heard it. Most of us have said it. It’s been impossible to get around it… until now. Not only can Docker-izing your .NET development environment solve that issue, but it can make it drop-dead simple to onboard new developers, keep a team working forward and allow everyone on the team use their desired tools! I will show you how to get Docker set up to use as the run environment for your .NET projects, how to maintain the docker environment, and even how easy it will be to deploy the whole environment to production in a way that you are actually developing in an environment that isn’t just “like” production. It IS the production environment! You will learn the basics of Docker, how to use it to develop and how deploy your “development” environment as the production environment!

Speaker

Lee Brandt

Lee Brandt

Developer Advocate, Okta

Effective Unit Testing in Spring

Unit testing is an often overlooked and maligned aspect of the development cycle. Written off as being too time consuming or requiring too much mainteance, unit tests are seen as providing little bang for their buck. This is unfortunate as unit tests can provide incredible value for any organization! This presentation will cover how to write your code to make it easier to test as well as demonstrate some of the tools offer in Spring and other third party libraries that make unit testing much easier.

Speaker

Billy Korando

Billy Korando

Senior Software Consultant

Empathy: The Foundation of your Product

Do you have problems with creating solutions that make a big impact? Pushing out innovative releases? Do you lack creative confidence? Most companies understand their business needs and many assume they know the needs of their users. Without empathy, you could be missing the true impact your product could be having on the market.

No matter what your role is on a project, you can benefit from walking a mile in someone else’s shoes. In this talk we’ll discuss the mindset, process and tools used to better understand your users. Bring empathy back to your project. Become empathetic.

Speaker

Brian Pope

Brian Pope

Designer, Aviture Inc.

Entity Framework Core: What You Need to Know

In this session, I get you up and running with EF Core and then take you through my favorite features of EF Core that will significantly improve your productivity and ease of maintaining your data access code.

Everything I Needed to Know About Debugging I Learned in Elementary Physics

Has there ever been a time where you got a bug report and you didn’t even know where to start? Have you ever felt overwhelmed with how code is behaving? You’re expecting one thing and it does the exact opposite? Situations like these can be some of the more frustrating aspects of software development. Solving problems is central to being a top-notch developer, it’s part of what separates the experts from the novices.

Over the years I’ve come to realize that problem solving isn’t always easy, but it can be broken down into some basic steps. These same steps were taught to me when I first learned physics, and have helped me solve numerous problems.

By the end of the talk, you’ll have a mental framework for solving problems, and you’ll get to see that framework in practice as we solve problems that have happened on real-life software projects.

Speaker

Nate Taylor

Nate Taylor

Aviture

Front-end Web Development with Angular2 and TypeScript

The all-day session will walk developers through the setup and development of a powerful web application built on some of the most modern web tools and technologies available including TypeScript and Angular2. At the end of the session all attendees will have had the opportunity to utilize a wide number of modern web-development tools and technologies to set up a complete application.

This session will be very fast paced and all attendees will be encouraged to follow along as the instructor demonstrates every aspect of:

  • Setting up a new web solution and configuring all necessary package and module management tools (we will focus on NPM and Angular CLI)
  • Configuring you development environment with the right plug-ins and extensions to optimize the development process
  • Setting up a robust project structure to manage all assets and code
  • Utilizing TypeScript to build a rich and manageable client-side application using the Object Oriented constructs and patterns you are familiar with from other languages such as C#
  • Integrating your Angular application with a server-side API
  • Setting up an Angular application and designing a robust UI built around Angular2 components.
  • Utilizing the Angular syntax and directives for building robust HTML applications
  • Working with Angular routing to build an efficient means of navigation between pages
  • Utilizing RxJS and Observables to work asynchronously and easily communicate back to the server’s API
  • Debugging and testing a component-based Angular application

Requirements for attendees:

Have a laptop with either Visual Studio 2015/17, Web Storm, or Visual Studio Code.
Have Google Chrome included on the laptop. Be highly proficient in C# and JavaScript and be very familiar with current Microsoft web development technologies such as ASP.NET WebForms or MVC. Have the ability to work quickly and absorb the presented information while working through the setup on their own laptop Beyond a development environment and Google Chrome, attendees will be asked to install additional tools and extensions into their development environment throughout the session.

All sample code and resources for this session will be shared via a GitHub repository at the start of the session.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Hands on Lab: Develop an Entity Framework Core and ASP.NET Core MVC App in a Day

Interested in .NET Core and Entity Framework Core, but not sure where to start? Start here with an all day Hands on Lab where you will build a complete solution using the latest development technology from Microsoft. Using Visual Studio 2017 (RC), you will build a data access library using Entity Framework Core, complete with repos and migrations. Then you will package the data access library into a custom NuGet package for distribution. Next, you will build a Core MVC site, leveraging all of the latest that Core MVC has to offer, including Tag Helpers, View Components, Dependency Injection, and more! You will learn: The new project structure for .NET Core Apps Creating a data access layer with Entity Framework Core Initializing data for testing with EF Core Creating NuGet packages from .NET Core projects Building a website with ASP.NET Core MVC Configuring the HTTP pipeline and routing Using and creating Tag Helpers Creating and using View Components Leveraging Dependency Injection Attendee Requirements: You must provide your own laptop computer for this hands-on lab. You will need to have Visual Studio 2017 Installed (any edition). Visual Studio 2017 can be downloaded from https://www.visualstudio.com/downloads/. When installing, make sure to select the "ASP.NET and web development” and “.NET Core cross-platform development" workloads. You should download the x64 versions of the SDK and Runtimes (1.0.4 and 1.1.1) in case you have issues with versioning.  They can be downloaded from https://www.microsoft.com/net/download/core. You also will need to have SQL Server Express 2016 Local DB and SQL Server Management Studio (SSMS) installed. LocalDB is installed with VS2017, but SSMS can be installed from the SQL Server 2016 Express installer, located here: https://msdn.microsoft.com/en-us/library/hh510202.aspx. Finally, you need to download the starter files and Lab documents for this HOL, located in https://github.com/skimedic/dotnetcore_hol.

How Functional Programming Made Me A Better Developer

With the rise in popularity recently, functional programming has become "The Next Big Thing". As of today, there are tons of frameworks and tools that can be used to for front-end, back-end, desktop, and mobile development. With that being said, the majority of us are still using object-oriented languages for our day jobs and don't need to learn functional programming, right?

In this talk, I'll walk you through my experiences learning functional programming over the last year, how my style of programming has changed, and now how I think about programming with regards to both functional and object-oriented paradigms

Speaker

Cameron Presley

Cameron Presley

Senior Software Engineer, Pilot Flying J

How Test Driven Development (TDD) Improved My Quality of Life as a Developer

I used to love development. Then, sometime after I started doing it professionally, it really started to ware on me. I had days or weeks where I dreaded coming to the office. After all, I knew what I was going to find there. Bug reports from customers that would force me to dig deep into the bowels of the application, make a change and hope that my fix worked. And really hope that it didn’t break anything else.

Whenever I read old code, I absolutely hated it. Especially if I was the one to write it. It would bring back vague memories of conversations we had about the feature, but they were vague. I wasn’t really sure what the code was supposed to be doing, and reading it didn’t always help.

Then I started practicing Test Driven Development, and it changed how I looked at my job and how I looked at my code. Now I enjoy coming in to work. I sometimes find it hard to leave because I’m making so much progress. I find myself having features and user stories just fly by, as I’m continually making progress towards the goal line. Even my code has become more readable.

In this talk, we’ll look at how it was that TDD was able to help me achieve that, how it can do it for you, and how, in the end, TDD is about much more than just testing.

Speaker

Nate Taylor

Nate Taylor

Aviture

How To Have Code Reviews Developers Actually Want

This phrase can stir up a lot of emotions for people. For some, it's aggravation because they're a waste of time, for others, it's stressful because it feels like you're getting a review. However, for some, it's a great learning experience that leads to the team improving. Do you want to be in the latter group? Then this talk is for you!

In this presentation, I'll first show you the benefits of code review and the business case for why they should happen. Next, I'll show some of the most common mistakes that teams make during the review process and how to mitigate them. After talking about the bad, we'll talk about what to look for in your code review process. Finally, I'll wrap things up showing the game plan I use for code reviews.

Intended for developers of all levels, attendees will understand the reason why we should have code reviews, signs of bad reviews, signs of good reviews, and be given a starting template to work with.

Speaker

Cameron Presley

Cameron Presley

Senior Software Engineer, Pilot Flying J

Implementing Web Security in Your ASP.NET Applications

Implementing single sign-on or api security within your ASP.NET applications can seem like a daunting task. In this session we'll cover how to quickly and easily implement single sign-on and api security features in your applications using open source tools. If you're currently trying to implement security in your apps or are looking for ways to extend your current implementation, this is a session you'll want to check out.

Speaker

Javier Lozano

Javier Lozano

CEO, Lozanotek, Inc.

Imposter Syndrome: Overcoming Self-Doubt in Success

Impostor Syndrome is the domain of the high achiever. Those who set the bar low are rarely it’s victim. What matters most is not whether we fear failing, looking foolish or not being enough; it’s whether we give those fears the power to keep us from taking the actions needed to achieve our goals and highest aspirations. In this session we will bring this sensitive subject to light by exploring:

  • Why having this mindset is detrimental to your career
  • Identifying the differences between healthy concern and illogical doubt
  • What it actually means to ‘fake it till you make it’
  • How believing something negative about yourself can make it really happen
  • Ways to cope once you experience a sincere failure
  • Learning to graciously express confidence

Speaker

Heather Downing

Heather Downing

Senior Software Engineer, VML

Introduction to Functional Programming

What is this style of programming taking the world by storm? How do people write functions that are only 5 lines long but seem to do something that would take me at minimum 100 lines to complete? What's happening to how I write my programs?

these are just a few of the questions people tend to ask when chatting about functional programming. This talk is geared toward introducing the functional paradigm. The goal is to show how functional programming can make you a better developer, and at the same time, using multiple languages, show how much more efficient and natural feeling functional programming can be.

Speaker

D'Arcy Cross

D'Arcy Cross

Senior Software Engineer, Alaska Airlines

Introduction to Java Web Security

As a developer it is your responsibility to protect your users’ passwords and data, ensure the integrity of your data, and prevent your systems from being compromised. But where do you get started?

This course looks under the covers of a simple Java web application to demonstrate Java code that implements authentication and authorization, along with defensive measures based upon the OWASP Top 10 list of security vulnerabilities.

Along the way popular libraries will be explored including: * Apache Shiro * Bouncy Castle * Jasypt

By the end of this session you should understand how to get started with web security in Java, know what tools are available, and be aware of resources you can use for self-study.

Speaker

Michael Dowden

Michael Dowden

Software Architecture Lead, CSpring

Introduction to the R Language and Ecosystem

This session will introduce you to R, a popular language and software environment for data analysis and visualization. We will cover some of the basics of the R language, but we will focus on examples of the kinds of things that R excels at, like data manipulation, statistical computing, and data visualization.

We'll also introduce the R ecosystem, including R packages and RStudio. We'll see examples of how you can easily create documents containing code and graphics using tools like R Markdown, or create and publish interactive data-driven web applications using Shiny.

No prior knowledge of R is required. The emphasis will be on breadth rather than depth. You'll come away with a basic understanding of what R is all about and suggestions for how to learn more.

Speaker

David Body

David Body

President, Big Creek Software, LLC

Introduction to the Spring Framework

A deep dive into the core Spring Framework and some of the most popular projects. We will focus on configuring the application context, the bean lifecycle, data access, web applications, ReSTful web services, and the new hotness of Spring Boot.

Focuses include * Configuration of the Application Context * Bean Lifecycle * Data Access with Spring * Transaction Management for Relational Databases * Testing with Spring * Web Applications with Spring * ReSTful web services with Spring * Spring Boot

Speaker

Frank Moley

Frank Moley

Internet Architect, Garmin International

Kanban for Support and Maintenance Projects

New Agile projects spin up every day. But, pure Scrum based Agile methodologies do not fit the needs of all projects. Examples of projects that may not fit these methods:

  • A legacy project migrated to a cloud platform
  • Budgets shifted towards newer investments
  • A new merger brings on new properties
  • Existing projects have shifted into an end-of-life, but not end-of-support phase

This work provides value to customers or clients. Retaining these efforts to fund new opportunities is a critical business role. How do you maintain the efficiencies and methods from Scrum/Agile for this type of work?

Kanban! This introduction to Kanban will explore Flow, Work in Process, Visualization, and Continuous Improvement. Maybe you think you're using Kanban now, but are you just tracking tasks in an ordered list? We will have workshop exercises showing how powerful Kanban is when you use it to the fullest potential and not just task tracking your work.

Speaker

Tom Cudd

Tom Cudd

Systems Architect, VML, Inc.

Kotlin: JVM Superpowers

Kotlin is a relative newcomer to the pantheon of JVM bytecode-compatible languages. Joining veterans like Groovy and Scala, it takes a fresh approach that avoids a lot the annoying aspects of Java while providing the power and flexibility of its siblings. But it has a secret superpower - Kotlin can compile directly to both Java and JavaScript.

In this talk we'll do some brief overview of Kotlin syntax and capabilities before diving into a start-to-finish example of Kotlin in action. Shield your eyes from the super syntax, reminisce about how you used to live in fear of NullPointerExceptions, laugh about all those times you had duplicate the same utility functions in Java and JavaScript.

Speaker

Mike Plummer

Mike Plummer

Principal Consultant, Object Partners

Large problems, small solutions – Fixing big software problems with Kaizen

Issues like implementing continuous delivery, legacy baselines, and technical debt can seem like insurmountable problems, requiring huge solutions that are beyond the control of the software development teams. The solution is making small steps, using Kaizen (continuous improvement). It is possible to effect large changes with only small tweaks to the right place. This presentation will cover the specific changes that have proven successful in software development projects and how to apply kaizen principles and practices to any problem encountered within software development, team dynamics, and customer interactions.

Speaker

Scott Grimes

Scott Grimes

Software Engineer, Northrop Grumman

Let’s Talk About Mental Health

It’s a great time to be in technology. Computers keep getting better. More and more devices keep getting connected to the internet. Javascript frameworks are multiplying like bacteria. And yet despite the improvement in our tools, we somehow don’t spend time talking about how to maintain our most important tool - the one between our ears.

Constantly feeling worn down, experiencing anxiety over making decisions, and burning out are not just facts of a developer’s life! They’re challenges that can be dealt with. In this talk we’ll cover the most common mental health challenges facing developers, and then learn about some techniques to supercharge your brain by improving your mental hygiene (whether you have a psychological disorder or not). Most importantly, you’ll learn how to have a conversation with your coworkers (and other people in your life) about supporting each other and finding your best selves.

Speaker

Arthur Doler

Arthur Doler

Senior Software Engineer, Aviture

Let's kill some Canaries

I joke that with a fast enough feedback cycle you can figure out almost anything. Whether it's in an enterprise or startup; I think these patterns are critical to all developers. Legacy code, complex frameworks, difficult workspaces, and smelly code can slow down any developer. I propose that some explicit knowledge of simple debugging, developing, shortcuts, mindset changes, and even Test Driven Development (TDD) techniques can make you a fast and efficient developer by default. (I hated TDD until I learned 1 trick.) Adding extra tools on top of that just makes things gravy. Let’s go kill some Canaries and go back to more HelloWorld type developing, Canary testing, and even simple console.logs(). My goal is that you’ll learn at least one thing that will change your development cycle for the better.

Speaker

Chuck Rolek

Chuck Rolek

DevOps Engineer, Pillar Technology

Lock picking: Physical Security for the security minded

Are you responsible for securing your websites, data, or servers from hackers? Have you ever thought about the lock you put on your server room door? What about on the doors to get into your building, or even your own front door? In our lives, we use many locks to secure the things we find valuable, but have you ever considered just how secure those locks are? If you have the best firewall in the world, but someone can easily walk in and yank the whole server, then you still may have a problem. In this session, I will explain the basics of how locks and lock picking work, how intruders bypass common locks, and what you can do to keep your data and facilities more secure.

Speaker

John Van Roekel

John Van Roekel

Application Developer Support, Principal Financial Group

Machine Learning For the Uninitiated

Machine Learning! Artificial Intelligence! The mere thought sends shudders down the spines of many some of terror, others of excitement. But what is this magical section of programming? Is it black magic and witchcraft aimed at fooling you into a false sense of security? Perhaps SkyNet really does exist but instead of hating you it wants a hug.

The math is scary, I understand this, but do you really think we need extremely complex math to show what machine learning is? In this talk we will discuss the basics of what machine learning really is, and how it can be used. We will discuss its history and possible futures created by this great technology.

Speaker

D'Arcy Cross

D'Arcy Cross

Senior Software Engineer, Alaska Airlines

Make Audio Visual Magic with MIDI

MIDI stands for Musical Instrument Digital Interface, and it’s been a foundational tech for electronic music production and reproduction since its introduction in the early 80’s. Tech advances have made large racks of outboard gear optional: we can implement everything in software now, and that means it’s easier than ever to generate, parse, or manipulate MIDI data with code.

We’ll wire up the following practical and impractical applications:

  • Transpose a song from one key to another
  • Arpeggiate chords from root notes after first learning what arpeggiate means
  • Translate server status messages received via message queue to ambient music
  • Output MIDI to a music controller with RGB LEDs for use as a status monitor

Participants should have some familiarity with a high level programming language and an interest in playful software development. No music performance background is required: any music theory will be minimal and explained.

Speaker

Tim Freund

Tim Freund

Lead Engineer, Code Muxer

Making Apps More Human with Microsoft Cognitive Services

Part of the human experience is being able to look at a scene and judge what is going on; who/what the participants are, and know if they are happy or sad, frightened or mad. Or recognize a person’s voice and understand a conversation.

But the days where only humans can do that are numbered.

Microsoft Cognitive Services harnesses the power of machine learning and provides a set of 24 APIs that allow for your application to become more human.

In this session, you will see some of the power of Cognitive Services as we demo key features to build an intelligent app. You will learn how to create and invoke them via REST services to make your app more human.

Speaker

Matthew Soucoup

Matthew Soucoup

Principal, Code Mill Technologies, Inc

Micro-Services: What we learned from 2016

Micro-Services have really taken off, what are some of the lessons we learned as an industry last year and how do we carry those learnings forward in 2017 to make the best, most stable products?

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

Neural Networks: The Good Bits

Neural Networks: The Good Bits

So you already know a little bit about Neural Networks and can do some of the basics? Are you ready for the really cool stuff? Let me show you the way.

The expectation for this course is that you already have a fundamental knowledge of Neural Networks either from my other talk “A Primer to Neural Networks” or via your own study.

Topics and Demos Include:

  • Loss Functions: Where the real money is
  • Custom Activation Functions
  • Modern Neural Network Architectures
  • Approaches for quick research and development
  • Learning Analytics: How to know when to try something different
  • Deploying for Consumption with Zero MQ

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

OAuth and OpenID Connect in plain English

If you're like me, you hear a lot about OAuth 2.0 and OpenID Connect, but have a lot of unanswered questions. What's the big deal, anyway? Why do we need yet another set of standards for authentication on the web?

In this talk, I'll break down the rationale behind OAuth and OpenID Connect, and explain when and how you should use these standards in your applications. I'll cover grant types, scopes, tokens, and more. If you've ever felt confused about how these standards work, this talk is for you!

Speaker

Nate Barbettini

Nate Barbettini

Developer Advocate, Okta

OWASP Top 10 Vulnerabilities & ASP.NET

In this talk we’ll go over the OWASP Top 10 vulnerabilities and how they apply to ASP.NET. We’ll include a demonstration of each vulnerability, the risk it poses, how to detect the attack, and how to mitigate it.

The Open Web Application Security Project (OWASP) Top 10 list are the most commonly exploited security threats found on the web today. Securing your applications & clients against them will go a long way towards mitigating any security risks and protecting your application from these threats. In this session, we’ll go through each of the top 10 vulnerabilities showing you the vulnerability in action, what the impact is going to be, how to detect it and most importantly how to fix the problem. Code samples will be freely available and we’ll examine the vulnerability in both MVC/WebApi applications.

Speaker

Bill Dinger

Bill Dinger

Solutions Architect, VML

Practical GIT: from beginner to fearless

This training is an introduction to GIT for source control. We'll take a look at getting started with GIT on our own machines, as well as working with GIT at public/private repositories on GitHub and/or BitBucket.

GIT can scare people. It shouldn't. GIT is awesome, and it's something that everyone should be using - it can be for more than just code! Are you someone who edits photos? Are you someone that keeps track of things on one or more Excel workbooks? Are you an author who writes content? Even though this workshop is primarily geared towards those who do use code, learning the basics and commands of GIT can benefit anyone.

The workshop will cover practical scenarios that happen and how to work with a GIT repository to accomplish each one. Additionally, some optional ways to do the same thing in GIT will often be explored.

The workshop general outline will look something like this: 1. Getting Started 2. Git Basic Info 3. A single-person/developer general flow 4. A simple multiple-person/developer flow 5. Advanced GIT commands to rescue your material 6. Release Management 7. Using GIT from Visual Studio or Eclipse 8. Next Steps/Final Thoughts

Speaker

Brian Gorman

Brian Gorman

Senior .Net Developer, Far Reach Technologies

Practical Patterns for the Progressing Programmer

Understanding software design patterns is critical for every developer who strives to be top-tier. Come join us as we explore some of the most common design patterns and discuss how you can leverage them to make your life easier. We will look at some real world code examples and learn to recognize common problems and how to use different design patterns to create elegant solutions. Learn to spot common anti-patterns and the pitfalls they bring. Join us and take the next step in your career.

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Programming Paradigms in JavaScript

To the uninitiated, paradigms can seem daunting, difficult to understand, and even harder to apply. This talk attempts to clear up that confusion and misconception along with giving some practical advice for how different paradigms can be applied in JavaScript.

Beginning with an overview of three common programming paradigms in JavaScript, Object Oriented, Functional, and Imperative (Procedural), this talk will illustrate the differences between all three approaches. After highlighting the possible advantages and disadvantages of each, the talk will conclude with some practical examples of ways to utilize these paradigms in your own code.

Speaker

Gwendolyn Faraday

Gwendolyn Faraday

Developer, Consultant, Ion Three

Reactive consumption of the real world

Reactive and functional programming models do cool things to your code. But you read examples that just take a list or iterator you already had and allow you to do functional things to it. If I already had something that was iterable, then you probably had to load everything into memory. This is inefficient and "unreactive". If I need to consume a large dataset, or a slow dataset, or worst case a slow large dataset I don't want to use any more resouces than I absolutely have to.

So how do I do that? Come and find out. I assume that you have some level of understanding of functional programming or can ignore those parts. We will primarily be concentrating on consuming streams of data that can be of arbitrary size to produce simple answers with project Reactor from Pivotal. https://projectreactor.io/

Speaker

Nate Gordon

Nate Gordon

Software Artisan, Pillar Technology

Real Agile for Real Software

As the agile revolution continues, more and more companies are wanting to “Do Agile”. Most companies don’t even know why, they just see and hear about other companies having successes. They hire a consultant, who is teaching the “flavor of the day” agile process and pay lots of money for books, tools and training. Most of the time, with limited success.

In this talk, I will explain what Agile software development is meant to be all about. I’ll tell you a bunch of stories about common mistakes I see companies making as they try to become more agile, and what you can do to avoid or overcome these mistakes. In the end, you should leave with a better understanding of the nature of building software in an agile way and maybe even had a few laughs along the way.

Speaker

Lee Brandt

Lee Brandt

Developer Advocate, Okta

Recognizing Zombies and Black Holes: Techniques to avoid cascading failure

Complex mixes of monoliths, micro-services, databases, data centers, networking, and cloud providers provide a dizzying array of opportunities for your services to fail. No one has perfect failover, so you have be prepared to play defense.

We will look at two categories of failures and ways to recognize them coming, and avoid spreading the carnage they cause to other services you provide. * Zombies: Long running but abandoned requests that eat up memory and crash the system long after the user who conjured it gave up. * Black Holes: Dependent services that take connections but never give them up, or perform so poorly for a time that all your attention eventually gets focused on that one thing.

You can expect to see: * Novel concurrent data structures for tracking ongoing work used as a basic building block for recognizing Zombies and Black Holes. * Circuit Breaking: Statistics used for recognizing normal and when to stop using a dependency. * Dealing with the behavior differences of highly vs little used and fast vs slow dependencies. * Coordinating circuit breakers among many nodes so that they all get the message when something is wrong and when it clears. * Considerations for overriding automatic decisions with human intervention. * A demonstration of a working system. * Sci-fi references and Horror Stories.

Speaker

Avery Regier

Avery Regier

Operations Engineer, Deere & Company

Refactoring Team Interaction – Dealing with Dysfunctions within the Team

It is a simple thing to disrupt a software team, bad management can fracture a team, however significant damage can be done by team members themselves. Recovery from inter-team dysfunctions can feel impossible to solve. It is important to know these pitfalls and how to avoid them. Teams at all levels of maturity can be disrupted, the dysfunctions of disempowerment and broken communication can quickly damage the productivity of any team, but these disruptions will be especially felt in an agile software team reliant on interactions for success. What factors have the largest impact on teams? And what can team members, facilitators, and managers do to strengthen teams and avoid the pitfalls? This presentation will cover real world team problems encountered in software development projects and what specific actions were taken to fix these problems from within teams.

Speaker

Scott Grimes

Scott Grimes

Software Engineer, Northrop Grumman

Regular Expressions – The Black Magic of Text Manipulation

Do you understand the most powerful tool for text searching and manipulation? Can you search and find a single entry amongst thousands with only a rough idea of what is? Do you want to learn? Originally conceived in the 1950’s Regular Expressions are still commonly used today to search and validate text. And virtually every modern framework has a Regular Expression engine. For simple queries and validators, it is easy enough to copy pre-made scripts, but they will do little to help with searching for entries in custom logs or general text. Understanding the language and its use unlocks a world of possibilities.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

REST for the Weary: Using Spring Boot and Spring Data to create easy RESTful services

Using Spring Boot and Spring Data we'll create a REST microservice from scratch. We'll delve into HATEOAS and the advantages of a hypermedia-driven system.

Speaker

Scott Bock

Scott Bock

Senior Software Consultant, Object Partners

Secure DevOps: A Puma’s Tail

DevOps is changing the way that organizations design, build, deploy and operate online systems. Engineering teams are making hundreds, or even thousands, of changes per day, and traditional approaches to security are struggling to keep up. Security must be reinvented in a DevOps world and take advantage of the opportunities provided by continuous integration and delivery pipelines.

In this talk, we start with a case study of an organization trying to leverage the power of Continuous Integration (CI) and Continuous Delivery (CD) to improve their security posture. Then, we will focus on static analysis, how it fits into Secure DevOps, and introduce you to Puma Scan: a new open-source .NET static analysis tool. Live demonstrations will show Puma Scan identifying vulnerabilities inside Visual Studio and in a Jenkins continuous integration (CI) build pipeline. Attendees will walk away with a better understanding of how static analysis fits into DevOps and a .NET static analysis engine to help secure your organization’s applications.

Speakers

Eric Johnson

Eric Johnson

Principal Security Consultant, Puma Security

Security in the Age of the Internet of Things

Security is a critical part of the Internet of Things. New risks and threats are emerging every day while the cost of a breach has never been greater. However, many organizations do not understand the business value of good security. Come learn about the risks and complexity of security for the Internet of Things and what we can do to make it better.

Speaker

Robert Herbig

Robert Herbig

Lead Software Engineer, SEP, Inc.

Serverless Architecture in Azure

AWS has Lambda, Azure has Azure Functions, Web Jobs, and App Service. Whether you want to script pay-by-the-drink web endpoints or build more traditional micro services or run custom workloads in Docker. Come join us for this code-focused look at architecting, coding, and deploying serverless resources for the .NET developer.

Speaker

Rob Richardson

Rob Richardson

@rob_rich

Serverless Compute Survey

Serverless computing isn’t serverless at all, but the servers are no longer ours to customize. We just focus on the code, and the platform handles on-demand deployment, monitoring, and scaling.

Audience members will gain a theoretical overview of serverless computing and we will discuss software design and operation tradeoffs that come with the territory. Because serverless computing constrains our code to runtime environments defined by providers, we will see more differences between providers than if we were deploying our code on vanilla virtual machines. We’ll discuss fears of vendor lock-in that come along with serverless deployments, and we’ll discuss scenarios where we should move forward with serverless in spite of those fears.

Practical examples will include code samples and deployment configurations running within AWS Lambda and Azure Functions, and source materials will be made available to participants.

Speaker

Tim Freund

Tim Freund

Lead Engineer, Code Muxer

Should I make the Transition to ASP.NET MVC Core? Will it Hurt?

In the past few years we have been exposed to great change in the Microsoft technology stack. With the release of ASP.NET Core it is often a common question from developers as to when/how/should existing products be converted to core. This expands to more questions such as: Can I upgrade in place? Will this disrupt my development cycle? Is today the right time to do so? Should I wait? Do I have to re-write? All amazing questions

This session will review the differences between the full platform & the core platform, as well as the justification & decision process as to which solution is the best for your organization. The session will end with tips & recommendations for the best method to transition and convert to the new framework.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

So you've got a build server. Now what?

So you're using your build server to complie down your code. Are you using that build server to deploy the code as well? How about testing your code? Most people don't realize how powerfull these tools can be. Even from an operations stand point, you can be using your build server to automate your tier 1 support. Let's talk about that.

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, N/A

SOLID Design Patterns for Mere Mortals

Software design patterns have been around long before the MVC Framework gained momentum. In this session we will start with a review of Robert C. Martin's (Uncle Bob) SOLID macronym. After building the proper foundation, I will show you several design patterns, their C# implementation, and when and how they should be used in modern software development.

SQL Server: Now it's everywhere you want to be

Have you heard the news? SQL Server is coming to Linux! What? That can't be right... or can it?

With the release of SQL Server 2017, Microsoft really is bringing SQL Server to the Linux platform. They've also added support for running SQL Server in Docker containers. How does it work? And how well does it work? In this session, we'll answer these questions (and more!), and we'll talk about how this enables some interesting new possibilities for DevOps.

Speaker

Ed Leighton-Dick

Ed Leighton-Dick

Founder/Principal Consultant, Kingfisher Technologies

Supercharge your Scrum Team

Scrum is a very simple, flexible framework for getting work done. Sometimes, though, that flexibility can make it difficult to understand how to tweak the performance of your team. This talk will give some simple, concrete tips for helping your team achieve its maximum potential.

Speaker

Nathan Adams

Nathan Adams

Agile Coach/Software Architect, NewBoCo

TDD: You've Been Doing It All Along

Whether you're a convert to Test Driven Development (TDD) or not, we all follow the same basic steps when writing code: determine expectations; code to those expectations; refactor and clean up. The difference lies in the ability to automate.

Learn how adding a test suite to your project will improve your productivity and the quality of your code. You will also see how tests reduce errors, costs, and future development time. Finally, you'll find out that getting started doesn't have to be so overwhelming.

Speaker

Samuel Mullen

Samuel Mullen

Owner, Pixelated

Test Driving Your Infrastructure

What's the best part of starting on something new? You get the opportunity to take everything you've learned, and make something better. As a system grows over time, one of the biggest challenges we face is ensuring it’s as stable tomorrow as it was yesterday. As part of a move from physical data centers to AWS over the past year we were given the opportunity to bring together a group of people with varied experience writing software and designing complex infrastructures and systems to solve this problem. Our collective experiences led us to make testing and automation central to everything we did. We’ve achieved this using a variety of tools to such as Terraform, Puppet, Test Kitchen, Serverspec, Jenkins, Docker, and even some custom written libraries to fill in the gaps.

There are a lot of moving pieces to track when deploying and configuring infrastructure and applications. This talk will focus on our solution. If you’d like to hear about how we’ve orchestrated standing up, and maintaining an environment, ensuring its stability by testing along the way, this talk will be for you. We will discuss the tools we’ve used, and what problems they’ve allowed us to solve as we’ve moved through this migration. We’ll discuss what has been great as we’ve progressed, and what could have gone better. We’ll talk about what other tools exist on the market, and why we made the decisions we did along the way.

Speaker

The Delegates have been Selected

Delegation is at the heart of many of .NET's most powerful features including LINQ and the Task Parallel Library (TPL) but have you stopped to consider what delegates are or why they play such a prominent role in modern .NET development? In this session we'll go beyond the lambda expression and look at delegates from the bottom up. We'll explore what delegates are from the perspective of the .NET Framework, how generics enhance delegates, the role delegates play in functional programming, and we'll even look at a few ways to abuse, err, enhance the multicast delegate experience.

Speaker

Dave Fancher

Dave Fancher

Principal, Achiiv Solutions, LLC

The Saboteur in Your Retrospectives: How Your Brain Works Against You

You’ve bought into the Agile process. Your team is grooming its backlog, keeping its work-in-progress low, and focusing on delivering value to the users. But when you all sit down for a retrospective, there’s something working against you - your own brains. Using unconscious shortcuts and hidden heuristics, they can lead your team down a path to the worst result possible: wasting time!

You don’t have to take that lying down - you can fight back! Come learn about how your brain interprets cause and effect, the ways in which it wants to think of things as narratives, and all the tricks it does to save itself from having to think. You’ll learn how to maximize your time as we cover ways to focus your retros on what matters, talk about how to avoid getting trapped in the blame game, and discuss the value of perspectives.

Speaker

Arthur Doler

Arthur Doler

Senior Software Engineer, Aviture

TypeScript -- JavaScript Reimagined

TypeScript -- JavaScript Reimagined

Are you a web developer? If you answered "yes", how many hours of your life have you wasted on tracking down JavaScript errors at runtime? Of those times, how many times has it been because a member was undefined and was a result of a typo? Do I have your attention?

In the early 1990's JavaScript was born. Since then JavaScript has become one of the most popular programming languages of all time. TypeScript is a superset of JavaScript and makes JavaScript programming tolerable. Let me show you why you should be taking TypeScript more seriously.

Speaker

David Pine

David Pine

Technical Evangelist (Microsoft MVP), Centare

Unit Testing Strategies & Patterns in C#

Learn common patterns and strategies to effectively unit test your code in C#. We’ll go over design principles and ways to effectively ensure your code can be easily tested as well as how to use common testing tools such as Moq, Autofixture, & MsTest to help remove some of the drudgery of testing.

Testable code is a widely advocated industry standard but the barrier to entry is incredibly high. In this talk, we’ll go over not just how to unit test your code using MsTest, Moq, & AutoFixture but the patterns & processes to ensure your code can be unit tested. We will touch on the basics of dependency injection and common patterns such as avoiding the use of static classes but also more advanced topics such as SOLID design principles and how they relate to testing.

We’ll give the attendees a wide variety of examples on how to test common C# projects such as web api and console applications and different scenarios such as how to test databases and external method calls. Many real world tips & tricks on dealing with common patterns and scenarios will be included to make your life easier. Most importantly, attendees will be given a good idea of how to start testing, how to measure the effectiveness of their tests, and what not to test.

Speaker

Bill Dinger

Bill Dinger

Solutions Architect, VML

Up and running with Ionic 3

Is mobile development dead? Hybrid vs Native? What options are out there for cross device, cross platform? In this session we'll look at Ionic 3 and what it offers for mobile and cross platform development.

Speaker

Shannon Hofer

Shannon Hofer

MetaBank

Up and running with Nativescript (Angular)

Can we use Javascript to produce mobile apps with native performance? Want to develop mobile apps on a stack that's familiar? In this session we will get up and running with Nativescript using Angular and work through build small mobile app.

Speaker

Shannon Hofer

Shannon Hofer

MetaBank

Usability Studies: The $1 Fix to the $100 Problem

Usability and User Experience are hot topics on the minds of both project stakeholders and customers. Many businesses are without dedicated UX professionals, committed to the research and design of key projects. As a developer, project manager, or business analyst, what can you do to improve the usability of your project? The answer: usability studies. Usability studies are an easy technique to learn and hard technique to master. Join Ash Banaszek, Sr UX Project Consultant at Union Pacific, as she walks you through the basics of usability studies to start finding real, actionable results to improve your applications. In this session Banaszek will take you through: * What are usability studies and why should we use them? * Pinpointing what parts of the app to study * Finding the right medium to test * Creating tasks and identifying users * Running a study * Interpreting results * Applying results to your design * Communicating results with stakeholders At the end of this workshop, participants have the ability to apply your knowledge by testing your own applications or an application the instructor provides. If you would like to test your own app, please be prepared to bring it and share.

Speaker

Ash Banaszek

Ash Banaszek

Sr. UX Specialist, Union Pacific Railroad

User Experience: The Black Hat

When creating a new app or updating an existing one, project teams are filled with conflicting ideas on how to make an application better. For user interface decisions, often the person with the loudest voice, relentless attitude, or highest title dictates what is done--or even worse, the entire application is designed by committee in tedious detail in meeting after painstaking meeting. Both ways produce results that are less than ideal.

But there's a better way to get a successful design AND buy-in from your project team, product owners, and users. Black Hat design puts all stakeholders on equal footing and gets everyone's concerns heard and addressed, without devolving into design by committee.

This talk will teach you how do perform the best kept secret in UX design: the black hat session.

Speaker

Ash Banaszek

Ash Banaszek

Sr. UX Specialist, Union Pacific Railroad

Using Webpack to Streamline Modern Web Application Packaging and Deployment

This session will demonstrate how the new WebPack module bundler (https://webpack.github.io/) offers a great solution for bundling modern web content and serving up efficiently from the server.

We will demonstrate how to get started with WebPack within the context of a modern web application and how to configure it efficiently to bundle and serve any content you need efficiently and “on demand”. This allows developers to efficiently organize their content together and easily have it sent to the server as needed by a particular area of the application.

We will demonstrate how to configure Visual Studio to efficiently work with WebPack and discuss best practices for utilizing it with modern frameworks such as Angular2 or React. Attendees will also be pointed at a number of great resources to help them better understand and utilize WebPack in their own projects.

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Website Performance: Profiling ASP.NET Server Side Code Effectively

This session takes a deep dive into the performance space as it relates to ASP.NET Server Side Code issues, geared towards assisting those that know their code is not performing as well as it should, but unsure of where to start. A methodical process will be introduce that will help to guide users through the diagnostic process, regardless of the toolsets used. Various tools will be discussed, including built in Visual Studio Tools, third-party tools, and third-party monitoring solutions to illustrate the methods available to get the information needed, the specific tools are not important, but the resultant data.

Attendees will learn high-level concepts of performance optimization including the concept of benchmarking, controlling environmental states, and validation that test scenarios are real-world. After attending the session, regardless of the toolsets available at work attendees should have a better understanding of how to approach, and resolve, their performance issues. Real-world examples, and data will be outlined.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Welcome to Spring Cloud

Spring Cloud provides a series of projects dedicated to making 12 factor or cloud native application development possible. Armed with basic knowledge of the Spring Framework, this talk will provide the audience some of the basics needed to build Cloud Native applications with the Spring Framework

Speaker

Frank Moley

Frank Moley

Internet Architect, Garmin International

Well There’s Your Problem: Misadventures in Software Consulting

Software Development is a Cyclic industry… the problem is that many of the developers who live through mistakes are not around for the second pass. In this session we will talk about the super power that every developer needs… the ability to spot a bad idea and redirect. This humorous look back over how we as developer make the same mistakes, mostly through lost of knowledge inside our community and what we can do about it. Derived from my experince with consulting and some of thte fun and pain that ensued.

Speaker

James McKee

James McKee

Solutions Developer / Enterprise Architect / Security Analyst, BlueBolt Solutions

What is BlockChain?

BlockChain. One of the hottest terms in the Information Technology, Financial, and Healthcare industies. What is it, how does it work, and what can it do for me? We'll talk about all of these, along with its history, and its association with BitCoin and other crypto currencies. Some people say that once it becomes commonplace in implementing this technology, it will change the world in how trasnactions are stored. Will it? Come listen and decide for yourself.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

What is DevOps?

We've all heard the term DevOps, and if you've not. Please tell me what happiness feels like? DevOps is a term that was coined in 2008, and since then the idea has evolved, grown, and even flipped a few times. Let's go over what DevOps is, what it isn't, and how it can help you at your current job.

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, N/A

What is Machine Learning?

Our lives are influenced by data and algorithms more than most of us realize. Movie and product recommendations, speech recognition, spam filtering, fraud detection, medical diagnoses, and even autonomous vehicles are all powered by machine learning, a subfield of computer science dealing with statistical pattern recognition and artificial intelligence.

This session will introduce you to the field of machine learning and explain basic concepts such as supervised and unsupervised learning. It will also provide an overview of basic types of machine learning problems such as regression, classification, and clustering.

We'll cover one concrete example, which has become the "hello world" problem of machine learning: We'll train a neural network to recognize handwriting using the MNIST handwritten digit database.

This is a mathematical subject, but we'll focus on developing intuition about how machine learning works conceptually.

You'll come away with a basic understanding of what machine learning is and enough of an idea of how it works to decide if you want to learn more.

Speaker

David Body

David Body

President, Big Creek Software, LLC

What's New in C#7

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 have been added to C#7 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

Practice Lead, Magenic

What's New in Java 9

Java 9 is just around the corner and coming with it are new features and changes. By far the biggest change is Jigsaw which is introducing modularity to Java. However Java 9 isn't just about modularity and there are several other new features coming to Java 9 that will help improve production performance, security, as well as some qualifty of life improvements.

Speaker

Billy Korando

Billy Korando

Senior Software Consultant

Why you should use React Native for your next mobile app

Whether you’re a seasoned React.js developer or not, this talk will show how React Native should be a serious contender for writing your next mobile application.

Starting with a basic overview of its tools and ecosystem we will discuss the awesomely well designed development experience of React Native (NO constant recompiling, Chrome-like dev tools, LIVE RELOADING!!!). We will the show how simple it is to get started by reusing components from your React web apps before finally exploring how companies optimize React to scale for large applications.

Speaker

Gwendolyn Faraday

Gwendolyn Faraday

Developer, Consultant, Ion Three

Writing Requirements for Agile

As many organizations have moved away from waterfall into more agile-based processes requirements (both business and functional) tend to get shoved to the curb. In this session we will explore how business and functional requirements can still be valuable in an agile-based process and how they can be written and perpetuated throughout the project work. In this session we will walk through real stories and agile tendencies to showcase the authoring of proper requirements. * Writing business requirements and translating them to Agile * Building a process around the integration of requierments into Agile * Leveraging tools to support requirements and process in a real way

Speaker

Melissa Green

Melissa Green

Managing Partner, Wirestream, LLC

Your brain is broken and you suck at making decisions. Why Agile thinking is important.

The human brain is really good at lots of things, but living and making decisions in our modern world typically isn't one of them. Learn why thinking in increments and iterations, and using empirical decision making can help us be awesome at work.

Speaker

Nathan Adams

Nathan Adams

Agile Coach/Software Architect, NewBoCo