Indy.Code() Sessions

.NET Unit Testing Beginner Bootcamp

As a professional software developer, quality and maintainability are fundamental job responsibilities, and well written unit tests are key aspect of achieving these goals. But getting started with unit testing can be daunting, and knowing what to test can be overwhelming.

Whether you're a senior .NET dev that just never got into unit tests, or you're just starting your .NET journey, I'll cover tactical and strategic guides and share my experiences to get you started and prepared for the path ahead.

In this workshop, we'll talk through the topics you need to know to get up and running with unit testing, coupled with hands-on coding activities to practice the topics covered. Laptops are required for all attendees due to the coding exercises.

Topics covered in this workshop:

• Fundamentals of unit testing and basic structure of a unit test / test suite
• Features of popular testing frameworks and tooling
• Tips and strategies for writing tests that provide long-term value
• Differences between writing tests for new code vs writing tests for existing code
• Unit Tests vs Integration Test: advantages and disadvantages of each
• Using mocking frameworks
• Integration with CI/build servers
• Pros & cons of Code Coverage tools
• Advanced integrations with testing frameworks -- using the framework SDKs to extend and enhance

Speaker

John Wright

John Wright

Senior Software Developer, Stack Overflow

A Physics of Software Design

Learning how to write quality, maintainable code has been a question left to intuition, personal reinvention (after repeated failure), and the memorization of maxims such as "Tell Don't Ask", "Feature Envy", SOLID, et al.

But can we compare these maxims – these learned lessons – across paradigms, and arrive at a generalization which serves as a sort of guiding "Grand Unified Theory of Software Development" (Jim Weirich)?

Some of this work has been done, and the resulting concept and vocabulary is not only simple to explain (and immediately applicable) to early learners, but can serve as a metric for quantifying maintainability and refactoring opportunities at all levels of software architecture.

Speaker

David Michael Gregg

David Michael Gregg

Instructor, Software Engineering, Kenzie Academy

A Software Engineer's Guide to DevOps

I'm a software engineer who spends her time writing code and developing apps. I have a pretty good grasp of the vocabulary and technologies relevant to my job. But what happens when another facet of engineering, one that is gaining a lot of traction and has a large footprint of its own starts becoming more and more relevant to my day to day tasks? Well, that's exactly what happened to me last year when DevOps became a big part of my role. This is my attempt to impart all of that knowledge onto you.

Speaker

Laurie Barth

Laurie Barth

Software Engineer, Ten Mile Square

Agile BI Governance: Humans, Tech, and the “Goldilocks Line”

We all now recognize that in a successful data strategy, the business can no longer just play the role of passive consumer, but now also must take an active role in the authoring of BI models, reports, and dashboards.

That’s easy to say, but a delicate balancing act in practice. Most organizations understandably struggle with big questions on how to even begin. How much business involvement is too much, or too little? Who do you include as authors, and who remains in a consumer role? What kinds of training and policies are required? Do you roll it out all at once, or piecemeal? Above all, how do you prevent the whole thing from devolving into chaos?

Good news: these questions do have relatively simple answers once you see the challenge as a human one, and understand how to blend the right kind of relationships with a properly-tuned underlying tech framework. In this session, agile BI thought leader Rob Collie shares lessons and methodologies developed over 8+ years of consulting with clients specifically in this space.

Speaker

Rob Collie

Rob Collie

President, PowerPivotPro

An Introduction to Agile Engineering

Learn the concepts of how to do: Test-Driven Development (TDD), Pair Programming, Mob Programming, and using a Coding Kata. If you bring your laptops and friends, then you’ll be able to join along in the fun. This is an interactive session with code being written. At the end, you’ll have something that you can practice with to learn how to be an Agile Engineer.

Speaker

Darren Terrell

Darren Terrell

VP of Enterprise Agile Coaching, Project Brilliant

An Introduction to WebAssembly

Want to write a web application? Better get familiar with JavaScript! JavaScript has long been the king of front-end. While there have been various attempts to dethrone it, they have typically involved treating JavaScript as an assembly-language analog that you transpile your code to. This has lead to complex build pipelines that result in JavaScript which the browser has to parse and you still have to debug. But what if there were an actual byte-code language you could compile your non-JavaScript code to instead? That is what WebAssembly is.

I'm going to explain how WebAssembly works and how to use it in this talk. I'll cover what it is, how it fits into your application, and how to build and use your own WebAssembly modules. And, I'll demo how to build and use those modules with both Rust and the WebAssembly Text Format. That's right, I'll be live coding in an assembly language. I'll also go over some online resources for other languages and tools that make use of WebAssembly.

When we're done, you'll have the footing you need to start building applications featuring WebAssembly. So grab a non-JavaScript language, a modern browser, and let's and get started!

Speaker

Guy Royse

Guy Royse

Developer Evangelist, DataRobot

Angular2+ Reactive Forms

If you’re using Angular2+ and building forms the way you’ve always built them, you’re missing out on an amazingly powerful feature of the framework. Reactive forms (aka model-driven forms) allow you to build forms in the Javascript (or Typescript) file, making complex validation and error-handling a breeze. In this talk, we’ll walk through the steps to build a standard-but-tricky form, using the Reactive Forms approach, from scratch.

Speaker

Lyndsey Padget

Lyndsey Padget

Founder & Software Engineer, Longplay Software

AUTOMATE ALL THE THINGS!!! (FROM THE DATABASE PERSPECTIVE)

What do you do when you start with just 3 databases, 4 test envs, and a handful of developers, and now you have over 100 databases, 80+ environments, and 100+ developers? How do you keep up with all of that change? How do you keep everything in sync? Let's walk through what we tried, tested, and eventually went with. We have over 3000 databases across 80+ environments, keeping everything configured correctly, keeping the databases in sync, and designing it all to allow us to continue to grow has been an adventure.

Speaker

JP O'Donnell

JP O'Donnell

Lead Database Administrator, Cover My Meds

Become a Remote Working Pro

There is no doubt about it, working remotely can be an amazing experience – no commute and wearing pants is optional! Of course, it’s not all rainbows and unicorns since there are challenges to overcome and of course work to be done. This interactive session will answer questions like, “how can I convince my boss to let me work remotely?”, “how can I make sure they don’t forget about me once I start working remotely?” and many more. It will equip you with the tools and techniques for being a successful remote team member.

Speaker

Michael Eaton

Michael Eaton

Director of Engineering, Matched Pattern

Being an Agile Dev

Organizations talk about becoming agile but what does it mean for a developer to be Agile?

In this talk you’ll learn about scrum and other types of agile software development and what the differences are. And then we’ll take a deeper dive into scrum and why standups are more than just making sure you’re doing work, and why retrospectives are more than just talking about feelings. Along the way we’ll discuss what you should be contributing, and what you should be getting out of each meeting.

Speaker

Courtney  Heitman

Courtney Heitman

Scrum Master & UX Developer, Gallup

Being Right is Not Enough

When I entered software development, I was an arrogant jerk. I thought I knew everything and what I didn’t know I would figure out on my own. I was wrong.

I’m also not alone.

