Indy.Code() Sessions

A Developer's Introduction to Electronics

Are you a programmer? Odds are you have a love of Raspberry Pis, Arduinos, and other devices of their ilk. These devices are easy to program, especially for a developer like you, but when it comes to building circuits for them to control, you're pretty much just following recipes online without a lot of understanding of what's going on. This talk will correct that.

In it, I'm going to explain the basics of electronics and the components that are commonly used to build circuits. I'll starts with Ohm's Law and will then cover basic components including resistors, diodes, capacitors, transforms, relays, and transistors. I'll use these components to build some basic circuits and explain them. And, I'll control these circuits from an Arduino and my laptop to show them in action!

When we're done, you'll be able to build circuits that you can use for your own projects and have the knowledge on how they work. You won't know everything, but you'll have a wonderful start in learning to make and understand more complex circuits!

Speaker

Guy Royse

Guy Royse

Developer Advocate, Redis Labs

Agile Architecture

In this session we will discuss the use of Agile constructs within the domain of software architecture.  This will include an exploration of how to balance emergent designs with intentional planning.  Additional ancillary topics will also be addressed including: common architecture principles, guidelines for measuring good architecture, and an evaluation of agile techniques. By the end of the session, attendees will have a new perspective on architecture that will empower them to create flexible software solutions.

Speaker

Steve Green

Steve Green

CEO, Blue Rivet

An Introduction to Machine Learning

It's hard to avoid hearing about machine learning today. It seems that every business is making use, or in some cases misuse, of machine learning to improve how they do everything from hiring, to product design, to making it a feature in their products directly. Unfortunately, very few stories go past the surface layer of "this company / application uses machine learning". If you've heard those stories and are left wondering how they're applying machine learning, or what it is machine learning can even do, then two things are true:

  1. You're in good company
  2. You should attend this workshop

We'll cover the basics of machine learning. In particular, we'll look at:

  • What kinds of problems can machine learning solve?
  • Which algorithms are appropriate for a given problem?
  • How do those algorithms work from a formal perspective?
  • How do I evaluate and visualize the performance of a machine learning algorithm?

We'll do this by treating the workshop as a very condensed version of an ML course. We'll interleave labs and lectures throughout the day to give attendees a solid foundational understanding of machine learning techniques as well as some practical experience implementing and using the algorithms. Lab scaffolding code and examples will be provided in python, with reference implementations available after the conclusion of the workshop for self evaluation.

Attendees will leave with:

  • A better understanding of what machine learning can and can't do
  • A solid understanding of how to evaluate machine learning algorithms
  • Familiarity with open source implementations of
    • machine learning algorithms
    • evaluation of ML algorithms
    • visualization of data, ML algorithm performance

Speakers

Robert Herbig

Robert Herbig

Lead Software Engineer, SEP
Jordan Thayer

Jordan Thayer

AI Ambassador , SEP

Angular and The Case for RxJS

When choosing Angular to build a front end app, it can seem like RxJS is just one more thing to learn, and there’s no easy transition coming from another framework. But RxJS is efficient and expressive! We declare relationships between entities, describing the what not the how. The basic sequence operators, map, filter, and reduce, are probably familiar from using them in array chains. RxJS is a core part of the Angular framework used in everything from Reactive Forms to the HTTP module. Harnessing observables with Angular’s async pipe is essential to building clean and concise components. Developers can overcome the RxJS learning curve by focussing on core concepts like hot vs cold observables, piping observable operations, and a few of the most common operators.

Speaker

Anything You Can Do (I Can Do Better)

There is a plethora of choices when it comes to cloud vendors. Is there one really better than the others? Does that maybe depend on the service you are needing to use? In this session, a Google GDE (Developer Expert) and a Microsoft MVP (Most Valuable Professional) show off how their cloud platform of choice does things better than the other. Key overall features of Microsoft Azure and Google Cloud Platform will be discussed and compared along with features of some of the bigger services within the two cloud vendor’s offerings.

Speakers

Chad Green

Chad Green

Director of Software Development, ScholarRx

ASP.NET Core Development Workshop with CI/CD

Sometimes all you need is a little push to make a leap to a new technology stack, but the learning curve can after push back against a desire to move foward. In this full-day workshop we will work through the entire software development lifecycle of a project created with ASP.NET Core, Entity Framework, and Azure DevOps. In this full day session we will cover. * Basic project Architecture * Code Re-Use and Dependency Injection * Entity Framwork Core Basics, including databse migrations/deployment * Unit Testing Implementation & Limitations * Response and Object Caching * Azure DevOps Builds & Deployment At the end of the day attendees will be able to create their own projects from end-to-end with a solid platform including Continous Integration/Continous Development practices and unit testing.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Automating Your Automation: The Care and Feeding of Jenkins

If you’re like 70% of continuous integration and delivery users out there, you’re using Jenkins, the powerful and popular automation server. Jenkins runs on many different operating systems, and can build and deploy applications in a variety of languages, across many different platforms. Almost no matter where you are in your automation maturity, there’s always another level to reach: if you’re using the basic point-and-click of freestyle jobs, you can move to the scripted context of pipelines. Once you’ve explored pipelines, you can learn to leverage shared global libraries to promote code reuse across multiple pipelines. In this session, you’ll learn basics about Jenkins, specific use cases for different job types, and how best to manage your automation as it grows from one job, to ten, to one hundred. Finally, you’ll learn how to create your entire Jenkins job collection from scratch, at the push of a button.

Speaker

Jeff McKenzie

