Keynote (8:00 - 9:15)

It Starts With A Search

Maria Naggaga

Woodland Dreams Ballroom

Learning and exploring languages have changed, every new feature, programming language begins with the search. As learning programming basics have become more online based than physical, how do we account for the ease acquisition. How do you make learning a new language exciting to all developers?

In my talk, I would like to introduce you the core principals I have learned in creating exciting documentation and online developer experience that enable all developers to be successful in the browser. How do we get our developers excited about learning C# and .NET without ever having to leave the browser? I will show some of the work we have been doing on the .NET team to make these experiences happen.

Session 1 (9:30 - 10:15)

Machine Learning using Microsoft Azure Machine Learning Studio

Samrat Saha


In this talk I will be presenting on how a user can leverage the Microsoft Azure Machine Learning Studio. I will be covering an unsupervised Machine Learning Algorithm (K-means clustering) as an example. I will cover the basics of k-means to provide a foundation on the algorithm. The talk will demonstrate all aspects of the ML pipeline, from importing your data set, to cleaning it, to training against it. It should provide a solid foundation on how to use the Azure Machine Learning Studio and allow a developer or data scientist to ramp up quickly with their experiments and lay the legwork for running it in production.

Hardening Your ASP.NET Core Applications

Brice Williams

Bob Hansen


With cyberattacks on the rise, every application can be a potential target. No longer do attacks only impact internet facing web applications, but now include enterprise intranet applications and systems that don’t handle sensitive or regulated data. ASP.NET Core provides a great foundation with which to build a secure application, but there are many things to still consider to ensure your systems are hardened against attacks.

This session discusses new security features available in ASP.NET Core to protect your application from prevalent attacks such as the OWASP Top 10, phishing, and ransomware. We will demonstrate attacks against modern applications and APIs built with ASP.NET Core, and show common mistakes made by developers.

We hope that you walk away from this discussion with a better understanding of how to protect your applications using the latest secure coding techniques.

Diversity in tech — Barriers, solutions, and one effective model

Julia Block


Diversity in the technology industry has become a hot topic as large companies like Google and Facebook release their numbers on gender, ethnic, and racial makeup. Responses to low diversity numbers often include arguments that women and people of color are not applying for these positions, and if they do apply, they are unqualified. This invites two questions: “How can we (non-profits, educational organizations, employers, etc.) ensure the applicants are qualified to get the job?” and “How can employers encourage diversity in employment within their companies once applicants have applied?”

To address these questions, a local Madisonian organization has created a three-month tech bootcamp, the YWeb Career Academy,that lowers barriers for women and people of color by providing a laptop and free tuition. The bootcamp is modeled after similar programs nationwide whose tuition costs range from $5,000 to $15,000; costs that may prevent interested students from learning the web development and design skills necessary to pursuing a tech career. After program completion, students pursue internships or full-time positions at local companies, with continued program support.

This presentation will dive into the question of why women and people of color may not be seen as qualified applicants and dig into the root of the issue: barriers to education and employment. During the allotted time, we will also explore practical applications for diversifying employee pools.

The Impact of Leveraging Open Source

Jeff Strauss


Open source tools. We all use them. Whether an entire framework, a focused toolkit, or a simple custom component from GitHub or NuGet, the opportunity to improve our development speed while learning new things from open source projects is enticing.

But what does “open source” truly mean? When working in a professional environment, what are our rights and limitations as open source consumers to use, modify, and redistribute these tools? The answer depends upon the OSS author’s own decisions regarding project licensing. We will investigate the core principles of open source development and consumption while comparing and contrasting some of the more popular licenses in use today. Learn to make better decisions for your organization by becoming informed of how best to leverage the open source works of others and also how to properly license your own.

Session 2 (10:30 - 11:15)

CANCELLED - How To Have Code Reviews Developers Actually Want

Cameron Presley


This session has been cancelled.

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

In this talk, we’ll start by looking into the goal of code reviews and why we should be doing them. From there, I’ll show you the common mistakes that teams make with code reviews and how to fix them. To wrap things up, I’ll show you what I do when performing code reviews.

Intended for developers of all levels, attendees will understand the reason why we should have code reviews, signs of bad reviews, signs of good reviews, and have some ideas to take back with them.

Creating Three Beautiful Apps at Once with Xamarin.Forms

Matthew Soucoup


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

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

Cool SQL Server Features Every Developer Should Know About

David Berry