How you communicate to the people around you will change everything about how they perceive you. If you fail to understand their point of view, they will reject you – no matter how correct you may be. Feel like your ideas aren’t heard? Can’t understand why no one takes you seriously? Maybe it’s not them; maybe it’s you. In this session, I’ll speak candidly about the journey I took from self-centered to team-centered. We’ll examine how today, more than ever, software creation is a team sport. We’ll look at how teams can set themselves up for success or failure from the outset. Most of all, I’ll provide the tools that I use every day to keep from pushing my teammates away from me.

Speaker

Zach Beer

Zach Beer

Manager of DevOps and Agile Strategy, InRule Technology

Bootstrap Your App with AWS Amplify!

Front-end development can be complicated. There are enough libraries, and enough churn, to make anyone feel lost in the shuffle. Common concerns for any non-trivial modern web application include features like authentication, user content, logging, and analytics. In this session, we break down and demo the key features of AWS Amplify – an open-source library from Amazon. Amplify abstracts away the common functionality that so many applications share and allows developers to focus on building – not plumbing! In this session, we walk through a simple application highlighting the features and tools the library provides. This should leave you with the knowledge of how and why you would integrate this with your own projects. The session will use React to demonstrate the features of the library, but general front-end development experience is all that is required.

Speaker

Mat Warger

Mat Warger

Senior Consultant, Keyhole Software

Building Serverless Applications Without the Vendor Lock In - Introduction to Knative

Knative from Google is a Kubernetes based platform for building serverless applications. In this session we'll explore what it means to be "serverless", and how Knative can help you build serverless applications that can be deployed to many different public cloud providers, as well as being deployed on premises.

Speaker

Jeff Butler

Jeff Butler

Senior Platform Architect, Pivotal Software

Burnout: Prevention and Recovery

We’ve all been there. We’ve felt burnt out. Perhaps we even feel burnt out today. In this session, we’ll forgo the semicolons and talk about what burnout is, how to prevent it, and what to do if you’re already there. The biggest challenge of our time isn’t the latest framework, learning VR or IoT, the challenge is how to stay engaged in our work. In this session, we’ll show you how.

Speaker

Rob Bogue

Rob Bogue

President, Thor Projects LLC

Busy Developers Workshop: Angular

In the world of the Single-Page Application (SPA), one name that appears over and over again is that of Angular, a JavaScript web framework that does things a little differently--and with great effect. But getting started with Angular is a higher bar than some other JavaScript frameworks, because if you don't do things the "Angular Way", it gets really tricky really quickly. In this workshop, we'll start from zero, with a little TypeScript, then start working with Angular: its core constructs and how it works with components, modules, and of course the ubiquitous model/view/controller approach. Bring your laptop, a buddy, and a caffeinated beverage of your choice, because once you strap in, it's going to be a hands-on lecture/lab ride.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

Converged Reality - Why Mixed Reality's Time is Now

Mixed Reality technologies are not new, but Mixed Reality is clearly gaining traction both in the consumer and enterprise spaces. This is largely due to the fact that Mixed Reality is just one component of a larger melding of physical and digital worlds that we refer to as “Converged Reality”. Converged Reality blends the increasingly ubiquitous intelligence found in Machine Learning, Advanced Data Analytics, and Cognitive Services, human interfaces such as mobile chatbots and Mixed Reality that break the paradigm of a user tethered to a monitor, keyboard, and mouse, and massive data exchange of IoT to create an ever-growing intersection between the physical and digital worlds. This session examines Mixed Reality’s role in the Converged Reality space and how we can build compelling solutions that bridge the gap between the physical and digital worlds.

Speaker

Kyle Burns

Kyle Burns

Practice Lead, DMI

Creating an Agile Development Environment for React Native with AzureDevOps

An introduction and guide to creating a Agile development enviroment with for mobile applications, specificly React Native and AzureDevOps. The guide will introduce:

  1. How to setup branch policies to reinforce knowledge transfer.
  2. How to create CI/CD process to increase the feeback loop.
  3. Best practices for connecting code and project planning to enhance transparency.

Speaker

Jacob Van Brunt

Jacob Van Brunt

Senior Software Engineer, Aptera

Creating Eloquent Code

If you've been programming long, you've had the experience of looking at your own code and struggling to understand it. Worse yet is trying to understand other people's code. Every piece of code you write not only instructs the computer, it also informs human readers. What is it telling them? In this session, you will learn to listen to what your code is saying. You will see how choices about scope, visibility, coupling, and cohesion reveal themselves in your code. You will learn principles and practices for creating eloquent code. Examples will be in C#, but will be applicable to any object-oriented language. You will leave with new ideas to make your code speak clearly and inspiration to be more mindful while creating code.

Speaker

Joe Wirtley

Joe Wirtley

Consultant, Wirtley Consulting LLC

CSS and Enhancing Accessibility

When we devlop, we code not only with the biasses of our own likes and dislikes, but also of our abilities and inabilities.

  • 4G connection and 1GB internet
  • Visual capabilites (size, color, weight)
  • Language
  • Familiarity with web conventions (good and bad)
  • Auditory availability (presence of sight, and proper environment)
  • Dexterity (presence of keyboard or mouse)

With a few small changes to the markup and styling of web pages, we can make for a more inclusive web - with wonderful UX benefits.

Speaker

Brendan Quinn

Brendan Quinn

Web Developer, NextGear Capital

D3.js for beginners

The D3 library has a high learning curve. This workshop will teach the fundamentals of D3.js version 4 from a beginners perspective. This workshop will give a brief overview of SVGs , data binding, and plotting basic graphs such as bar charts,line, and scatter graphs with the D3 library.

Speaker

Deconstructing Interaction Platforms - Technical Review of Facebook, LinkedIn, Twitter

Most of us have 'liked' or swiped a comment in a conversation thread. The underlying code relies on a growing data model for delivery of comment information to users and to other solutions in the software system. Attendees will learn of the tools and techniques used the Big 3 in their interaction platforms, with a checklist of capabilities that you will be expected to have in your reusable library.

Speaker

Dave Leininger

Dave Leininger

Consultant, Box 160

Deep Learning For Folks Without (or With!) a Ph.D.

How does a computer identify pictures of cats? What about translating speech from one language to another? Or drive a car? Creating lifelike photos of people who don’t exist? These are jobs for deep learning. Using neural networks, deep learning is a specialization of machine learning with a predisposition for perceptual tasks requiring lots of data. If this sounds hard, it’s because it is! However, the Python community has pitched in and offered two libraries which are the focus of this talk. Keras is an high level conceptual API which allows developers to focus on the why of deep learning projects instead of the how. For those who need more control, or to invent something new, TensorFlow is a lower-level library which is also a backend for Keras. Between the two there is something for everyone available in the exciting new world of deep learning.

Speaker

Douglas Starnes

Douglas Starnes

Author, Speaker, Independent

Deploying Infrastructure - Azure Resource Management