Jeff McKenzie

Practice Manager, Applications & Infrastructure, Insight Digital Innovation

Azure Durable Functions for Serverless .NET Orchestration

Durable Functions is a new open-source extension to Azure Functions that enable long running orchestrations and stateful processes to execute as serverless functions. Learn how to write durable functions, and patterns and best practices to write simple or complex stateful orchestrations.

Speaker

Chad Green

Chad Green

Director of Software Development, ScholarRx

Azure Fundamentals Training Workshop (AZ-900)

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

Speaker

Brian Gorman

Brian Gorman

Lead .Net Developer, Major Guidance Solutions

Beyond Spaghetti: Cooking up better applications with inspiration from the culinary world

Software development is a relatively young field. What is considered “beautiful code” one day can be an anti-pattern the next. What if there was a way to write software that is easier to maintain, quicker to write, and more consistent by taking some timeless inspiration from the more established, culinary world?

"Mise en place" is a cooking term that describes the planning and preparation to assure everything is in its place before we start cooking our meal. Similarly, the creation of shared component libraries or design systems can help us build out parts of our application in isolation. In this talk, we will examine how using this strategy can help everyone on the team utilize these same ingredients to build, discuss, and design ultimately better software. While the examples are React-based, the concepts apply to other paradigms as well.

Speaker

Ryan Lanciaux

Ryan Lanciaux

Founding Member, Spaceship Studio, LLC.

Blending Product Thinking with Architecture

Too much design up front and you are bumping into the design all of the time (and losing time). Not enough design and your system can crumble in reality. How do you blend architecture so you have the right decisions at the right time, and give them enough due dilligence? How do you embrace cloud and microservices and not risk getting into different failure scenarios or overly complicated maintenance and ripple effects?

In this session we will walk through visualizations that help teams blend product thinking with architecture. Along the way, we will look at microservices and domain modeling as well as chaos engineering and fault tolerance - blending all of these into a context that is consumable by all and gives the right emphasis at the right time.

Leave this session with simple visualizations and approaches that you can apply immediately to start blending product with architecture, especially if you are looking to run in a cloud world.

Speaker

Joel Tosi

Joel Tosi

Hands-On Coach, Dojo & Co

Breaking Down the Monolith: A journey toward CI/CD

When you're creating a brand new system, you can set it up from the beginning to work well with a Continuous Integration and Continuous Delivery (CI/CD) pipeline. With legacy systems, this isn't so easy. You may find yourself dealing with tightly coupled code, patchy test coverage, or bloated databases. But this doesn't mean you have to give up hope for taking advantage of the CI/CD model. Join me as I take you on a journey from deploying a monolith of code every two weeks to deploying incremental changes twice a week with lesk risk and more value to the customer, and see how we've changed over time and where we still have room to grow.

Speaker

Lorien Rensing

Lorien Rensing

Software Developer III, Making Everlasting Memories

Build a Full Stack .Net Core MultiTenancy Web Application using ASP.Net Boilerplate

In this session, we'll go from the ground up to a fully functional .Net Core Web application using Angular on the front-end [options to use Vue.js or React exist]. This is accomplished with a free framework: ASP.Net Boilerplate.

We'll start by getting a project up and running, which does have a few tricks. Once we're up and running, we'll be able to move very quickly through some of the key points of the layered architecture.

We'll build a model and create the code-first migration to set the database using Entity Framework Core. We'll then build an application service that leverages dependency injection to work against our data. We'll Swagger our service so that the front-end can leverage the automatically generated service proxies.

Our UI layer will leverage Angular and will be fully built in typescript with less and html. With a few notes about some wiring most of the "hard" work of angular is handled for us, and we can concentrate on coding our systems. [NOTE: Options for Vue.js or React.JS exist. This is not an Angular talk, I just choose to use Angular on my front-end implementation].

Authentication and permissions are a breeze, as are managing roles and user permissions, making setup for multi-tenancy with various user roles fairly painless. This is accomplished through an admin user that can manage users and roles, and also by locking down various methods in our service with code.

The guys at Volosoft have thought of mostly everything - even setting up a built-in multi-lingual architecture. Furthermore, if you need a more powerful solution that has built in masquerading, a full version of the product is available for purchase at ASP.Net Zero.

Speaker

Brian Gorman

Brian Gorman

Lead .Net Developer, Major Guidance Solutions

Build a performant and polyglot inter service communication with gRPC in .NET

In this session we will introduce gRPC as a modern high-performance RPC framework for inter-service communication. We’ll look at the difference between gRPC and REST-based communication by exploring the pros and cons that these technologies offer; for example, gRPC uses HTTP/2 as base transport protocol and ProtoBuf encoding for efficient and fast communication. We will use C# to build client and server gRPC components defining proto service definition contracts. Then we will interop with middle-tier services implemented in Python without change any C# code. Next, we will explore tooling for the code-gen to implement the server and client components and how-to interop easily with other programming languages. By the end of this session, you will have a practical understanding of how to use gRPC to implement a fast and polyglot system.

Speaker

Riccardo Terrell

Riccardo Terrell

Senior Consultant, BDS

Building a secure user authorization story

Every application has a login button. In this session, we'll cover some techniques for handling user authentication in a secure manner, along with covering proper user flow, including user registration, logging in, and password resets. At the end of this session, you'll be armed with the knowledge to feel confident in the security of your authentication story.

Speaker

Johnie Karr

Johnie Karr

Sr. Software Engineer, ScholarRx

But It was Logged! Practical Logging & Monitoring with .NET Core