We all use SQL Server every day in our jobs, so it pays to know what SQL Server can do for us that will make our jobs easier. This talk will introduce you to some key features of SQL Server that you might not know about but will definitely want to use once you learn about them. First, we’ll discuss temporal tables, which provide a convenient way to track all of the changes made to data in a table. Second, we’ll talk about the JSON support built into SQL Server 2016 and what capabilities it provides us. Finally, we’ll talk about the windowing functions in SQL Server, which provide powerful analytic capabilities to use against our data. After this talk, you will better appreciate some of the rich functionality built into SQL Server and understand how to put these capabilities to work in the applications you build.

Making the World Better One Video Game at a Time

Mary Romolino


There’s no doubt that video games are popular. While some view them as an imagination-sapping waste of time, Acme Nerd Games has a very different perspective: we see games as a means to improve lives. Games engage, teach, and can change behaviors. We believe it’s about time that organizations catch on and deploy the power of games to do good in the communities they serve.

I’ll share my journey from a seasoned traditional marketer to a business owner that aims to turn what some see as a social pariah into a tool that helps people thrive. I’m not a programmer or game designer, yet I’m leading a development company into new territory. My fresh story will inspire you to follow your passion and seize opportunities.

Session 3 (11:30 - 12:15)

Which Azure Database Should I Choose?

Annie Bougie


Deciding which of the many database options to choose from in Azure can be overwhelming. There are many options, and it’s impossible for everyone to know all of them. Traditionally, the choice has been to select which relational database to choose. But with all the NoSql databases available, there are many more choices that may be a better fit for your application. What are the trade offs among all the choices? Why pick just one? I will give some practical examples of how to combine different types of databases. Microsoft released Document DB a couple of years ago, which was their first managed NoSql cloud database. Just recently Cosmos DB has expanded those offerings and made it easier than ever to use. Cosmos DB is a service that contains several types of NoSql databases: Key Value Pair, Document and Graph. I will explain what each of these are, along with some code samples for each one to get you started. You will leave this session with a greater understanding of the different types of NoSql databases and what kinds of problems each of them solves best.

A Skeptics guide to functional style javascript

Jonathan Mills


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

Don't Think When You Code

Joel Karr


Yeah it sounds crazy, but I’m serious. If you are thinking while writing code, you are doing it wrong. Before you move along, let me explain.

By optimizing the way you write code, you will produce more with less effort. Elite athletes learn to react faster than they can consciously think. They do this by identifying situations, then training themselves to respond with a set of actions. You will learn how to become an expert at high-speed decision making. We will also talk about how a “quiet brain” can save you when you are faced with a high pressure situation like production is down! Last, we will talk about how developing a shared mental model with your team can improve communication and simplify design conversations.

Power of a Nudge

Jane Prusakova


Nudging is a tool every Agile leader should have in their toolbox. Nudging is making a subtle suggestion in a powerful way, while letting the team make the final decisions. This presentation will be most helpful to those with strong opinions, passion to improve, and ambition to be a servant leader. A nudge is a way to lead without authority or positional power. People’s choices are strongly influenced by the environment, and nudging is about creating an environment that helps people make better choices.

In this interactive session we will learn how to nudge others to become more Agile. Create a toolset of strong nudges to take your team to the next level. Build subtle yet powerful nudges to improve team spirit and productivity. Explore nudge patterns and techniques, and practice different ways to lead by nudging.

Nudge shorter and more productive meetings Nudge code base improvement by moving furniture Nudge better communication and more trust

Lunch (12:30 - 1:00)

Lunch & Networking

Woodland Dreams Ballroom

Lunch will be served in the Woodland Dreams Ballroom. Grab a plate of food and meet some people you don't know!

Sponsor Sessions (1:00 - 1:45)

REST easy with OData

Pete Craig


Do you think that REST means all your API has to do is support HTTP GETs and POSTs and return JSON? Have you had to consume one of these very primitive APIs? They can suffer from poor performance and require a lot of custom coding on the client side.

We'll dig deeper into the RESTful architecture and learn how OData can make it easy to deliver a full featured API with metadata, rich querying syntax, paging, asynchronous batch requests, full CRUD support, collection operations, and optimistic concurrency control.

Developers, architects, and managers will find this information useful. We will occasionally free dive into some C# code, but will frequently come up for air.

Teaching Alexa New Tricks with JavaScript

Dana Hart


Intelligent agents are changing the world we live in. User experience and engagement is expanding from websites and mobile apps to voice services, customer service agents and beyond. This new world opens opportunities that are available to explore. We have access to many of these devices, so why not create a new skill or app to see what they are all about.