Does it take you days to deploy your infrastructure? In this session we are going to introduce you to Azure Resource Manager and demonstrate how we create Azure Resource Manager (ARM) templates using Visual Studio 2017 and then deploy the infrastructure to Azure in minutes. We are going to peek under the covers of the ARM templates to show you what is going on inside the template and why you should be implementing it today. We will look at the Azure portal and walk through the infrastructure we deployed. Lastly we will look at the Azure Resource Template Visualizer and show you a great way to use it to get you started with ARM template creation.

Speaker

Paul Hacker

Paul Hacker

DevOps Architect, Microsoft

Desktop Applications in Electron

While most of the world has gone mobile, there is still a time and a place for desktop applications. This course will focus on utilizing those web skills with a foundation in HTML, CSS and Javascript to build cross-platform desktop applications ready for enterprise deployment. We will setup the development environment, add the appropriate packages and even build a deployment package. In the end you will gain a good understanding of the inner workings of applications such as Slack, vscode and the Atom editor.

Speaker

Victor Pudelski

Victor Pudelski

V.P. of Solutions, Technology Solutions Consultants, LLC

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

ExploRing CRISP-DM: Valuable Data Model Plans In R Programming For Better Business Value

R programming and Python are the leading programming languages in data science. With so many data models that can be created, knowing how to manage data in a project becomes a daunting task. CRISP-DM (Cross-Industry Standard Process for Data Mining) is an industry-proven methodology for data mining efforts. Through an overview of example libraries in R programming and data types that appear in a database, this session will guide attendees towards best practices in examining data and developing models efficiently. It will also help developers who are beginning a data science career to learn how to present effective information to gain meaningful management buyin for data exploration.

Speaker

Pierre DeBois

Pierre DeBois

Founder and CEO, Zimana

Exploring Parallelism With Raspberry Pi

Moore's Law is running out. Still, customers want more computing power, more performance. Parallelism offers a way for software developers to deliver more. This talk offers an intro to parallelism, including some inexpensive ways to study the topic using that well-known single-board computer, the Raspberry Pi.

Speaker

Ray Hightower

Ray Hightower

Director, Los Angeles, 8th Light

Flexbox + CSS Grid = Awesome!

The traditional 'box' layout model was designed to layout documents, not apps. Many hours have been lost endlessly tinkering with the positioning of HTML elements, but the joy at achieving perfect alignment is short-lived. Everything looks great until the page is loaded on a mobile device, and it looks like you threw things on a page from across the room. There's a better way! In this talk I will teach you about the flexbox layout model and CSS grid. We will cover these concepts at a high level, discuss why they are a better approach, and I will show you how to use them effectively. Used in tandem, these widely supported techniques can make your pages responsive, more accessible, and easier to build.

Speaker

Scott McAllister

Scott McAllister

Developer Advocate Lead, Smartsheet

From Zero to App: A React Workshop

You’ve heard about it. Maybe you even started looking at it, but you abandoned when you saw that you needed to re-learn all you thought you knew about JS. When starting to do your first steps in React, the learning curve can seem really steep. In this workshop, the attendees will be guided through the fundamental concepts behind React and will learn how to build a full application using those technologies. Covering packaging with webpack, routing, form manipulation and authentication, this workshop will get the attendees up to speed with this trendy framework that React is.

Speaker

Joel Lord

Joel Lord

Technical Evangelist, Auth0

Full Stack ASP.NET MVC Core Performance Tuning

Application performance is often under-appreciated. At least until the user complaints start rolling in. Spending time tuning your application can be tough to justify to management, but performance is the ultimate feature. Even small increases in performance can drastically improve adoption of your application. Performance impacts the bottom line like a meteorite impacts the Earth.

In this talk, we're going to tune modern web applications built in ASP.NET Core. You'll learn how to measure performance and find bottlenecks. You'll also learn how to fix common performance issues and best practices that you can follow to create performant code. You'll leave this talk with a plethora of tools and techniques that you can use on the job. After this talk, you'll be able to make apps faster than Usain Bolt with cheetahs for shoes.

Speaker

Dustin Ewers

Dustin Ewers

Software Consultant, Centare

Getting Started with .NET Unit Testing

As a professional software developer, quality and maintainability are fundamental job responsibilities, and well written unit tests are key aspect of achieving these goals. But getting started with unit testing can be daunting. And knowing what to test can be overwhelming.

Whether you're a senior .NET dev that just never got into unit tests, or you're just starting your .NET journey, I'll cover tactical and strategic guides and my experiences to get you started and prepared for the path ahead.

In this session, we'll walk through some fundamentals of unit testing in .NET, the features of popular testing frameworks and tooling, and the differences between writing tests for new code vs writing tests for existing code. We'll talk about approaches to writing a unit test that provides you with immediate value and will better withstand the test of time.

Speaker

John Wright

John Wright

Senior Software Developer, Stack Overflow

Getting Started with Virtual Reality Development

Augmented, Virtual, and Mixed Reality are terms that have been discussed for decades, but have reached mainstream status in the past few years. Is this all just a fad, or is there viable business opportunities for developers? In this session you'll learn how these technologies differ from each other as well as discover how easy it is to take what you already know as a developer and start developing applications. The session will include a demo of building a basic VR solution using Unity from scratch.

Speaker

Brad! Jones

Brad! Jones

Lots of 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

Git Merge, Resets and Branches

Two developers can work on the same files at the same time and it doesn't have to be scary. Git Merge makes it easy to ensure we can see what's changed, where conflicts occurred and give us an opportunity to resolve them peacefully. In general, Git provides tools for rolling files back, isolating R&D initiatives and much much more. This session will focus on some more advanced Git commands and how we can use them in our daily projects to ensure source control is never a burden but an ally in getting work done quickly, easily and without interrupting other fellow developers.

Speaker

Victor Pudelski

Victor Pudelski

V.P. of Solutions, Technology Solutions Consultants, LLC

Google + Alexa: Cross-Assistant Apps

tl;dr - We'll discuss bots, compare Alexa and Google, and dig into how we can build one API for both platforms.

Remember when the Echo was made available back in late 2014? It was invite only, then Prime only, then finally available for everyone the next summer. Only, most people didn't really seem to care. What does it even do? Why should I bother? Can't I just use my phone?

Quite a lot has changed with voice assistants in the past four-plus years; there now are approximately 7,000 Echo devices, the trio of Google Homes are quickly taking more and more market share, and many third-party manufacturers are creating their own voice-enabled devices. We can interact with these devices just by talking, and now some can even respond with visuals (though not quite in the same way as a phone or tablet.)

We're going to talk a bit about where we were, a bit more about where we are now, plus discuss how people's day-to-day is being made easier thanks to their AI assistants. We'll look at both platforms to compare and contrast. We'll even dig into some code to learn how we can build our own fulfillment API.

Speaker

Michael Fazio

Michael Fazio

Sr. Software Engineer, Skyline Technologies

Hack Proof: Software Design for a Hostile Internet

Software today is subjected to numerous vectors of attacks. The Internet world is a hostile world and our apps need to be expecting to encounter digital terrorists who want to use our applications to get inside our organization. In this session you’ll learn about some of the most common attack vectors for applications and what you can do about them. We’ll discuss techniques for protecting from user input including injection and cross site scripting attacks.