.NET Core makes writing log entries a breeze within your applications, however, that is where the out-of-the-box simplicitly ends. So you have decorated your code with all of these pretty log messages that are designed to make your life easier, but then what? Have you actually reviewed them? Something bad happened, did it tell you? What about confidential information, have you limited that from being logged?

Well, this session is designed to help take your logging from IMPLEMENTED to USABLE. Logging is great, but we have so many questions to answer, including where you store the logs, how you get notifications etc. In this code-focused solution we explore the following concepts, with detailed examples.

  • Where to log entries to, and flexible configurations
  • Monitoring and escalation of log entries
  • Integration with logging & external assemblies
  • Configuration & build systems with logging

At the end of the session attendees should be able to work with logging and exception handling in .NET Core effectivly.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Cascading in CSS

CSS frustrates many designers and developers. Tring to target an object to style only to have some other line of CSS affect it instead can be frustrating.
The cascade can be difficult. So many things don't make sense. Why is everything in global scope? How does Angular encapsulate components? Why won't my CSS work?

Learn how to work with the cascade. Spot and fix issues with CSS specify faster.

Speaker

Sarah Giles

Sarah Giles

Front End Web Developer, Herff Jones LLC

Continual Product Discovery with StoryMapping, OKRs, and more

Description

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

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

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

You will use:

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

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

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

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

Speaker

Joel Tosi

Joel Tosi

Hands-On Coach, Dojo & Co

Creating and consuming a private Nuget repository using Azure DevOps

There are benefits to using Nuget package manager for your libraries. When you have libraries that contain propitiatory code, or are just for your organizations internal use only, you don't want to expose those libraries to the open marketplace. That's where a private repository comes in. During this session, we'll discuss some of the reasons why package managers are a good idea, and we'll demonstrate how to create a private repository in Azure DevOps for your organization, and show how to publish to and consume that repository.

Speaker

Johnie Karr

Johnie Karr

Sr. Software Engineer, ScholarRx

Design Thinking for Inclusive Collaboration

How can Design Thinking help us build more collaborative and inclusive teams? The process involves seeking out diverse perspectives to better understand user needs. This reduces the impact of our cognitive biases, which then also helps to find alignment across differences and leads to more creative solutions. It changes the conversation by reframing the problem around user-driven criteria. Design Thinking involves and values all team members throughout the process and results in building the best solution for our users. As we walk through the process step-by-step, attendees will gain insights they can leverage to introduce a design thinking mindset within their organization and learn how it can be used as a tool to collaborate effectively within and across teams.

Speaker

Designing Real World Artifacts for the Web

The Web is not Print. Many designs start their life in software such as Sketch and Photoshop. But this fails to acuratly portray the media that is the web. Streamline the prossess by designing with HTML and CSS. Save time in the development prossess by handing off usable code artifacts to your developers.

Speaker

Sarah Giles

Sarah Giles

Front End Web Developer, Herff Jones LLC

Developing the Developer

The road to becoming or advancing as a developer can be daunting. The amount of knowledge that is required to become a developer continues to increase in scale and complexity. Developing your skills, both professional and technical, can be complex and time consuming. Professional development skills can be as complex as learning a new programming language. What if you could get a download of knowledge that could speed up your career journey?

In this breakout session, the presenter will focus on ways to assist with creating a road map for a starting developer, giving tips for the intermediate professional, and highlighting ways for managers to nurture their developers to gain foundational and professional skills. The goal of this talk is to showcase the five things every developer needs. Major topics will include: Communication, Practices, Advanced Skills, Core Attributes, and Acceptance.

By the end of the session, the audience will have learned to embrace the journey towards mastery and leave with a spark to continue pushing to develop themselves.

Speaker

Steve Templeton

Steve Templeton

Information Systems Engineer, Indiana University

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

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

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

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Dungeons, Dragons, and Graph Databases

Are you an adventurer? Do you want gold? Experience? Levels? Of course you do! And where do you get these things? The dungeon, where else? That wonderful container of all things adventurous! But, unfortunately, dungeons aren't setup for the convenience of adventurers who wish to extract these fine things. It’s almost as if the dungeon master just made the dungeon up at random. And so you wander about and you get what you get.

But you’re also a developer. You could build a database of all the rooms with their shiny and monstrous content. Then you could query it and find the optimal route to get the gold and the experience and the levels. But how would you model this data and write these queries? The rooms. The corridors. The monsters. The sparkling hoozits. That’s a lot of entities to relate to each other. And that’s gonna be a monster of a SQL query. Whoa–look at that JOIN! Better get my text editor ready.

Or, you could use a graph database. A graph database allows you to model these relationships simply and intuitively with nodes and edges. Being schema-free, you can evolve your graph as you encounter new things such as traps or secret doors. And, using the Cypher query language, you can write elegant and easy to understand queries that find the best routes to get the stuff adventures desire most.

In this talk, I’ll use the aforementioned example to introduce you to the concepts of graph databases. I’ll compare how to solve this problem with a relational database and how a graph database makes it easier. I’ll show you how to query and modify your graph. And, as no talk would be complete without a live demo, I’ll do it all using a real-time procedurally generated random dungeon (I am a dungeon master after all).

So come, have a flagon of mead as you learn about graph databases, optimize your dungeon crawl, and equip another weapon in your quest for better software!

Speaker

Guy Royse

Guy Royse

Developer Advocate, Redis Labs

Effective Unit Testing with .NET Core & XUnit