We will be focusing on learning how to create a conversational interface using Amazon Alexa Skills Kit and deploying it out to Lambda. We will also cover the services Amazon offers, Lex and Polly, to add conversational features into your own applications. In the end, you will have a better understanding of intelligent agents and how they are shaping our future, along with having more knowledge around how conversational interfaces work and how to build one yourself.

Components of Good UI: Intro to ReactJS

Vince Maiuri

Ryan Feil


React is Facebook’s contribution to rendering user interfaces. It’s a JavaScript library that does one thing and does one thing well – Rendering your views.

So why use it? Glad you asked! We’ll be discussing that exact topic, including basic React principles, data flow, and how it differs from that other UI solution: Angular. Throughout all we’ll mix in some live coding demonstrations. This is targeted for React beginners, but hopefully there will be useful nuggets for any skill level. Please come with questions!

SRE and Me: Adding Sustenance to the Acronym

James Flanery


What is Site Reliability Engineering (SRE)? Is it hiring a software engineer for a sys admin role or is it more along the lines of emphasizing the Dev in Dev Ops? Maybe you may have read success stories from Google, Netflix, or Facebook about their SRE programs. Whatever you've heard, Site Reliability Engineering is an emerging and in-demand field that is sweeping through tech companies across the country.

Site Reliability Engineering is another gift to the world from Google. Ben Treynor started the first SRE program in 2003 by describing it as “Fundamentally, it’s what happens when you ask a software engineer to design an operations function”. Join me as we take a deeper look into SRE and why so many companies have started adopting this practice. I will cover its core principles and ideas, along with providing real world examples of things that a typical SRE can see in a day.

Open Spaces

Woodland Dreams Ballroom

Open Spaces is your opportunity to start or join a session on any topic under the sun. These are group discussions with no formal presentation or single presenter. Have questions about a language you don't know? Interested in sharing your experiences with others? Looking for a small conversation about who knows what? Start or join an open space!

Session 4 (2:00 - 2:45)

Climbing Rocks and Coding Blocks

Charlotte Chang


Coding can feel as challenging as rock climbing! What do you do after you fall? In this talk, I’ll share how rock climbing taught me better software development practices. Come explore techniques you can try when hanging off a cliff of zeros and ones or need to step away from the ledge of monkey patching. You’ll hear stories of failure as I endeavored to learn to code and how success virtually came from an unlikely source, a rock wall.

Mocking .NET Without Hurting Its Feelings

John M. Wright


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.

A Human-Centric Approach To Automating Automation

Sreenath Pillai


Automation has transformed industries left and right, largely through software. But what happens when building software itself begins to become automated?

We will go over how “Automating Automation” is not only technically complex but also presents major ethical and business challenges. Then we will explore possible paths towards the eventuality of fully automated software development. Paths that heavily involve human creativity and capital. Paths that change and replace, rather than eliminate, software jobs. Paths that allow established heavyweights the ability to join this new age in a transitory, non-invasive manner. Paths that do all of this and still maximize rewards for upstarts who move quickly and revolutionize right away.

We will step out of this adventure with a 360-degree view of the biggest impending economic change of 2017: automating automation.

Electron: Desktop Development For Web Developers

Chris Woodruff


Imagine if you will, your Manager asks you to develop a new desktop application. You’re so used to web development that you don’t know how to get started. What should you do? Dig out your old VB 6 books or learn a new technology? Better yet, keep those web skills and use Electron. Electron is the cross-platform application shell GitHub originally built for the Atom editor. The focus of this talk will allow you to leave with the starting skills to set up your development environment, generate your starter project, and build some business logic. We will also start building a killer UX with the Photon control kit. Chris Woodruff will be your guide to leveraging your valuable skills for the desktop.

Session 5 (3:00 - 3:45)

Branching Strategies

James Pemberton


Branches are like opinions - everyone has one, and just like opinions, everyone thinks theirs is right. Branching strategies are hotly contested and vigorously defended. The fact of the matter is there isn’t a universal “right” strategy.

We’ll be going over everything from the basics of branching to more complex, multi-team branching situations. We’ll start with why you should be branching and the benefits it gives development teams. Next, we’ll discuss very specific branching strategies like feature, release and sprint branches. Finally, we’ll examine some of the more common pitfalls of branching and ways to mitigate them.

At the end of our discussion, you’ll walk away with a greater knowledge of the concept of branching. You’ll be able to take what you’ve learned today back to your company, team or personal project and decide for what’s the right strategy for you.

Current State of Artificial Intelligence for Enterprises

Greg Levenhagen


Artificial Intelligence isn’t anything new, but it’s certainly making big strides as of late. Do you need to care? Come learn what happened in 2012 that spurred this recent push.