• Dispel myths about hacking and application vulnerability • Identify common threat vectors for applications • Discover strategies for addressing common threat vectors

Speaker

Rob Bogue

Rob Bogue

President, Thor Projects LLC

Hacking your work life __ balance to take over the world.

Everyone has the same 24 hours in a day, so how do some people seem accomplish so much more? It’s time to learn to hack your work life __ balance to have more time to pursue your passion projects, spend more time with those you love, while keeping your work ethic strong. Let’s take over the world!

Speaker

Jennifer Wadella

Jennifer Wadella

Founder, Kansas City Women in Technology

How Long Will It Take? - Estimation Methods To Answer The Impossible Question

"How long will it take?" is something no developer likes to hear. Devs don't work in a vacuum; someone in the business will want to do some planning. This talk will start with why you need to be good at estimating and cover fallacies surrounding it (including its role in Agile). We'll discuss multiple ways to perform estimates with their pros and cons. You'll leave knowing why estimation is important with tools to make it easier and less scary.

Speaker

Jared Faris

Jared Faris

VP of Solutions, HMB

How Microsoft Does DevOps

Learn how the Visual Studio Team Services (VSTS) team at Microsoft has changed their approach to building software and services by adopting an Agile culture and mindset. Paul Hacker takes you on a journey of contrasting the “old way” with the “new way”, and shares key changes that contributed to the transformation including thoughts on teams, roles, sprints, planning, and learning.

Speaker

Paul Hacker

Paul Hacker

DevOps Architect, Microsoft

How to Talk Like an Engineer: Communication as You Move Up the Ladder

It is often said that the hardest problem to solve is when two people are talking about different things but believe they are talking about the same thing. As you grow in your engineering career being able communicate about problems effectively is perhaps your single most important skill. This talk exists to distill the breadth of engineering verticals into a quick hit of common vocabulary.

Speaker

Laurie Barth

Laurie Barth

Software Engineer, Ten Mile Square

I Don't Care About Security (And Neither Should You)

Remember when setting up an auth system was easy? Me neither. From the signup form, the login form, password reset form, and all the validation in between it can easily take weeks if not months to get something basic up and running. Then you have to deal with all the security considerations. No thanks. During this presentation, the attendees will be introduced to OpenID and OAuth. They will learn how to leverage these technologies to create secure applications, but most importantly, they will learn why and how to delegate authorization and authentication so they can focus on their real work and forget about all that security stuff.

Speaker

Joel Lord

Joel Lord

Technical Evangelist, Auth0

Influence, Not Control

Our interfaces help people by allowing them to complete tasks, find information, and all of the other things we imagine technology can do.

  • How do you make people more likely to act or to develop habits?
  • How can you help people make better decisions?
  • How can we help people to do what they want and need, without taking advantage of them?

Explore some of the principles of Psychology that can be used to Influence behavior.

Consider the ethical choices that we make as we help people to act in their own self interest, while building our business.

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

Introduction to Clean Architecture using ASP.NET Core

An introduction of Clean Architecture with ASP.NET Core. Clean Architecture is a way to write loosely-coupled, dependency-inverted code. In previous years this was also known as hexagonal, ports-and-adapters, or onion architecture. The goal of this presentation is to provide a basic structure that can be used to build Domain-Driven Design (DDD)-based or simply well-factored, SOLID applications using .NET Core. This architecture can be the basis for designing microservices. The attendees will get a great deal of value by understanding this architecture. This will enable them to write loosly coupled dependency-inverted api services.

Speaker

Mayuri Shah

Mayuri Shah

Application Architect, DWA Health Care Communications Group

Introduction to the R Language and Ecosystem

This session will introduce you to R, a general purpose programming language and software environment that is popular for data analysis and visualization. We will introduce the R language, focusing on examples of the kinds of things that R excels at like data wrangling, exploratory data analysis, statistical computing, machine learning, and data visualization.

We'll also introduce the R ecosystem, including the tidyverse, an opinionated collection of R packages designed to make data science fast, fluent, and fun.

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

JavaScript Async Deep-dive

Callbacks, promises, async, oh my! Asynchrony in JavaScript has come of age. We'll start with a quick history of the 3 techniques. Then dive in deep to async and await. How can you transition from callbacks to promises or promises to async? How can you use legacy code with await? How can your legacy code call your async functions? Whether you're using Babel or evergreen browsers, as Yoda would say, "async code write you can."

Speaker

Rob Richardson

Rob Richardson

@rob_rich

JavaScript Test Coverage - a cozy blanket on for a rainy day.

Getting 100% coverage is hard but you still want to keep your toes warm on a cold day. In this session we'll talk about frameworks, tools and write some tests. We'll also go over some techniques for continuous integration and finding code that is just tested and not used. We'll go over real life examples of good coverage and bad. You'll learn how I became a TDD convert after fixing the same bugs over and over again.

Speaker

Aaron King

Aaron King

Senior Web Application Developer, Coastal Credit

Jewelbots: How to Get More Girls Coding!

Girls just wanna have fun … coding their own programmable jewelry! Jewelbots are the latest in wearable tech that allow you to write your own code. This live coding demo will introduce you to the Jewelbots API, highlight fun projects, & talk through tips on encouraging young women in tech.

Speaker

Jennifer Wadella

Jennifer Wadella

Founder, Kansas City Women in Technology

Kotlin - Less Code, More Fun

tl;dr - Write less (but safer!) code in your Android apps or any JVM-based projects

Ever work on an Android app and tire of all the boilerplate code? Or spend hours chasing down NullPointerExceptions in your Java app? Enter Kotlin, JetBrains' new(ish) free, open-source programming language that targets the JVM. This means you can use it everywhere you use Java, but with a modern, succinct syntax.

For native Android developers, Kotlin is not only available, but it's now considered a first-class language. You're able to write an app completely with Kotlin, or switch over entire components, or even just change your models to Kotlin's data classes (which removes a TON of boilerplate code.)

Oh, and for anyone using Java elsewhere, you can add in Kotlin code to your existing application. Kotlin is 100% interoperable with Java, meaning all your existing code/libraries/tests will work with any Kotlin code you write.

Doing JavaScript development? Kotlin can be transpiled into ES5, and there are even libraries available to use React or Angular with Kotlin.

C# dev working on any kind of Java project? You'll feel much more at home with Kotlin, given features like nullable types, properties (rather than getters/setters), and extension methods.

We'll walk through Kotlin's features, check out the syntax, and even create a small Android application so you can see Kotlin in action.

Speaker

Michael Fazio

Michael Fazio

Sr. Software Engineer, Skyline Technologies

Kubernetes Test Drive

Are you a Docker aficionado or are you new to the Docker ecosystem? Come see how Kubernetes (K8s) adds a mature solution for running containers in production and development. We'll start with containers, layer in pods, replica sets, deployments, and services. We'll dig into minikube and kubernetes in docker desktop. You'll leave with a solid understanding of the principles of K8s, and a practical set of skills for driving this container orchestrator throughout the software development lifecycle.

Speaker

Rob Richardson