Documentation for .NET Core is great and includes detailed examples regarding Unit Testing. However, these examples often skip over the real-world issues that arise with unit testing. What happens when you use that one thing that Microsoft hasn't actually moved from an Extension Method? What happens if you want to mock a static object that we might use every day, such as DateTime or TimeSpan? In this session we take a dive into real-world unit testing strategies for .NET Core applications, focusing on quickly and easily achieving 100% unit test coverage.

Attendees will leave with a set of examples to help implement effective unit testing, quickly, upon returning to work.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Exploring NestJS Ecosystem

NestJS is an emerging progressive NodeJS framework. Powered by ExpressJS under the hood combined with the capabilities of TypeScript along with Angular's concept of modularities, NestJS enables developers to build efficient, reliable and scalable server-side applications.

A deeper dive into some of NestJS's toolings either from NestJS or from the community ranging from Document Driven Development (Swagger), Configuration to Background Jobs (Bull). Attendees will have a better understanding of what's available out there in the NestJS ecosystem as well as put some HOW-TOs regardings implementations and common patterns under their tool belts using the tools introduced in the session.

Speaker

Chau N Tran

Chau N Tran

Development Engineer, ArchitectNow

Focus on People

In 2008 my mom was diagnosed with ALS. Over the next 18 months, ALS stole more and more abilities from my mom, including her ability to speak. But what ALS took, software was able to help restore.

While not everyone will receive an ALS diagnosis, most of us will interact with software on a regular basis. As a result, software engineers need to approach writing software with this in mind.

This talk explores the role of software engineering in human flourishing. You’ll learn how the software you write today impacts the lives of your users, and how you can make that better. You’ll also learn ways to improve interactions with your team, considering them not just as coworkers but also people.

Speaker

Nate Taylor

Nate Taylor

Aviture

Front-end Web Development with Angular 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, 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

Gaining a Competitive Advantage in Speedruns Using AI

Speedrunning is trying to beat some game as quickly as possible. It's a popular way to play games with a thriving community of players and spectators. Some games are popular enough that there are weekly competitions with running commentary being broadcast on platforms like twitch. Speedrunning breaks down into two major skills: memorization and execution. Execution is how well you can drive the game, in terms of input timing, combat strategy, and so on. Memorization is how much you know about the layout of the game. When should you go to this location, what does it net you when you go there. As more people speedrun a game, the number of competitive ways to complete the game dwindles until there is only one acceptable route, and everything is execution.

My favorite flavor of speedrun is the randomizer. Randomizers take the standard locations and enemies of the game and mix them all up at random. This is exciting from a gamelpay perspective because it diminshes some of the power of memorization, making execution the most important ability by far. It's also exciting from the perspective of artificial intelligence. There are two classic AI problems hiding in every run of every randomizer. Automated planning and stochastic shortest path solving.

Players expect to be able to complete the game independent of the randomization. The ability to win any instance is something every randomizer guarantees. It turns out that checking if a given instance of a randomizer is winnable, or feasible, is an example of a classic problem in artificial intelligence: planning.

The player would like to beat the game as quickly as possible. They know roughly what actions they can take. Each action has several possible outcomes; the player may know the space of all possible outcomes, but until they take the action, they won't know which outcome they'll get. This is exactly what a stochastic shortest path problem is.

In this talk, I'll explain in detail how to cast these two problems from videogames into their classical AI models. I'll explain a technique for solving each, and show the performance of open source tools solving the problems.

The audience will learn: * That we encounter AI problems frequently in our daily lives * * Even if some of them are a bit silly * How to model a well defined and constrained problem for solving using open source AI tools * That there are open source AI tools for tasks other than machine learning * The gist of two algorithms from the AI literature for solving large classes of problems: * * A* * * Q-Learning

Speaker

Jordan Thayer

Jordan Thayer

AI Ambassador , SEP

Getting Good Data Quality, Skipping Bad Analytics

Data quality issues can plague a Google Analytics account, making analysis difficult, time-consuming, and, ultimately, bad marketing conclusions. Yet having clean, readable metrics that aids the objective for your website or app is possible.

This presentation will cover best practices with Google Analytics, Google Tag Manager, and associated diagnostic browser plug-ins. Attendees will be able to note what to expect with setting analytics tags, data layers, page speed, and identify cause of metric errors.

Speaker

Pierre DeBois

Pierre DeBois

Founder, Zimana

Getting Started with Julia

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

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

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

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

Speaker

David Body

David Body

President, Big Creek Software, LLC

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

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

Half a Dozen Ways to Fail at Python

Python beginners have trouble getting started because there are multiple routes to install Python and packages. A veteran Python developer goes over the top 6 most common issues people experience when working with Python and provides tips that will save you time and your sanity.

The Zen of Python states: “There should be one– and preferably only one –obvious way to do it. Although that way may not be obvious at first unless you’re Dutch.” This talk speaks directly to that tenant and helps new people get started on the right foot with Python and teach seasoned users of Python some new tricks as well.

Speaker

Calvin Hendryx-Parker

Calvin Hendryx-Parker

CTO, Six Feet Up

Hey, You Got Your TDD in my SQL DB!

When should we test our data? From an application development perspective, a unit test against a database isn't a unit test at all. Which makes sense -- connected systems introduce overhead and dependency, both of which reduce stability and decrease productivity during test-driven development (TDD). But if we wait for integration testing, critical functionality can get missed. In this session, we will discuss strategies for filling the data testing gap, directly within a Microsoft SQL Server environment. If you do a lot of work in T-SQL but aren't familiar with TDD, you'll learn the why and how of test-first development. If you're accomplished with unit tests, but never tried them in your database, you'll learn how to apply familiar concepts like setup, mocking, and assertion. We'll spend most of our time walking through a solution based on a real-world project, specifically using the open source tSQLt database unit testing framework.