What do the high level constructs mean and where do you apply them? What are the various offers from companies like Microsoft, Google, Amazon and IBM? Machine Learning, Deep Neural Networks, Convolutional Neural Network, etc.

Where can AI fit into your enterprise and how do you get started? Are there prerequisites (code, data, hardware) for it to make sense?

If you’re asking these questions or have been dabbling with AI, come to this session and help remove some of that fog around this quickly emerging field.

Building Reusable UI Components in ASP.NET Core MVC

Scott Addie


ASP.NET proper MVC developers have long relied upon partial views and HTML helpers to construct reusable UI components. ASP.NET Core MVC expands upon the arsenal of options for creating such UI components by introducing view components and tag helpers. Do these new offerings render partial views and HTML helpers obsolete? Absolutely not!

Using the right tool for the job is important, which means understanding the differences between these options is paramount. In this session, you’ll gain an understanding of when it’s most appropriate to use each of them in the real world. You’ll also see how to create basic view components and tag helpers.

Connect, create, succeed: Understanding the customer experience

Laurel Norris

Lexy Spry


It’s easy (and sometimes preferred) to code in a cave – away from distraction, demands, and the chatter from coworkers. While such an environment might enable productivity, it can also distance a developer from important information about how customers use the product. Understanding their experience – how they interact with a product, what they like, what challenges them, even their habits and workstyle – can help you improve functionality and usability.

During this lively and entertaining session with two learning experience designers in the software industry, find out why and how to connect with customers directly and through customer-facing teams at your organization. This session will give you concrete tips for how to listen to customers, distill feedback, and build relationships inside your organization that can inform development.

Developers and IT managers will benefit from this session. Regardless of how your organization is structured, considering the point of view of the customer and strengthening cross-team communications will benefit the products you work on, customer satisfaction, and your own career.

Session 6 (4:00 - 4:45)

That's not how you pack it! Understanding sorts.

William Springer


Why handle sorting yourself when your language or framework will do it for you? In most cases, the automatically-provided sort will work just fine, but metadata about the input may allow for a significant performance improvement.

In this talk, we’ll cover big-O notation (for those who either don’t have a computer science degree or have simply forgotten this part) and then move on to analyzing the asymptotic runtime of various sorting algorithms. We’ll see why mergesort works just fine the majority of the time, but how we can sometimes use a non-comparison sort to greatly boost performance.

No particular background is required.

Have Your Best Season Yet: Becoming a (Microsoft) MVP

Lisa Anderson


Learn how following your passion and deepening your technical area of focus can help you create a wide-sweeping impact and how you can be awarded as an MVP! The MVP community is comprised of over 4,000 MVPs worldwide, and offers you a rich and diverse network of talented tech experts who can help you learn new skills and advance your career. As an MVP, you also gain insider access to Microsoft product development teams, and a plethora of other benefits. Come join the discussion and learn how to reap the rewards of your best season yet!

Climbing Data Mountain: Web Based Data Visualizations in NVD3.js and D3.js

Dustin Ewers


We are sitting at the foot of a proliferating pile of data. Making sense of it is a herculean challenge, but there are significant spoils for those who are up to the task. One of the tools at our disposal for making sense of large quantities of data is data visualization. In this talk, we’re going to use web based tools to build amazing visualizations.

We’ll begin by looking at data visualization best practices. Next, we’ll look at some of the different ways you can visualize data on the web. Then we’ll build charts with NVD3.js. An easy to use tool that supports most charting scenarios. After that, we’ll build complex interactive data visualizations with D3.js, the ultimate visualization power tool.

After this talk, you’ll have a whole new set of tools to climb to the peak of your own data mountain.

ORMs and the DBA: How to make both happy

Dan Mallott


Talk to any DBA about ORMs and you’ll quickly find out all the things you like about ORMs are what DBAs don’t like. Interestingly enough, most developers I’ve talked to have issues with their ORMs, too. In this session, we’ll explore why ORMs cause such trouble using examples of bad behavior and poor performance with common application patterns. I’ll outline some strategies for mitigating those troubles such as making sure to audit the generated SQL and changing how we write application code to take advantage of how ORMs attack problems under the hood. Lastly, I’ll introduce some tools (and even yet another ORM) that help solve some of the worst of the problems we see in the database when using ORMs.

Happy Hour (4:45 - 6:00)

Happy Hour & Closing

Woodland Dreams Ballroom

Join us for the closing notes and happy hour in the Woodland Dreams Ballroom! Grab a drink or two on us, and meet some more wonderful people from your local development community. We'll also be raffling off some prizes - and yes, you need to be there to win!