Rob Richardson

@rob_rich

Leadership Journey: From Software Developer to Leader

You’ve spent years working on your skills as a software developer. You measure your days by the number of commits you’ve made and look forward to the daily pairing sessions with your team mates. Then, one day, a leadership position opens up on your team and you start thinking about it. Should I or shouldn’t I? What if I go for it and end up hating it or I’m just not that good at it? What if I love it? How will my day change? In this interactive session, we’ll explore “why leadership”, answer some hard questions and talk about one developer’s path from writing code to leading people and the challenges that have been experienced.

Speaker

Michael Eaton

Michael Eaton

Director of Engineering, Matched Pattern

Let Your Code Write Itself

This talk will be a dive into two technologies, Idris and Barliman, enabling developers to sketch some code and allow the computer to complete it for us. These two technologies take drastically different approaches to this same task. In this talk we will explore both, showing the benefits and tradeoffs both offer.

First we will explore Idris, a dependently typed programming language. Rather than offer a tutorial of Idris, we will focus on its ability to write code for us. This will take the shape of a live coding session, show where Idris shines and where it falls short. Having explored Idris interactively, we will discuss the theory behind it.

Next we will explore Barliman, an interactive development environment aimed at allowing the user to provide a sketch of the program they'd like to write and some test cases they want to pass. We will again do some live coding allowing Barliman to derive our code for us. We will then constrast Barliman's approach to what we saw in Idris focusing on its dynamic nature. Finally we will talk about the impact these systems have on our day to day programming as well as casting a visions of what these systems may look like in the future.

Speaker

Jimmy Miller

Jimmy Miller

Senior Developer, healthfinch

Managing Software Development for Change

One of the greatest challenges modern software developers encounter is the constant need to change how the software works or what the software does. I this talk I present an architectural pattern based on principles of SOLID. Contracts, Hosts, Managers, Engines, Services, and Tests eases these pains and creates natural and intuitive structure to managinge software development for change.

Speaker

Ken Hill

Ken Hill

IT Manager / Application Architect, UMB

Mapping the User's Journey

Do you feel like you don't actually know your users? Do they struggle through the flow of your website, and you don’t know why?

This session will introduce you to empathy mapping, and how it will help you to relate to your users better. Once we have some empathy (mapping), we'll go over user journey mapping, so we can better understand what questions and pain points our users are having as they move through a website or application.

Speaker

Courtney  Heitman

Courtney Heitman

Scrum Master & UX Developer, Gallup

Master Git in a Day

Unless you’ve been living under a rock, you know that git is the most popular source control management in development shops today. And for good reason; its power overshadows tools you may have used in the past, such as Subversion or Team Foundations. While most developers and companies know this, making the switch can be painful. It’s all too common to lose code or introduce bugs because of difficulties merging or resolving conflicts. But fear not - it is possible to master git, and you will after spending a day in this course. After a brief overview of git concepts and capabilities, we’ll walk through exercises with real code in pairs and groups (for a realistic team experience). We’ll resolve conflicts, squash commits, stomp on other people’s code, fix our mistakes, introduce bugs (and then use git to find them), tag our commits, and more. All exercises will be performed on the command line, so you’ll truly understand what’s happening without the aid of GUI-based tools.

PS Don’t get your head detached about working in pairs and groups! We put the “fun” in “git fundamentals” with name tags, snacks, frequent breaks, and background music. No kumbaya or trust falls required.

Speaker

Lyndsey Padget

Lyndsey Padget

Founder & Software Engineer, Longplay Software

Memoirs of a Grumpy Developer

We have all witnessed the exponential rate at which our tools of the trade change. Either by improvement of existing ones or by completely new innovations. Do you think that's a good thing? Well, I'm here to tell you that sometimes it just pisses me off. Don't get me wrong. I love geeking out on new stuff just like you. But with the birth of new technologies comes the inevitable afterbirth, the judgmental know-it-all. Did you ever notice that every time something new comes out, what we've been using all this time is now not only old, but bad, and in some eyes even dead. Now, this isn't gonna be a rant about a certain type of people, as fun as that would be. I am however, going to talk about what I find is important as a consultant in the field and why I may not jump on the new shiny new coin the minute its release is hinted. And in doing so, I may make reference to certain types of folk that I think we've all come across. One of the most common comments I get in evals is along the lines of, "finally, something I can use today in my workplace". So, when is something "good enough"? When is the shiny coin worth jumping on immediately? Is it really wrong that I'm using "this" and "that" or doing things "this way" or "that way"? The answers to these questions are going to vary from person to person and just as important, workplace to workplace. But I think they're worth discussing. So how did I get to my middle-aged, grumpy self? It all started when...

Speaker

Miguel Castro

Miguel Castro

Melvicorp LLC

Microsoft Azure Makes Machine Learning Affordable and Accessible

It’s one of the hottest topics in software development that is not a buzzword. It’s for real. It’s also really tough. So how can anyone who needs machine learning get started? That’s where Microsoft Azure comes in. Offering a collections of tools that you can get started with for free, Azure makes it possible to perform machine learning tasks with little or no code involved. Microsoft Azure Machine Learning Studio and Workbench give novices and seasoned users a complete toolchain and workflow for a wide variety of machine learning projects. From data ingestion to operationalization via web services, developers and data professionals can leverage the power of predictive engines without a Ph.D. And since it’s opinion-free, supporting current and open source technologies such as Python, R and TensorFlow, you can integrate Azure ML with existing projects. In addition to the free starter tiers, it’s cost effective when you are ready to upgrade because everything is in the Azure cloud and pay for what you use. And you might not need to build anything at all. Azure Cognitive Services provides APIs that let you integrate vision, speech recognition into your app, today! Why buy a supercomputer when you can rent one? You don’t need a data center or a staff of eggheads, just Azure Machine Learning.

Speaker

Douglas Starnes

Douglas Starnes

Author, Speaker, Independent

Mocking .NET Without Hurting Its Feelings