Speaker

Jeff McKenzie

Jeff McKenzie

Practice Manager, Applications & Infrastructure, Insight Digital Innovation

How The Heck Would I Integrate Serverless Into My Legacy Application?

Exploring serverless computing can be discouraging. It sounds amazing and starts your brain spinning about all of the potential applications, but it's not always easy to see where your legacy application may be able to take advantage. In reality, both Azure Functions and AWS Lambda can easily be used to enhance applications and provide a brand new perspective.

In this session, we'll explore some easy applications of serverless that can be added to existing brownfield applications, like simple monitoring, IOT integration, and large file processing. In addition, attendees will learn about situations in which where serverless computing may not be a good fit and a more traditional approach may be warranted in an effort to avoid the growing pains of learning a new technology unecessarily.

Speaker

Brett Berliner

Brett Berliner

Principal Software Engineer, Insight Digital Innovation

How To Survive Your Legacy Migration Project

Everybody has a legacy system. It's hard to learn, it's hard to extend, it's hard to fix, it's hard to test. It probably doesn't perform well, might not be very stable, and it's certainly not the part of the application anybody is excited to work on. Even if you don't have a whole system, you have legacy code that you wish you could get rid of.

Could you just rewrite it? Should you?

I've lived through several large legacy rewrites. Some crashed and burned. Some people got fired. Others made it to production at great cost to those involved. Others actually went well and the world became a better place. How did that happen?

I'll revisit some scars and share lessons learned along the way so your legacy migration has a chance to make your world a little bit better, including: * Do you need to really rewrite it? * No for real, do you really need to? * Ok, so you have to... What's your plan to do it piece-by-piece? * Who is your team? Who are your allies? And... the three people you didn't know you needed! * How to throw things off the boat so you can remain afloat * Whew, you've finished... how do you avoid doing that ever again?

Attendees will gain advice on dealing with rewrites and massive refactors of antiquated systems, which is common in companies of almost all ages and sizes. There will be a discussion of architectural and technical patterns that can be applied to legacy migrations, and there will be tips on reducing stress with business stakeholders and engineering organizations during high-stakes, marathon projects.

Speaker

Roger Deetz

Roger Deetz

VP of Technology, Springbuk

How to use GeoSpatial Data in SQL Server

If you are interested in learning more about Spatial Data but don’t know where to start, this session is for you. We will begin by focusing on what Spatial Data is through examples and interactive demos. The goal is to show how Spatial Data can improve your professional experience and serve as an asset to your business.

I will introduce you to Spatial Data in the SQL server and show how to import data into SQL Server. We will focus on demonstrations of the SQL Server 2016 and JSON functions used to create geoJSON objects from Spatial Data. Next we will cache these objects by using In-Memory tables with the help of SQL Server 2017.

Join me as we explore how to use SQL server to handle your Geospatial data needs.

Speaker

Hasan Savran

Hasan Savran

BI Architect, Progressive Insurance

I Feel the Need for Web Page Speed

We demand high performance web applications. To build them we need every single piece of information to help us find actionable ways of speeding up our applications. In this session learn how to use the performance API together with common browser performance tooling to determine down to the method level how long our pages take to perform operations. We’ll also touch briefly on instrumenting up popular frameworks such as React & Angular, running performance checks on mobile browsers, and free open source tools that can help you diagnose and monitor performance.

Speaker

Bill Dinger

Bill Dinger

Senior Technical Lead, Ameritas

Intentional Time Management with Pomodoro

The fast-paced world of software development puts constant pressure on our schedule. How can you ensure we are making the best use of our time? The Pomodoro Technique helps you use your time wisely. It helps you to think clearly about the work you are doing. It gives you a way to balance important tasks and urgent requests. It helps you built import habits and track how well you are sticking to them. In this session, you will learn about the benefits of the Pomodoro Technique and how you can implement it for yourself.

Speaker

Eric Potter

Eric Potter

Technical Strategist, Aptera Inc

Intro to React Native with Expo

Intro into building cross platform native mobile apps using Java Script. What is React Native? Benefits VS disadvantages analysis. How it works on mobile Devices. What is Expo? How Expo works with React Native. Why choose Expo.

Speaker

Yair Segal

Yair Segal

CEO/ Chief architect, Peach Software Inc

KISS my SASS

For almost 15 years we have had Syntactically Awesome Stylesheets (SASS) to help us write our CSS. But are we really using sass to its fullest? We know about variables, and nesting properties is nice, but what else can it do for us? There is a lot that SASS can do that often goes ignored or underutilized. Furthermore, mixins, includes, and functions, can change how we architect our code. In this talk we will go over some of the more advanced features SASS provides, what their benefits are, how they affect the CSS output created, and implementation use cases.

Speaker

Martine Dowden

Martine Dowden

UX / UI Developer and Designer, Andromeda

Kubernetes Kitchen

You’ve been to a restaurant before, right? Have you noticed how everything is structured? Everyone has a job and there is a chain of command. You can’t just walk into the kitchen and tell the cook how you want your steak done. Kubernetes is actually very similar to this. You will deploy some pods that do specific things and set the rules of communications that dictate how they all talk to each other. By expanding on the idea of a restaurant, the speaker will slowly introduce some of the basic concepts behind modern devops in a fun and easy to understand way. The attendees will come out of this talk with a whole new perspective on what kubernetes does and how to apply this in their software development practices.