Unit testing has become an accepted part of our lives as .NET programmers. To help focus our tests to only the code we want to validate, Mocking Frameworks are a powerful tool in our toolbox. Like many tools, if you have an understanding of how the tool works under the hood, you can bend it to your will (and also know where it'll break if you bend too much).

In this session, you'll learn about the two main types of mocking frameworks: constrained frameworks (like RhinoMocks and Moq) and unconstrained frameworks (such as Typemock Isolator and Telerik JustMock). I'll dig into how the two actually do their magic and we'll discuss the pros, cons, and limits of both. We'll look at examples of how to use the frameworks in your tests, mocking out dependencies from your own code and even third-party logic.

You'll get the most out of this session if you're comfortable reading C# code and have a general understanding of class inheritance in .NET, along with some experience writing and running unit tests. Prior experience using mocking frameworks is not necessary.

Speaker

John Wright

John Wright

Senior Software Developer, Stack Overflow

New SQL Server 2017 features you need to know.

SQL Server 2017 was the surprise software hit of the year. Here is a list of the features I am going to focus on in this session: Linux Version: I will cover the things you need to know before you decide to move SQL Server into Linux. Graph Tables: I will cover why you may need to add Graph Tables into your database. You will learn the differences between Relational Database Tables and Graph Database Tables. Query Optimization: We will look at the new Intelligent Query Processing options in Query Plans with demos. Resumable Online Index Rebuild: I will show you how to pause/resume ongoing index rebuild with demos. Machine Learning Services: I will demo how to run R Script in SQL Server 2017. We will look at the ways to monitor Machine Learning Services. In-Memory Tables: SQL Server 2017 became a great resource for caching with the new In-Memory features. We will create a NoSql Environment in SQL Server 2017 by using In-Memory tables and JSON functions

Speaker

Hasan Savran

Hasan Savran

BI Architect, Progressive Insurance

OpenSpace Agility Certification Workshop (OSA1)

Do you want more engagement in your organization? Do you want your organization to have more of an Agile Mindset? The OpenSpace Agility framework is designed to be an effective way to transform organizations to be really agile. Learn more at: http://openspaceagility.com/osa/osa-training/osa-workshop/

Speakers

Darren Terrell

Darren Terrell

VP of Enterprise Agile Coaching, Project Brilliant
Diana Williams

Diana Williams

Director Agile Coaching, Project Brilliant

Presentations, Storytelling, and How Not to Suck at it

Learn from UX Associate Ash Banaszek on how to give impactful and interesting technical talks. Ash is consistently rated highly by conference-goers as an informative and entertaining speaker, and is a decorated Toastmaster winning awards at Area and Division levels for humorous, impromptu, tall tales, and international speaking categories. In this talk, Ash will share her tips on organizing presentations, increasing engagement, when to add humor, how to fold a story into your tech talk, and using images effectively. Want to be a better presenter? After this talk you may not be a keynoter, but you definitely will "not suck at it."

Speaker

Ash Banaszek

Ash Banaszek

UX Associate, Union Pacific Railroad

Push it (Push it Real Good)

Git. It can be intimidating if you're accustomed to other kinds of source control management. Even if you're already using it and comfortable with the basics, situations can arise where you wish you understood it better. Developers often just want to write code and tell everyone else to take a hike, but the reality is that most of us work on teams where the feature-based code we write must be integrated, tested, and ultimately released. This session will cover the most critical git concepts, basic and advanced, in a completely visualized way. At the same time, you’ll pick up git terminal commands to help you understand (or even eliminate) a git GUI you already use. Go beyond the basics to learn how to get yourself out of a git pickle, practical release management strategies, and more.

Speaker

Lyndsey Padget

Lyndsey Padget

Founder & Software Engineer, Longplay Software

Quantum Computing and Q#

How does quantum computing work and how can you write quantum programs? We will explort Microsoft Q# and Microsoft Quantum Katas to learn quantum computing.

Speaker

Ken Hill

Ken Hill

IT Manager / Application Architect, UMB

R Programming: Getting Started in Data Science

R programming has become a useful language in the field of data science. It has allowed practitioners to apply statistical frameworks towards a vast array of data models. But where does one start to learn the principles in the language, and also develop models that are useful?

This workshop will go through the basic usage of R programming including: * Installing R programming * The basic programming protocols in R, including packages and libraries * The basics of RStudio (the IDE used for R) and Visual Studio * R Markdown * How data is accesssed (API, libraries, data files) * Data sources and ideas for managing data types for models * Overview of basic models, from regression to sentiment analysis * A review of Shiny - framework for developing an app * Data visualization with ggplot and other data visualization options will be reviewed

Speaker

Pierre DeBois

Pierre DeBois

Founder and CEO, Zimana

Real World Internet of Things (IoT) - Featuring Cloud-to-Cloud APIs

As consumer devices such as the NEST thermostat and a host of water leak detectors seek to augment the DIY security system ecosystem, or the cable provider ecosystem, or the custom mobile application from those three guys in Greenwood, reality is quickly seen. Direct access to these devices is only through an intermediary - an API call through a cloud - to get and, if approved, to change a value. How is that orchestrated in the real world, when you need to read thousands of devices of many types?

Speaker

Dave Leininger

Dave Leininger

Consultant, Box 160

Refactoring - Saving Your Code From Yourself

Abstract

Writing code that does what you want it to is easy. Writing code that is easy to understand is harder. Fortunately, you are not doomed to code that no one can understand or maintain if you know how to refactor it.

Description

Refactoring is a useful but often poorly understood skill. Effective refactoring leads to code that is easier to understand, maintain, and test. In this talk, you will learn how to identify code that needs to be refactored, types of refactoring you can do, and how to verify you’ve improved your code using Code Metrics tools in Visual Studio.

Signs you need to refactor:

  • Overly long methods
  • Unclear variable and method names
  • Too many input parameters
  • Unrelated code in the same method
  • Duplicated code
  • Lots of loops

Types of refactoring:

  • Rename refactoring
  • Method extraction
  • Consolidating code

Verifying improvement with Code Metrics:

  • Maintainability (should be high)
  • Complexity (should be low)

Speaker

Lorien Rensing

Lorien Rensing

Software Developer III, Making Everlasting Memories

Rock-Solid Components with TypeScript and GraphQL

Most recent javascript frameworks bring a solid component model to modern web development, but how can you guarantee that your components work correctly? In this session, you learn how the features of Typescript can be leveraged to bring clarity and dependability when constructing components with React. Using Typescript can help to catch errors early in the development life-cycle. GraphQL and its type system can ensure confidence in your components while fetching remote data. This comprehensive approach ensures that your components behave as you expect, and allows you to eliminate run-time errors. Learn how using types can keep your users happy!

Speaker

Mat Warger

Mat Warger

Senior Consultant, Keyhole Software

Scrum Master, Beyond the Certification

Imagine if your job was to herd elephants, corral monkeys or discuss death defying acts overhead; under the bigtop of Scrum. Maybe a police officer protecting and serving the team working diligently to build potentially shippable products. Or a psychic foretelling of coming fortunes or doom. Most Scrum Masters start with a two day certification, but never learn about the plethora of other roles they need to perform outside of facilitating the events listed in the Scrum Guide. Join this session to find hidden treasures and adventurous roles inside the world of the Scrum Master.

Speaker

Diana Williams

Diana Williams

Director Agile Coaching, Project Brilliant

Ten Things Data Can (and Should) Do For Your Business

In the world of data, we spend much of our time talking about software, and for good reason: the modern wave of tools is dramatically superior to the tools of even five years ago. But there’s a related question that bears revisiting: WHAT should we be doing with those tools? While that may seem like an obvious question, the very existence of the revolutionary new tools makes now a great time to revisit the fundamentals of how we view our relationship with data.

Spoiler alert: many of the obvious valuable things were prohibitively difficult to execute using previous tools – so much so that we’ve forgotten what we should be doing! The speaker (Rob Collie) has seen it all in the process of helping literally hundreds of organizations revolutionize their relationships with data, and in this thought-provoking and non-technical talk, he will share 10 recurring and valuable patterns observed within the past 2-3 years.

Speaker

Rob Collie

Rob Collie

President, PowerPivotPro

TensorFlow in R Programming; A Beginner’s Primer

Developed by Google researchers and engineers for deep neural networks research, Tensorflow provides developers a capacity for developing deep learning models. It and the Keras framework became available for R programming in 2018, along with an expanded availability through the Tensorflow.js framework. But how should developers approach using the basic capabilities in Tensorflow? This session is a straightforward overview of how the machine learning framework is used within R. Case examples will be reviewed.

Speaker

Pierre DeBois

Pierre DeBois

Founder and CEO, Zimana

The Actor Model and why you should be using it

You are probably familiar with the object-oriented and functional programming paradigms, but what about the actor model? The actor model is designed for concurrent programming and is an easy way to create systems that do many things at once. For example, the actor model is an excellent way to implement IoT (Internet of Things) applications or take advantage of the processing power of multiple CPU cores. Actors provide a natural way to model and reason about concurrent systems, especially for developers working in object-oriented languages. In this session, you will learn the fundamentals of the actor model. You will learn how actors work, communicate, and act as state machines. You will see how groups of actors cooperate in distributed, scalable, and fault tolerant systems. The session will include code examples in Akka.NET, which is a toolkit for C# and F#. At the end of this session, you will know the strengths and weaknesses of actor systems, and when they may help you solve a problem.

Speaker

Joe Wirtley

Joe Wirtley

Consultant, Wirtley Consulting LLC

The AI Engineer: A Foot in Two Worlds

Artificial Intelligence. Machine Learning. Data Science. These have been the hot buzzwords for the past several years. And us developers? We've been following this new technology like we always do. But this time it's not just a new programming language or JavaScript framework. AI is different.

The world of a developer is about code. Code that defines the behavior of some process. But the world of a data scientist is about data. Data that describes the behavior of some process.

An AI Engineer has a foot in each of these worlds.

If you'd like to have a foot in both of these worlds too, this talk will get you started. In it, I'll share what an AI Engineer is and isn't, steps you can take to begin your journey, and some common pitfalls to avoid. When we're done, you'll have a solid idea of exactly how you, as a developer, can fit into the world of data science, how to close the gaps to get there, and what you need to call yourself an AI Engineer.

Speaker

Guy Royse

Guy Royse

Developer Evangelist, DataRobot

The Future of Programming

As professional developers, most of our time is spent thinking about the near future. We are cemented into our current workflow by policy, social cohesion, or pragmatic considerations. While we may be constantly seeking to improve, new tools and libraries come with a certain amount of cost. It is simply not practical to completely change the way we are doing things and so we end up with small incremental improvements.

We will look at what could happen if we gave up these small incremental improvements and looked at radically different ways of programming. We will explore three languages that cast a particular vision of programmings future. The first, Idris, explores the idea of code that can guarantee that is free of all sorts of bugs. With Idris, we may in the future be able to have a proof that our program is secure. Next we will explore Unison, a language that allows us to control thousand of machines in just a few lines of code. No longer would we need microservices, a new service is a just a line of code away. Finally we will look at Eve, an experiment in language design that asks what our programs would be like if 1) code ordering didn't matter 2) all our programs were edited live 3) we could write the same systems in order of magnitude less code and less time.

Speaker

Jimmy Miller

Jimmy Miller

Senior Developer, healthfinch

The Role of an Architect

What is the role of an architect in a software project? This question has plagued many a software organization (and even those who do the job), and provided loads of entertainment. In this presentation, we aim to explore the intersection of software architect with the worlds of architecture, psychology, business, and even music. By the end, though, you'll have a clear idea of what an architect is, does, and needs.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

There Are No Snow Days When You Work Remote.

There’s been a huge push towards working remote lately - but is it the best choice for everyone? With different personalities and different work styles, developers may or may not be a great fit for a remote-work lifestyle. This talk will explore how to decide when working remotely is a good fit for someone personally, and how to figure out it their current or potential employer is capable of supporting remote work in a way that allows employees to be successful. The meat of this talk will be HOW to make #remotelife work for you by discussing strategies, best practices, and boundary-setting + changing thought patterns to make remote work successful and fulfilling.

Speaker

Jennifer Wadella

Jennifer Wadella

Founder, Kansas City Women in Technology

Think Like a Trainer: Strategies for Improving Your Communication Skills

Think back to a time when you were in a conversation that could have gone better. Perhaps you said something the wrong way, or you walked away from the conversation not fully knowing if the other person even understood what you were trying to convey.

Technical trainers rely on effective communication as the foundation of everything that we do. We help end users to learn how to use software and adjust to new workflows, through the process of constantly adapting to different backgrounds, skill levels, and learning styles.

In this session, you’ll learn actionable strategies to begin thinking like a trainer, including:

  • Using active listening techniques to communicate with empathy.
  • Best practices for explaining technical concepts in non-technical terms.
  • Adjusting your communication approach for different communication styles.
  • Using problem solving skills to help you get unstuck during difficult conversations.

Speaker

Olivia Liddell

Olivia Liddell

Cloud Training Specialist, Cloudbakers

This Isn't Just a Conversation: The Art of User Interviews

Anyone who can carry a conversation can interview users, right? Not so. Gaining insight into user requirements, needs, and frustrations is a nuanced process. Without the proper training, even well-meaning researchers can lead, bias, and manipulate users into getting the answers researchers want--instead of getting the real story needing to be told. In this talk, Ash will guide you through the basics of conducting user interviews: * Picking the right interview type * Asking the "right" questions * Do's/Don'ts of Interacting with Users * How to interpret your results User research is difficult to do well and requires lots of practice. After this talk, you should have the resources you need to take the next steps to better user research.

Speaker

Ash Banaszek

Ash Banaszek

UX Associate, Union Pacific Railroad

Tour de .NET Core CLI

Poll a large audience of .NET Core developers, and you’ll find a breed that defies the heavy-handed IDEs of today. It’s inevitable. It’s becoming more commonplace. What are you really missing out on by not using Visual Studio? What does a day in the life of such a developer look like?

In this session, we’ll explore what the .NET Core CLI has to offer. From frequently-used commands to item and project template creation to integration with Visual Studio Code, you’ll leave this session with tips to boost your productivity. You'll also gain an understanding of what's going on under Visual Studio's hood when working with a .NET Core app.

Speaker

Scott Addie

Scott Addie

Senior Content Developer, Microsoft

TypeScript: Making JavaScript Tolerable

JavaScript has changed the world as we know it. It's applications are growing both in popularity and size. It is time that we give this language the respect it deserves. By leveraging TypeScript's type-system, your large JavaScript application code will be developed faster with fewer type-related bugs and allow for easier refactoring.

TypeScript is a superset of JavaScript that scales. Allow me to show you why I believe TypeScript makes JavaScript tolerable. Discover how TypeScript is backwards compatible to ES3, yet lets developers use the latest in the ECMAScript standards today. Become the most productive JavaScript developer you can by relying on TypeScript.

Speaker

David Pine

David Pine

Technical Evangelist (Microsoft MVP & Google Developer Expert), Centare

Unlocking the Mysteries of an Unfamiliar Codebase