Speaker

Joel Lord

Joel Lord

Developer Advocate, Red Hat

Lowering in the C# Compiler

A compiler translates a program written in one language into an equivalent program in another language; typically, the source language is a high-level language (C#) and the target language is a low-level language (CIL or Common Intermediate Language). A common technique along the way though is to have the compiler “lower” from high-level language features to low-level language features in the same language.

The C# compiler use the Lowering step quite a bit. Essentially, every new language feature we’ve got since C# 2.0 is lowered to C# 2.0 and then compiled to CIL. You’ll be surprised at what all the C# compiler lowers and to what it lowers it to.

In this talk we’ll take a look at all the hard work the compiler does for us as well as how the C# team brings us new features without the need to change the runtime. This talk will also expose you to having a better understand of the performance and/or memory implications of the code you write. A real eye opener!

Speaker

Shiv Kumar

Shiv Kumar

Senior Solutions Architect, Applied Information Sciences

Machine learning made it easy with ML.NET

Break into the World of machine learning, which is both available and easy for .NET developers. It’s imperative in today’s world to be able to make fast decisions based on real-time data. In this session, you will learn how easy is to start using machine learning in your .NET applications via ML.NET in F# to make split-second evaluations. This session demo includes several code examples to cover different machine learning algorithms for useful cases. You will walk away from this session with knowledge on how to leverage functional approaches in combination with ML.NET, to maximize your business success.  

Speaker

Riccardo Terrell

Riccardo Terrell

Senior Consultant, BDS

Metrics - Moving from what is easy to what matters

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

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

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

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

Speaker

Joel Tosi

Joel Tosi

Hands-On Coach, Dojo & Co

Modern patterns of concurrent and parallel programming in .NET

Become the master of the multicore domain. Learn how to harness the powers of parallel computation and multicore computation to dominate peer applications in finance software, video games, web applications and market analysis. To yield the most performance, computer programmers have to partition and divide computations to maximize the performance while taking full advantage of multicore processors. Start your path from Padawan to Jedi, after this workshop you will be ready to return to work and have code bend to your will.

Concurrency, multi-core parallelism, and distributed parallelism are powerful and accessible. These computing concepts promise big impacts on the full spectrum of software applications, including video games, web applications and market analytics suites. Programmers of these products know how to partition computations over large distributed datasets in order to take full advantage of modern hardware and computing environments. These programming skills are not easy to master. This course will introduce technologies and tools available to developers at every level who are interested in achieving high-performance, reliable and maintainable code through functional-style parallelism and concurrency.

We are facing a new era of geographically-distributed, highly-available systems with processor designs that are scaling out in core counts quicker than they are scaling up in core speeds. In keeping up with performance expectations as complexities and dataset grow, scaling out software architectures over these modern computing resources is one of the biggest challenges facing developers today.

This course will introduce you to technologies and tools available to developers at every level who are interested in achieving exceptional performance in applications. You will gain an insight into the best practices necessary to build concurrent and scalable programs in .NET using the functional paradigm, which covers OnPrem and Cloud based applications.

Speaker

Riccardo Terrell

Riccardo Terrell

Senior Consultant, BDS

My Browser Does What?

The Web evolves quickly. We are far away from the days of Marquees and Blink. But learning the latest features of the latest ECMAScript implementation or the newest PHP framework isn’t everything. New Web APIs are constantly added to the browser. Did you know that your browser can process audio feeds, that it can connect to Bluetooth devices, or that it can send you notifications? Vendors are extending the capabilities of browsers more and more, especially for mobile devices. In this talk, attendees will learn some of the latest features available in their browsers right now and some that will be available in the very near future.

Speaker

Joel Lord

Joel Lord

Developer Advocate, Red Hat

New SQL Server Features for Developers

Latest SQL Server versions added many new features and services to its database engine. I will cover the latest features of SQL Server 2017 and 2019 for developers in this session. Don't miss it!

Here is the list of features I will cover in this session.

  • Using Graph Tables in SQL Server
  • Temporal Tables for Auditing
  • How to run R Script, Python and Java in SQL Server
  • Using Clustered Columnstore Indexes
  • Using Memory Optimized Tables
  • jSON in SQL Server

Speaker

Hasan Savran

Hasan Savran

BI Architect, Progressive Insurance

No SPA Framework Necessary

What’s in a framework? Angular, React and Vue offer rich features and functionality to help developers building SPA solutions. Have you ever tried to build a SPA solution without a framework? This session will look at building one such solution using nothing more than vanilla HTML, CSS and Javascript to create a simple multi-page SPA solution. Over the course of the session we will build the site structure, a router, multiple pages. We will also look at a few of the tools available to help in the process.

Speaker

Victor Pudelski

Victor Pudelski

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

Packaging your world with NuGet

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

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Rescuing your GIT Repositories using Reset, Revert, Rebase, and Cherry-Picking

In this session, we're going to review and use some of the more powerful GIT commands to rescue our repository. We'll look at the Reset, Revert, Rebase, and Cherry-pick commands and then examine scenarios when each can be used effectively to rescue or make critical changes to our GIT Repositories.

Speaker

Brian Gorman

Brian Gorman

Lead .Net Developer, Major Guidance Solutions

Rise of the State Machines

Come with me if you want to live... without confusing state management! State machines enforce a simple set of rules for your application state - a single state is allowed at any given time and only certain transitions can be made between states. These explicit rules lead to more predictable code and fewer bugs. In this talk, we'll discover what state machines are and learn how they can be incorporated into modern applications. We'll also see how using state machines can help communicate meaning and encode business logic across teams (and beyond just developers). You'll leave with an understanding of how to effectively create and use state machines for your own applications while keeping the business logic clean and declarative. Terminate complexity with state machines! 👍

Speaker

Mat Warger

Mat Warger

Senior Consultant, Keyhole Software

Securing a WebAPI with JWT Role-Based Authentication

Setting up a database table to store user information and have a webAPI method to login is just the beginning. Once logged in, returning a token for subsequent calls can make staying signed in convenient. Save the initial token passed back by the API and then add that to the header of future calls. In this token you can store roles and policies to further secure the application. This course will review the roles-based authentication and even show how to use an Enum to set those roles allowed to call certain methods.

Speaker

Victor Pudelski

Victor Pudelski

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

Serverless for Startups: Launching Apps Faster than Ever

One of the critical components of any startup company or pilot project is the ability to “fail fast” - to rapidly develop and test ideas, making adjustments as necessary. Learn how one startup team leverages serverless architecture to get app ideas off the ground in hours instead of weeks, greatly reducing the cost of failure and experimentation.

You'll learn how to:

  • Launch an app quickly
  • Add features orthogonally
  • Integrate with 3rd party apps in minutes
  • Control operating costs

Speaker

Michael Dowden

Michael Dowden

Product Architect, FlexePark

Sustainable Accessibility: Integrating accessibility checks into your CI/CD pipeline

Accessibility is important, not only for your users but also to meet legal requirements for certain levels of compliance. Unfortunately, most companies lack developers and quality assurance analysts who are trained to produce and test accessible user interfaces to industry-standard levels. Furthermore, dev and qa testing for ADA compliance takes time, and can often be forgotten or de-prioritized by companies that have limited resources. In this talk I will discuss: 1. Why accessibility is important 2. The accessibility standards put forth by the ADA in WCAG 2.1 3. How we have leveraged automated accessibility testing tools into our CI/CD pipeline 4. The impact this integration has had on our ability to maintain website accessibility across multiple projects, even when developers have little to no accessibility training going in.

Speaker

Ashley Stove

Ashley Stove

Software Developer, Aptera Software Inc.

Testable Vanilla Javascript

When a small feature is being developed, one of the first things to get ignored are tests. Developers from different backgrounds may have occasion to write Javascript, but wish to use the same testable structures they are used to. Dependency Injection is a structure that allows code to be extremely testable by allowing something outside of a function or object to pass in dependencies. While Javascript has its own conventions regarding code style, there are few best practices for using Dependency Injection (DI) or Inversion of Control (IOC) containers outside of a front end framework. Even worse, most existing IOC container solutions for JS require significant refactoring of legacy code. The good news is that Javascript code can easily be written or refactored minimally so it is testable without requiring an advanced framework. With the increased need for Javascript knowledge, developers focusing on server or desktop platforms are beginning to find themselves outside of their comfort zone: maintaining legacy JS.

I have identified 5 basic patterns for adding testability to vanilla JS code that should allow developers with backgrounds in Javascript, AngularJS, PHP, and Java to feel at home. Each pattern is introduced, shown how to use, and shown how it is implemented under the hood. All examples are capable of running natively in legacy browsers.

Speaker

David Ragsdale

David Ragsdale

Software Consultant, Fusion Alliance

The Dungeon Master's Guide to DevOps

Every good Dungeon Master needs a guide to help their party adventure through the world of DevOps. From the tools necessary to common monsters found along the way. Help your party succeed at a critical part of delivering quality software.

We'll go over the full CI/CD cycle: builds, commit hooks, static code analysis, pull request review tools, automated linting, QA/Security/Release automation and build automation. Gained from years of practical experience I’ll share what has worked best on projects cross industry and from teams ranging for 2 to 140.

Speaker

Bill Dinger

Bill Dinger

Senior Technical Lead, Ameritas

The Sounds of Software

It's 2019 -- let's get past the antiquated stereotypes of flighty musicians and rigid software developers. These ideas don't represent the crossover between technology and the arts; in fact, they ignore that music plays a large part in the lives of many software professionals.

In this session, we'll explore the connections between software and music, including how tunes can enhance situations as diverse as heads down production time and the bonding of highly collaborative development teams. We'll also demo some programming languages that create digital music, in order to see a fully realized combination of code and melodies. Whether you're a garage rock aficionado or a Beethoven fan, attending this session will give you plenty of ways to harness your inner artist to improve focus, creativity, and thought process in day-to-day work environments.

Speaker

Brett Berliner

Brett Berliner

Principal Software Engineer, Insight Digital Innovation

The Tribe: Metachallenges in Software Development in the Next Ten Years

Just how fast are your current platforms and processes becoming obsolete? Possibly faster than you imagine. New platforms, such as Google Flutter, the Uno Platform, and Zoho Creator, are challenging the monolithic way we produce apps now. New cloud-based capabilities promise to transform the architecture of your apps, and allow capabilities in them that would have been impossible just a few years ago. In this session, Billy Hollis will ask you to question just about everything you do in developing apps, and help you see some of the ways you can prepare for the inevitable changes coming in software development. And he'll do it with his trademark humor, so that you'll have fun along the way.

Speaker

Billy Hollis

Billy Hollis

Next Version Systems

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

Throw Away Your Resume

I threw away my resume 13 years ago, and haven't looked back. Why? I'm all-in on my workplace culture. What would it take for you to plant your roots and be all-in? Research shows, for most technologists, the key is an outstanding workplace environment and a culture that helps them thrive and promotes work-life balance. Join me for a story-filled keynote about the importance of culture and why you (and your company) should place more emphasis on it, so your team members can throw away their resume and be all-in.

Speaker

Keith Elder

Keith Elder

Sr. Technology Evangelist, Quicken Loans

Tools to Make Teams More Effective

The "digital age" could well be better described as the "teamwork age". A team is required to tackle the toughest and most complicated problems we face. Sometimes, even a team of teams. However, getting individuals to work together towards a common goal is not an easy feat.

Effective communication, common purpose, and shared language are the primary predictors of success for a team. I will talk about some techniques which can produce better solutions, faster, with better morale:

  • A framework the team can use to create a shared vocabulary and better understand each other
  • How to effectively using Retrospective meetings to to make the team better as a whole
  • Visualizing work which is in progress, to avoid miscommunications

Speaker

Robert Herbig

Robert Herbig

Lead Software Engineer, SEP

TypeScript - Beyond the Basics

TypeScript enables web developers to improve the clarity and reliability of their code. It also enables more powerful tools for writing code. This led to its rapid rise in popularity. But what can it do for you beyond just adding types to your variables and parameters? In this talk, we look at some of the more advanced features in the language that can help you deliver valuable solutions in less time.

In this session, we will look at features such as: * union types * intersection types * mixins * generics

We will also look at some of the new features in the latest versions of TypeScript

Speaker

Eric Potter

Eric Potter

Technical Strategist, Aptera Inc

Understanding Technical Debt

Often as developers we are stuck evaluating only the negative artifacts of technical debt.  However, what if we looked at the debt metaphor from the point-of-view of our business executives. Would we reach the same conclusions?

In this presentation, I demonstrate that technical debt is not always something to be avoided.  In fact, when debt is incurred responsibly, it can become a powerful tool that improves the communication between stakeholders and technologists.

As we inspect this concept, I offer rules and guidelines for evaluating when debt is good and when it is toxic.  Once we have a firm understanding of this framework, I present strategies for prudently measuring, paying, and using debt.  At the end of the presentation, both developers and business stakeholders will gain a new vocabulary for describing project decisions that will maximize the collaboration between both teams.

Speaker

Steve Green

Steve Green

CEO, Blue Rivet

Unit-Testing With Ease

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

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

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

UX Associate, Union Pacific Railroad

We Don't Type for a Living: Pairing, Productivity, and the Multi-core Software Team

"Why would I pay twice as much for two developers to do one thing? Get back to your desks!"

Pair programming is a preposterous idea. Until you see it work, and then it's not. In fact, pairing and mobbing are transformative techniques for building great software, and for building teams that build great software. And yes, Virginia, for going faster.

But we only get to cash in on that when we do it right.

So let's talk plural programming—I've been at it for years, and I'm in the mood to share. We'll turn over some pairing myths with data. We'll talk about how you don't need your boss's permission to do it. And we'll cover the pairing anti-patterns that can ruin it for everyone.

Speaker

Jon Fazzaro

Jon Fazzaro

Agile Coach, Aptera

What Education Does Wrong When Teaching Software Development

Ask any professional software developer and they’ll tell you they learned more on their own or on the job, than they ever did in school or other formal training. With so many options for college degrees, bootcamps, and other training, why aren’t beginning software developers being taught what they really need to know?

Over the course of my career, I’ve worked with hundreds of developers. I’ve taught computer programming to thousands of college students. I’ve designed computing curricula and courses, and had heated debates over course content with university faculty. And as a business owner, I’ve interviewed, hired, and trained many recent graduates.

In this session, I’ll present the mistakes I think formal education repeatedly makes, the likely causes, and what I wish the new generation of professionals would actually be taught. I’ll do my best to make this session informative and hopefully controversial.

Speaker

Kyle Lutes

Kyle Lutes

United States, West Lafayette

Whats new in ASP.net Core

Talk about the new bells and wistles in ASP.net core. What are some of the arcitectural diffrences in the new MVC project structure. A quick demo of a simple ASP.net core MVC app.

Speaker

Yair Segal

Yair Segal

CEO/ Chief architect, Peach Software Inc

What's up with UX?

UX is an expanding and evolving field. You'll see UX titles like Generalist, Strategist, Researcher, Designer, or Architect. Who are these people? What do they do? And why is any of this needed anyway? In this talk, Ash will introduce you to the field of user experience, why it exists, what roles there are, and how to get a better experience out of your products.

Speaker

Ash Banaszek

Ash Banaszek

UX Associate, Union Pacific Railroad

Writing For The Test : Dependency Injection Coding Practices for Effortless Unit Testing

Wherever there is code, there will be bugs. Catching these bugs before they reach production is key to creating happy users, building trust in your organization, and enhancing your own reputation as a skilled developer. Unit testing can be a powerful tool in an organization's arsenal when fighting for bug-free code. A good unit test is easy to write, and can catch a bug in an instant, without even running your application. But there is a catch: before you can write a powerful, bug-fighting unit test, your code must be testable. In this session, you will learn how to design and implement code that is unit test-ready. We will explain the Dependency Injection Principle and how to implement it, Inversion of Control Containers and when to use them, the power of Mock objects, and clean code practices as they apply to unit test readiness.

Speaker

Laura Northrup Poland

Laura Northrup Poland

Software Developer, PFL