You’ve been tasked with adding a feature to a large, crusty old JavaScript app that you’ve never seen before. How do you begin?

Learn how to analyze a legacy codebase so that you can confidently update it—even if it’s undocumented, disorganized, and confusing code with no tests.

As professional developers, most of our projects have one thing in common: We have to work in someone else’s code. It is rare to be blessed with a truly “green field” project where we have the privilege of writing the first line of code. More often, we join a project that is already in progress, or is nearing completion and needs some extra help, or has been in production for some period of time, untouched, and now needs to be modified or enhanced.

The first thing a developer needs to do when starting on such a project is to figure out how the existing software works. Our idealistic notions that the code will be neatly organized, clearly documented, and thoroughly unit tested often give way to the ugly reality of code that is undocumented, disorganized, and untestable.

To do the job of enhancing the software you first need to make sense of the code. This skills talk will teach you some techniques for analyzing unfamiliar code so you can get your job done without losing your mind.

Speaker

Randy Cox

Randy Cox

E-gineering

Using Spatial Data in SQL Server

More and more applications/reports require handling of geospatial data. You may need to store maps, calculate distance between points or look for the closest locations to your users. Don't pay fees to third party tools for geospatial functionality, SQL Server is here to help you. In the first half, learn the spatial data types and common spatial functions in SQL Server, and in the second, use the new JSON functions and In-Memory tables to create/query spatial data in SQL Server. Here's your chance to learn how to handle spatial data in SQL Server using modern ways.

Speaker

Hasan Savran

Hasan Savran

BI Architect, Progressive Insurance

What's All The Fuss About Serverless?

Dude, where's my server?! The word 'Serverless' can be a bit misleading, but this architecture style has exploded in the tech industry and offers a myriad of unique benefits. Unfortunately, real comprehension of this concept has been abstracted away just as much as the server—turning the word 'Serverless' into little more than marketing jargon. In this talk we'll define Serverless, work through a sample, discuss the benefits / compromises, go over real-world use cases, and examine the Serverless economy.

Speaker

Taylor Krusen

Taylor Krusen

Associate Developer Advocate, Smartsheet

What's my motivation?

How to design solutions that hit the mark by looking beyond just the given requirements to understand the underlying motivation behind the ask that often doesn't get documented and leads to suboptimal solutions. This session shows how to capture this information in the early analysis phase of projects and then how that information can be used in solution design modeling and product selection.

Speaker

Aaron Guldberg

Aaron Guldberg

Technical Architect

What's new in C#

The C# language team has been making some awesome improvements. In March 2017, we were given C# 7. This major release brought some powerful features such as: pattern-matching, tuple literals/deconstruction, and local functions to name a few. Since then the team introduced the notion of point releases. Expect to learn about all the features of C# 7, as well as the C# 7.1 and 7.2 point releases. Additionally, we'll take a look at the plan for C# 8.

Speaker

David Pine

David Pine

Technical Evangelist (Microsoft MVP & Google Developer Expert), Centare

Where The Web Is Going

The web is a strange place with many standards and browser vendors that all have to come together to make something useful. This talk looks at what's next for web technologies including ECMAScript 2018, Progressive Web Apps, Web Components, and HTTP/2. It then looks at how these standards come about and which groups set the direction. We'll discuss how the W3C, WHATWG, ECMA TC39, and IETF work together (or don't) to push the Web forward. You'll leave this talk better prepared for the web of tomorrow.

Speaker

Jared Faris

Jared Faris

VP of Solutions, HMB

Why Interfaces Work Well, and Why They Don’t

What do you need to do to make an interface attractive, easy to use and effective for the people using your product?

The workshop is for *people who need to design the interface for a software product. You might be a graphic designer, a front-end or UI developer, or just the person who decides what the interface looks like and how it works. *The goal of this workshop is to help you learn more about how people understand the world so that you can develop an interface that looks great AND works well. The workshop gives you knowledge and tools that will improve your understanding of WHY things work and HOW best to improve them

The best interfaces: • Give people essential information • Help people understand how to complete a task • Attract attention to important information and controls • Convey meaning • Have elements that are unambiguous and behave as expected. • Allow people to predict what will happen if they act

User Experience Design chooses elements for an interface that result in a product that is attractive, easy to use, and successful in reaching its goals.

Understanding how humans perceive and act can help you to make good design choices when you prepare the interface for your product.

How does human physiology determine how people understand an interface? • What you see versus what you understand o Color o Contrast o Size How does past learning influence current behavior? • The role of Mental Models and Expectations in great designs How do people think and make decisions? • How you think: o Memory o Decision Making What makes an interface easier for everyone to use? • What Interfaces should do: o Attract attention o Provide meaning o Be easy to understand • How you act: o Designing for Different Devices

The workshop will include: • Handouts to record your notes • Activities to try the tools introduced

You will create: A rough design for an interface that includes components based on what was learned in the course. Be prepared to work on an interface you a currently exploring or one that you think would be fun to design.

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

Why loop in JavaScript when you can map, reduce or filter?

Traditionally, when developers see large arrays of data their "go to" tool for parsing and searching has been the for loop. But JavaScript provides also provides a more declarative approach that can help you find what you're looking for in fewer lines of code that is cleaner, easier to read, and maintain. Come see how the map(), reduce(), and filter() functions can help you!

Speaker

Scott McAllister

Scott McAllister

Developer Advocate Lead, Smartsheet

Winning with Web Components

The bar for web development continues to increase. While web frameworks proliferate, the rise of the mobile web has made performance a major concern. Fortunately, web standards have evolved. A new set of web standards, collectively referred to as web components, give us the ability to make custom HTML elements.

With web components, you can build your own suite of custom elements that work with any JavaScript framework (or none at all). Angular, React, Vue, ShinyNewFramework.js... doesn't matter. You can build a single set of components and use them accross all of your sites. Because they are native browser constructs, applications built with web components also render quickly.

In this talk, you will learn about the web components standard and how to use them in your application. You'll learn about the why web components are useful, some libraries that can help you build them, and how to integrate them in your own applications. By the end of this talk, you'll be ready to build your own suite of web components.

Speaker

Dustin Ewers

Dustin Ewers

Software Consultant, Centare

Writing End-To-End Tests Using Headless Chrome and Puppeteer

End-to-end tests are great! They ensure a great experience for your users, prevent bugs, and save money. However, they also have a history of being brittle and slow... but not any more! In this talk we'll cover end-to-end testing conceptually, then use Headless Chrome and Puppeteer to write powerful tests that can run on top of any stack.

Speaker

Taylor Krusen

Taylor Krusen

Associate Developer Advocate, Smartsheet

WTH is a JWT

Chances are sooner or later your shiny new single page application will need authentication. Add some security and resource access control to that list as well. But how can we integrate all of this into a single page application that is entirely public? How can we ensure that our users only have access to the resources they are authorized to by hacking way in via the console? In this talk, the attendees will learn about l JSON Web Tokens (JWT) and see how they can be used to properly secure single page applications.

Speaker

Joel Lord

Joel Lord

Technical Evangelist, Auth0