Detroit.Code() Sessions

Connecting the Physical World to the Digital World: or How we Automated the Speak Easy with IoT, Python, and Rust

It's 2k17 and I'm sure you're wondering the same things I am, why do I have to do anything? What happened to this ~~dys~~utopian future where computers were supposed to do everything for me?

This talk will demonstrate how to automate real life to get us one step closer to becoming the fat, lazy, inept humans in the movie Wall-E. We will start with an everyday problem at the Speak Easy, a local co-working space serving as a microcosm of any community or city, and show the process of building an IoT (Internet of Things) application from ideation to execution, using Python, microPython, and hopefully even Rust at every step along the way.

Time permitting we will do a pros/cons, compare/contrast between the different platforms, languages, paradigms, and dive into the deeper how all of these affect the product lifecycle from idea to production including security implications.

There is also a 99% chance of hearing how one speaker believes that IoT can impact your life and change the world in a very positive way.

Speaker

Cameron Dershem

Cameron Dershem

Co-Foudner / Developer / Hair Farmer, pinkhatbeard / ocelli

.NET Standard explained

Come to listen about .NET Standard and how it makes writing .NET code and libraries targetting multiple platforms easier.

We'll go over how the .NET Standard compares to .NET Framework and .NET Core. We will learn how to check .NET Standard compatibility for existing assemblies. We will also do some hands-on trying to implement a library to be used from multiple platforms.

Speaker

Marcin Juraszek

Marcin Juraszek

Software Engineer, Microsoft

5 Popular Choices for NoSQL on a Microsoft Platform

If you are thinking of trying out a NoSQL document database, there are many good options available to Microsoft-oriented developers. In this session, we’ll compare some of the more popular databases, including: DocumentDb, Couchbase, MongoDb, CouchDb, and RavenDb. We’ll look at the strengths and weaknesses of each system. Querying, scaling, usability, speed, deployment, support and flexibility will all be covered. This session will include a discussion about when NoSQL is right for your project and give you an idea of which technology to pursue for your use case.

Speaker

Matthew Groves

Matthew Groves

Developer Advocate, Couchbase

5 Principles for Software that Works

Rather than trying to memorize a list of hundreds of best practices for software design, apply five basic principles that result in software that is innovative and usable.

  1. It's not about you
  2. It Depends
  3. Simple is good: but it's not simple
  4. Influence not control
  5. Practice creates change

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

A feature based approach to software development

Creating a solid architecture for any system we design can be a challenging process. The frameworks we use often include some opinion about how our software should be designed but these guidelines may not always be the best for the long-term health of our application. How can we build our applications to ensure they are both maintainable and extensible in the future?

In this talk, we'll discuss how taking a feature based approach to our application architecture can help us clearly structure applications that scale well over time. Additionally, we will talk about how we can apply these concepts to both the front-end and back-end to promote a consistent mindset across the entire tech stack. All examples will be using .NET Core and React but the concepts apply well beyond these technologies.

Speaker

Ryan Lanciaux

Ryan Lanciaux

Software Engineer

A Gentle Introduction To The Basics Of Functional Programming

A brief introduction to the ideas generally associated with functional programming:

  • Default immutability
  • First Class Functions
  • Built in regular expression primitives
  • Recursion vs. iteration

I will discuss what each of these ideas means in practice, why they're worth learning and where to go if one wishes to learn more about functional programming.

Speaker

Onorio Catenacci

Onorio Catenacci

IT Trainer, United Shore

A Look at Code Obfuscators

Ever wonder how a code obfuscator works? Are you curious to see what happens when it alters the compiled code of an application? We’ll look at one of the most popular .NET obfuscators, Dotfuscator Professional from Preemptive Solutions. It has a lot of features found in other similar applications like code injection, method renaming, and string encryption, and we’ll look at how those affect the code along with problems they cause. Along with this, there are new features which help prevent tampering and debugging we’ll explore in additional seeing how it can phone home in the event of an attack. Of course, no talk on security would be complete if we didn’t explore how to bypass some of those counter measures too!

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

A Primer on Neural Networks

I’m sure you’ve at least heard about neural networks, but maybe you wonder what exactly is a Neural Network. This talk will take you gently into the machine learning branch of statistics with neural networks. With examples and simple breakdowns about the math involved that anyone can follow.

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

Advanced Features in Web APIs

The ASP.NET Web API framework allows a single Web service to communicate with multiple clients in various formats such as XML and JSON directly over HTTP. The architecture is designed to support applications built with REST, but it does not force new applications to use a REST-style architecture. In this session we’ll discuss various ways of creating and consuming Web APIs, different output formats, including BSON, and tools for testing and debugging.

Speaker

Sam Nasr

Sam Nasr

Principal Consultant, NIS Technologies

Adventures with TDD and Paired Programming

A presentation with sample code illustrating TDD and paired programming.

Speaker

Eric Helin

Eric Helin

Software Engineer, Quicken Loans

Ahead of the Pack: Guidelines for an Agile Architecture

Agile development often focuses on immediate concerns: what am I doing now, or, at most, in this sprint? Even in situations where developement is Agile, architecture is often… not.

Ahead of the Pack is an approach to architecture running only one or two steps ahead of development, with the same level of focus: what feature am I describing for the developers right now? Ahead of the Pack means descibing objects—or database tables, or other discrete entities—in terms of their relationship with what has already been developed, so that updates to the architecture do not fundamentally modify what has already been built—or what has already passed quality assurance.

We draw examples from real applications, and provide a glimpse of future directions.

Speaker

Jerome Scheuring

Jerome Scheuring

Distinguished Engineer, VML, Inc.

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

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

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

Speaker

David Pine

David Pine

Technical Evangelist, Centare

Architectural Katas

Fred Brooks said, "How do we get great designers? Great designers design, of course." So how do we get great architects? Great architects architect. But architecting a software system is a rare opportunity for the non-architect. The kata is an ancient tradition, born of the martial arts, designed to give the student the opportunity to practice more than basics in a semi-realistic way. The coding kata, created by Dave Thomas, is an opportunity for the developer to try a language or tool to solve a problem slightly more complex than "Hello world". The architectural kata, like the coding kata, is an opportunity for the student-architect to practice architecting a software system. In this session, attendees will be split into small groups and given a "real world" business problem (the kata). Attendees will be expected to formulate an architectural vision for the project, asking questions (of the instructor) as necessary to better understand the requirements, then defend questions (posed by both the instructor and their fellow attendees) about their choice in technology and approach, and then evaluate others' efforts in a similar fashion. No equipment is necessary to participate--the great architect has no need of tools, just their mind and the customers' participation and feedback.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

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

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

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

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

Automating Docker-based Tasks in the Cloud using AWS Batch

Batch processing is a common, powerful pattern for high-CPU background workloads. Companies often use it for advanced simulations, rendering, media transcoding and processing, deep learning, and more. At Hudl, we're using AWS Batch to manage a video processing pipeline that includes a GPU-based deep learning algorithm.

AWS Batch is a recent addition to Amazon's cloud platform that makes it very simple to define and execute tasks without worrying about the infrastructure needed to make it happen. Once you define a task by providing a Docker image and necessary parameters, you can create hundreds of thousands of jobs, and let Batch deal with scaling, parallelization, and managing dependencies.

In this talk I'll walk through setting up Batch jobs (including some basic Docker images and everything on the Batch side), how Batch handles scheduling and dependencies, describe scenarios where Batch excels, and touch on some pain points we've experienced so far.

Hudl is still early in the stages of using it, but so far it’s proven easy to use and very adaptable to what we need. We’re planning to move more of our workloads into batch, including thumbnail generation, video transcoding and processing, PDF generation, and more.

Speaker

Ryan Versaw

Ryan Versaw

Software Engineer, Hudl

Awesome C#: Unit Testing

Unit testing can make you a faster developer. Good tests let us move forward more confidently, give us instant feedback when checking regression, and help us pinpoint bugs when things go wrong. In this workshop, we'll look at the qualities of good tests, including isolation, repeatability, runnability, and more. And we'll look at specific techniques that make our tests easy to ready, easy to write, and easy to run.

We'll go hands-on with TDD (Test-Driven Development) to see the red-green-refactor cycle in action. Some code is tricky to test: we'll look at how to test for exceptions and error states, and we'll use a mocking framework to create mocks and stubs. Tools include MSTest and NUnit (for testing) and MOQ (for mocking), but the skills easily translate to other frameworks.

Objectives 1. Why Unit Test? Getting the actual benefits 2. Characteristics of a good unit test and how to implement them (including isolation, repeatability, runnability, and more) 3. Basics of TDD 4. Parameterizing tests 5. Techniques for testing exceptions 6. Using a mocking framework to isolate dependencies

Pre-Requisites Basic understanding of C# and object-oriented programming (classes, inheritance, methods, and properties). In addition, experience with interfaces and other forms of abstraction is very helpful. No prior experience with unit testing is necessary; we'll take care of that as we go.

Speaker

Jeremy Clark

Jeremy Clark

Developer Betterer, JeremyBytes.com

Basics of Elixir and Phoenix

A quick session on getting started with Phoenix and Elixir.

Among other topics:

  • Installing Elixir
  • Installing Phoenix
  • Our first website with Phoenix

Speaker

Onorio Catenacci

Onorio Catenacci

IT Trainer, United Shore

Become a Remote Working Pro

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

Speaker

Michael Eaton

Michael Eaton

Team Leader, Technology, Quicken Loans

Become a User Experience Designer for a Day

User Experience (UX) focuses on people and their interactions with the world. The UX Design process links research to the creation of the design and can be used to validate use cases and user requirements that are part of Agile development processes.

This workshop will give you an introduction to the research with people who will use a product. You will learn how it can be used to assess the efficiency, effectiveness, learnability, and error reduction of alternative designs.

Completing a sample project will allow you to experience some of the steps in the user centered design of a software product. You will use data to: • Understand who will use the product through the creation of a persona • Create and test design prototypes, and • Implement what has been learned in a draft of the final design.

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

Big Data Solutions in Azure

Analyzing big data is a challenge, requiring lots of processing power and storage.

Cloud Computing is an ideal platform to tackle this problem. HD Insight on Microsoft Azure deploys Hadoop and other open source big data tools to the cloud, making it easier to take advantage of the high scalability of this platform.

In this session, you will learn what tools are available in HD Insight and how to use them to store, process, and analyze large amounts of data.

Speaker

David Giard

David Giard

Senior Technical Evangelist, Microsoft

Bitcoin: What makes it Secure?

Bitcoin is a cryptocurrency, but what does that mean? How is mathematics used to protect your Bitcoins and your identity? What is the long-term outlook for the level of cryptography that is used by Bitcoin before anyone with commodity hardware can crack the codes? This session attempts to answer those questions while providing a primer of how cryptographic hashing algorithms and elliptic curve digital signature algorithms work, and how they have been broken in the past.

Speaker

Jason Follas

Jason Follas

Sr Software Engineer, Quicken Loans

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, DevJam

Block__Element--Magic: CSS Modularity for the masses.

Have you ever faced a code base worked on by more than a dozen developers, blankly staring at thousands of lines of CSS, not knowing where to begin? A solution to this is B.E.M., or Block Element Modifier. B.E.M. is a CSS architecture. It's a methodology. It's a naming convention. It is based off of Object Oriented CSS. This talk will focus on basic B.E.M. CSS architecture and how it can be the solution towards modularity and writing clean, well maintained code within a large organization.

CSS is hard, we all know that. There has to be a more effective way to facilitate the modularity and flexibility of our code. When tasked with creating new components for a Web project and inheriting over 8,000 lines of code, where do you start? When you are told to keep it modular as possible, what solutions do you have at your disposal? During this time is when you break in to your bag-of-tricks with one of the many modular CSS architectures out there.

B.E.M. is a great method to use to keep code very flexible and modular from component to component, and page to page. The greatest thing about using B.E.M. is the reusability of the code and being able to maintain the code in small pieces opposed to a large blocks with excessive declarations and generic naming.

One of the greatest takeaways from using B.E.M. is the naming of styles. With B.E.M., you can be as specific as you want to describe exactly what that style is being applied too. Naming the style according to where it is being applied and what it is being used for helps other developers who inherit your code as well as your future self.

Speaker

Chris DeMars

Chris DeMars

Senior UI Developer, United Shore

Breaking Into Bots

Step into the world of Conversational Bots. Taking over platforms one by one, conversational bots are becoming the newest applications wanted and needed by consumers everyday. If you are wanting to learn how to get into the world of Conversation Bots, this talk is for you. Gabrielle will take you step by step on how to get your proper tools, building a bot, deploying it to the cloud and how to get it up and running on different platforms. This is an ideal session for those who are familiar with Node.js and would like to apply it to something new.

Speaker

Gabrielle Crevecoeur

Gabrielle Crevecoeur

Technical Evangelist, Microsoft

Breaking up the Monolith: It's not all unicorns and rainbows!

Most people see Microservices Architecture as the silver bullet for developing robust, scalable and performant distributed applications and systems. Pretty much every company or team with established codebase either considers or already pursues that vision with a process usually described as "breaking up the monolith". It's usually a long process and the end goal can easily hide the fact that it's not always all unicorns and rainbows. Moving from a monolithic to service-oriented architecture poses a set of challenges, which if not considered and addressed upfront can cause the entire project to fail. In this talk I'll talk about these pitfalls and how to avoid them based on my experience in building a microservices platform for Microsoft Office Online.

Speaker

Marcin Juraszek

Marcin Juraszek

Software Engineer, Microsoft

Build a Skill for Alexa with Web API and Azure

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

Speaker

Heather Downing

Heather Downing

Senior Software Engineer, VML

Build mobile apps for iOS, Android, and Windows using JavaScript

Mobile application development does not need to be difficult for us Web Developers. No longer do we need to learn a whole slew of new programming languages to create a mobile application. We can use our existing skills and create mobile applications with Html, JavaScript, and CSS. Then deploy to Android and iOS devices using a single code base that looks, feels, and performs like a native mobile application.

Between Cordova, Ionic, and Visual Studio Tools for Apache Cordova you won't have to worry about the infrastructure setup or making the UI look, feel and perform correctly on the slew different Apple and Android devices that your users will have. You will be able to focus on your business logic and greatly reduce your time to market.

In this talk we will dive into what it takes to get started, look at the features of the Ionic framework and finish off by creating a sample application with the Ionic framework. You will walk away from this talk with all of the tools that you need to deliver your first mobile application.

Speaker

Justin James

Justin James

Senior Software Engineer, Intel

Building a Magic Mirror w/ .NET

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

Speaker

David Pine

David Pine

Technical Evangelist, Centare

Building a Multi-User Todo App with React Native, Swagger, and Couchbase Mobile

Want to build a cross-platform app that works offline, syncs robustly across devices, and scales? Those are some tough requirements to meet. This talk will show you how.

React Native enables building cross-platform apps using JavaScript. Swagger defines a specification for describing REST APIs that allows automatic generation of documentation, sandboxes, and SDKs. Couchbase Mobile is a complete data stack for building offline-first applications that also sync across devices.

In this session we’ll walk through building an application showing how to integrate all these technologies. You'll leave understanding the core elements of each, and how to approach creating an offline-first experience that both syncs and scales securely.

Speaker

Hod Greeley

Hod Greeley

Developer Advocate, Couchbase, Inc.

Building a Slack bot using Azure and ASP.NET Web API

Many organizations use Slack for internal communication. While Slack's chat services are great, there's also a pretty nice platform for building bots that can interact with people, automate tasks & be helpful, or just interject to keep things lively. People usually have chat open all day long so it makes sense for this to be an enabling platform. As a software developer there are a staggering number of simple things you can build as a chat bot for Slack that will bring joy to people's work lives without burning a month of your spare nights and weekends. I'll show you some of Slack's capabilities and how you can use Azure and ASP.NET Web API to quickly build a decent chat bot for your organization.

Speaker

Jason Loeffler

Jason Loeffler

Site Reliability Engineering Lead, Clearent LLC

Building Applications with LUIS

Language Understanding Intelligence Service (LUIS) is part of Azure's Cognitive Services. It's built on the interactive machine learning and language understanding research from Microsoft Research. Luis provides the capability to understand a person’s natural language and respond with actions specified by application code. In this session we'll examine how this powerful feature can be integrated into applications, offering a more natural interaction with a device.

Speaker

Sam Nasr

Sam Nasr

Principal Consultant, NIS Technologies

Building Reusable UI Components in ASP.NET Core MVC

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.

Speaker

Scott Addie

Scott Addie

Portfolio Solutions Architect, CUNA Mutual Group

Busy Architect's Guide to OWASP

Application security, like all things computer-security-related, can be an overwhelming topic. In an attempt to help bring some of the infinite myriad security concerns under control, a group calling itself the "Open Web Application Security Project", also known as OWASP, has been managing and curating a series of talking points and/or considerations, the most widely-known of which is their "Top Ten Web Application Vulnerabilities" list. In this presentation, we'll examine the Top Ten, and how architects can use this as a "jumping-off" point to begin addressing the sticky (and huge) subject of application security.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

Busy Developer's Guide to TypeScript

JavaScript frequently confuses developers, with its odd language rules and inconsistent approach to various aspects of the language. TypeScript is an attempt to clean up the language, simplifying it and creating a syntax easier to understand and use, but that compiles down to native JavaScript for widespread use in the browser (and anywhere else JavaScript is expected). In this session, we'll go over the syntax and semantics of TypeScript, how to use it in a Web application, why it makes the code and more.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

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

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

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

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

Speaker

Heather Wilde

Heather Wilde

CTO, ROCeteer

Clean Up Your Code With C# 7

Just two years after the release of C# 6, and we're gearing up for another major revision to Microsoft’s popular programming language, and with it comes a plethora of new features itching to make their way into your code.

In this presentation, we're going to take a look at these new features, and how they might be utilized to clean up issues that have been plaguing your application. From “out” variables to pattern matching, there's sure to be something coming to get you excited for the new release!

Speaker

Calvin Allen

Calvin Allen

Heuristic Solutions

Coding Naked - Unit Testing those hard to reach places

Code coverage with quality unit tests are your first line of defense to reducing technical debt, increasing code quality and accelerating your ability to change and adapt code (without breaking it) while continuing to add new features. Most TDD sessions focus on the easy to test areas of your code base that are almost never what you experience getting back to your desk. Come learn why TDD is not a fancy practice for the coding elite, but an understandable, obtainable and practical approach to delivering value for every developer, and how, when done properly, will increase communication and design between the business stake holders and developers.

We will focus on practical steps to moving towards & embracing TDD. We'll overview the normal roadblocks that people typically run in to, and practical coding strategies to overcome those road blocks on your way to embracing a Test Driven Development lifestyle - make coding without tests as uncomfortable as coding (or camping) naked! From the author of Automated Unit Tests chapter in the Wrox Book "Real World .NET, C# and Silverlight - Indispensable Experience from 15 MVPs, we will learn:
* Distinguish between the 4 major elements of automated unit tests. Code, Tests, Testing Framework and Test Runners and how they interact with each other to round out your engineering practices.
* Discover how Mocking Frameworks and DI make your tests easier to read and write in everyday life.
* Dig in to better ways to write and organize your tests so that they communicate intent, document your code for you and bridge the gap between development and business needs.
* We'll take a more specific look at those "hard to reach" places like the edges of your code, extension methods and other interesting scenarios * * everyone will leave their cloths on - it's not that kind of talk!

Speaker

Caleb Jenkins

Caleb Jenkins

Senior Software Engineer, Quicken Loans

Cool SQL Server Features Everyone Should Know About

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

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

Speaker

David Berry

David Berry

Solution Architect, Robert W Baird

Creating a Solid Web Application Architecture Using Angular (2+) and ASP.NET Core Web API

Modern web applications built today typically consist of various technologies used to deliver the final solution. Over the last several of months, there have been significant new developments both in front-end frameworks for building single page applications as well as back-end frameworks designed for applications hosted in the cloud. In this session, we will explore using ASP.NET Core to host a Web API that provides services to an Angular (2+) single page application. As a developer, you will take away from this session a solid understanding of how to design a modern web application using these technologies.

Speaker

Richard Taylor

Richard Taylor

Technical Lead/Sr. Software Developer, Logical Advantage

Creating an artificially intelligent chat bot (meme bot) powered by Node.js

Have you considered adding automated support to your organization? Would you like to be able to provide interactive applications that immerse the user? Are you interested in creating your own automated friend? Then this all-demo session is for you!

The explosive growth of chat bots, paired with the potential for automation on multiple levels, has driven a huge demand for understanding & utilizing these automated bots successfully. This presentation focuses on creating an intelligent chat bot powered by Node.js. During the session I will guide you through the construction of a Meme bot communicating in Slack. I will also address key industries that chat bots will influence in upcoming years, and ways in which every application can be augmented with an automated bot.

Speaker

John Harden

John Harden

Principal Software Engineer, Axia Technology Partners

Data Science for Developers: The Big Picture

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

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

Speaker

Matthew Renze

Matthew Renze

Data Science Consultant, Renze Consulting

Deconstructing TypeScript’s Type System

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

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

Speaker

Spencer Schneidenbach

Spencer Schneidenbach

Principal Consultant, Aviron Software

Demystifying Dependency Injection

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

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Design for Non-Designers from a Non-Designer

Elegant design requires talent, but talent is not a prerequisite for avoiding bad design. If you lack artistic touch and prefer rules and logic over the ethereal art form, the fundamental tenets of composition can enable you to apply Design as a programming paradigm. Spend an hour with a coder learning the logic of design--hacking pixels instead of bits--and free yourself of your excuse for horrible designs.

Speaker

Jay Harris

Jay Harris

Problem Solver, Arana Software

Design Patterns: Not Just for Architects

You already use Design Patterns but probably don't know it. Observer, Facade, Iterator, Proxy - Learning the lingo allows us to better communicate your ideas with other developers. We'll take a look at several Gang of Four patterns that we regularly use without realizing it. Don't know who the Gang of Four is? Join us to find out.

Speaker

Jeremy Clark

Jeremy Clark

Developer Betterer, JeremyBytes.com

Dockerize Your .NET Development Environment

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

Speaker

Lee Brandt

Lee Brandt

Developer Evangelist, Okta

Effective Unit Testing in Spring

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

Speaker

Billy Korando

Billy Korando

Senior Software Consultant

Enter the Dojo - Growing DevOps and Agile Practices that Stick

Teams learn best as a team and when they can immediately apply those learnings in their context. Enter the dojo - an immersive, learning environment where whole teams come together to build their product using new practices and skills.

In this session, we will frame the need for dojos. From there we will walk attendees through the dojo format, including things they need to think about when creating their own. We wrap up with simple calls to actions for people to take to bring learning forward.

Speaker

Joel Tosi

Joel Tosi

Hands-On Coach, DevJam

Entity Framework performance monitoring and tuning

Object Relational Mapping technologies, including the Entity Framework can drastically simplify the programming model against databases, but when done carelessly, performance can suffer. In this session, we'll explore some real-life strategies that have solved performance issues in production applications that I have encountered at a variety of customers. We'll discuss the pros and cons of working without stored procs and cover strategies for monitoring and tuning your entity queries.

Speaker

Jim Wooley

Jim Wooley

Solution Architect, Slalom

Establishing a SOLID Foundation – An Introduction to Software Design

Are you tired of opening classes that have hundreds or thousands of lines of code? Do you feel that you spend too much time trying to understand how something (that should be simple) in your application works? Are you frustrated with following spaghetti-like logic through your code’s core?

In this presentation, we’re going to examine a set of design principles that yield easy-to-read, decoupled code referred to as SOLID. To start, we’ll explore the history of SOLID and establish the problems it solves. From there, we’ll dive into the different principles (Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, and Dependency Inversion) by defining what each principle means, how to spot violations, and how to resolve them.

Intended for developers wanting to learn more about software design, by the end of the presentation, you should be able to describe what SOLID code is. In addition, you should also be able to spot trouble areas in your codebase and have the tools to undo the damage.

Speaker

Cameron Presley

Cameron Presley

Senior Software Engineer, Pilot Flying J

F# in 60 Minutes

F# is a rich, expressive, general purpose, functional-first language designed with the stated goal of allowing developers to write simple code to solve complex problems. While The Book of F# provides a comprehensive tour of the language this session will focus on several of the primary ways F# accomplishes that goal. In just 60 minutes we'll discuss what it means to be functional-first, the advantages of the functional-first paradigm, and several key language features including curried functions, partial function application, record types, discriminated unions, pattern matching, units of measure, type providers, and computation expressions.

Speaker

Dave Fancher

Dave Fancher

Principal, Springfield Publications

Firebase Alexa

Alexa is a voice assistant platform from Amazon, that makes it easy to build voice-driven applications. Firebase is a comprehensive app platform from Google that makes it easy to do… a lot of things. Taking advantage of both makes it easy to build Alexa skills that take the conversation well beyond the Alexa environment itself.

We'll walk through the setup and architecture of a simple skill that takes advantage of the Alexa platform to interact with applications outside the Alexa environment, with activity in the conversation with Alexa being reflected in the changing display of a single-page web application.

Speaker

Jerome Scheuring

Jerome Scheuring

Distinguished Engineer, VML, Inc.

From Developer to Data Scientist

Due to recent advances in technology, humanity is collecting vast amounts of data at an unprecedented rate, making the skills necessary to mine insights from this data increasingly valuable. So what does it take for a Developer to enter the world of data science?

Join me on a journey into the world of big data and machine learning where we will explore what the work actually looks like, identify which skills are most important, and design a roadmap for how you too can join this exciting and profitable industry.

Speaker

Gaines Kergosien

Gaines Kergosien

Executive Director, Music City Code

From Legacy MVC to Modern MVC: An ASP.NET Core Migration Path

With all the buzz around Microsoft’s revitalized ASP.NET Core MVC framework, you may wonder what has changed since your “legacy” ASP.NET MVC application was written. Sure, there are new framework features and development tools available; but, which of these things must be adopted and when? Can I still use ASP.NET Web Optimization for bundling & minification, or do I have to use something like Gulp? Which package manager(s) should I use to acquire the requisite bits and assets? How does the framework support dependency injection for my controllers? Should I target .NET Framework, .NET Core, or both? What are the repercussions of my IDE or editor selection?

Lend me 60 minutes of your time, and I’ll answer these and some other frequently asked questions. You’ll leave with a clearer picture of a practical migration path for your aging MVC application.

Speaker

Scott Addie

Scott Addie

Portfolio Solutions Architect, CUNA Mutual Group

From the Trenches: Eventual Consistency from your Database to Elastic Search

From caching to searching, combining a NoSQL data store with your relational database can provide wonderful benefits to your application. In order to get these benefits, however, we have to figure out a way to keep the data synchronized.

In this session, we’ll take a look at a few different technologies that we utilized at Heuristic Solutions to accomplish this task in our web application. SQL Server, ASP.NET MVC application, RabbitMQ with EasyNetQ, and Elasticsearch are all part of this discussion; however, we’ll focus more on the architecture of the solution, and not the specific technology choices.

Speaker

Calvin Allen

Calvin Allen

Heuristic Solutions

Fun with Mind Reading: Using EEG and Machine Learning To Perform Lie Detection

Using an EPOC headset from Emotiv, I have captured 14 channels of EEG (brain waves) while subjects lied and answered truthfully to a series of questions. I fed this labelled dataset into Azure Machine Learning to build a classifier which predicts whether a subject is telling the truth or lying. In this session, I will share my results on this “lie detector” experiment. I will show my machine learning model, data cleaning process, and results, along with discussing the limitations of my approach and next steps/resources. Attendees will gain exposure to the Emotiv EPOC headset and Azure Machine Learning.

Speaker

Jennifer Marsman

Jennifer Marsman

Principal Software Engineer, Microsoft

Getting started with Entity Framework Core

With the cross-platform version of .Net, Microsoft has had to rewrite many of the core components that we have come to depend on. If you include data in your applications, chances are you have used Entity Framework in the past. In this session, you'll learn how to get started using EF Core and how to handle the changes in this version.

Speaker

Jim Wooley

Jim Wooley

Solution Architect, Slalom

Gulping All the Things

Lost in the forest of front-end build systems out there? Check out Gulp! Gulp makes it super easy to minify, concatenate, and optimize your assets in an easy piping build stream. There are only a few commands to learn, so writing complex tasks (like you would in another system) isn't a thing in Gulp. In this talk, I will walk through what Gulp is and create a working gulpfile that can be used across endless front end projects that minifies, concatenates, and optimizes assets, as well as live reloads the browser using browser-sync.

Speaker

Chris DeMars

Chris DeMars

Senior UI Developer, United Shore

Hands Free Mobile UI Testing

Testing your mobile app against the sea of mobile devices can be daunting. Just testing with the popular devices of the last few years can be cumbersome and expensive. Not to mention the wear and tear on your thumbs with all that tapping and swiping. Wouldn't it be great if you could apply the same skills and practices you've honed implementing unit testing of your app logic to the testing of your UI? I've got great news, you can! We'll explore how you can get started automating all that tapping and swiping today in your existing mobile apps and plan for it moving forward. We'll also see how those tests can be applied to online services with thousands of devices waiting to run your app.

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

HoloLens Mixed Reality for Fun & Profit

What innovations are the current generation of mixed reality devices capable of providing? Lets explore what commercial augmented reality solutions might look like using the Microsoft HoloLens and how you can get started building solutions even before owning a MR device!

Speaker

Gaines Kergosien

Gaines Kergosien

Executive Director, Music City Code

How Functional Programming Made Me A Better Developer

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

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

Speaker

Cameron Presley

Cameron Presley

Senior Software Engineer, Pilot Flying J

How to talk to designers (to get them to finally understand!)

Do you sometimes find yourself frustrated at the sheer audacity of designers making completely design-centric decisions, throwing all sorts of documentation and rocks over the fence, all the while completely oblivious to just how many holes they're making in your windows? Do you feel that they might as well be speaking in Lorem Ipsum to you? When you say something to them, are they just getting an error 404 message back?

It doesn’t have to be that way! In this talk, you will learn about the fundamental differences in the perspectives of designers and developers and how we might tap into those differences to strengthen the way we work together. You will learn techniques and exactly what to say to take steps towards breaking down silos and becoming involved in the design process while also involving designers in the development process. As a result, you will open the floor up to educating each other and avoiding resentment by working close together in interdisciplinary teams with a unified end goal in mind, finishing on time and on budget (living the dream!).

Speaker

Sheila Mullings

Sheila Mullings

Experience Designer, VML

How to Upgrade Your Interface Designs (and Reduce Stupid Mistakes)

A little thought and exploration of the needs of people who will use a product can do a lot to create an interface design that actually works for people! It can also improve relationships between engineering and management as both become more focused on the success of the product for the people who will be using it.

Imagine that you are asked to create a simple keypad interface. Why can’t you just implement what others have done before? How can you go about assuring that YOUR design works well, has a reduced error rate, and is as easy to use as possible?

Speaker

Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

How We Built a Highly Scalable Encryption Platform at Quicken Loans

Being a major player in the FinTech space we take protecting our client’s information seriously. Client information must be protected as it flows from system to system but also when it comes to rest (where it is stored long term). Even if those systems aren’t even written in the same technology. Encrypting data presents some very unique challenges like scalability and performance since every system upstream and downstream needs to call the system. It is something that always needs to be on, perform at high scale, and yet still be easy to use and integrate with for other development teams. In this session I’ll walk you through how we built an encryption platform from the ground up, some technologies we used, why we chose them and how developers use the platform using one of our open source frameworks.

Speaker

Keith Elder

Keith Elder

Sr. Technology Evangelist, Quicken Loans

I Am An Enoughionist

“Simplicity—the art of maximizing the amount of work not done—is essential”.

This is perhaps the most difficult Agile principle to follow. My take on this principle is a new word… Enoughionism. It’s not really at the other end of the spectrum from perfectionism, but somewhere between it and disorder/insufficient. If you could find a definition in the Dictionary, it might be something like this:

Enoughionism (ee-NUF-uhn-ism) – The theory that for any given desired outcome there is a level of sufficient completion that satisfies the need without providing a perfect solution. Any effort past the sufficient level will result in diminished returns, wasted effort or features that aren’t needed. Great care must be taken to ensure that simple solutions are pursued.

This session will lead participants through a few simple steps to apply the principle of simplicity in both their personal lives as well as the work environment. We will learn how to determine desired outcomes, identify when enough has been done, and then focus on moving on.

Speaker

Preston Chandler

Preston Chandler

Managing Partner and Technology Lead, Smart Opex and VML

I'm hungry! What's for dinner? How to get ChatBots to feed you

Have you ever been at the grocery store trying to decide what to buy for dinner? Well you are in luck! No more wandering around the market wondering what you should buy for your next meal, when you can build a bot that can pick your dinner for you! In this session we will dive into the Microsoft Bot Framework; where you will learn the basics of building a simple chat bot in C#, how to publish it on the proper bot platform and how to upgrade its natural language processing using LUIS (Language Understanding Intelligent Service). After leaving this session, you will have all the resources you need to build your very own FridgeBot. Your FridgeBot will be a handy chat bot that will help you find a recipe based on the available ingredients you already have! All you will have to do is tell it you are hungry, give it a list of ingredients you have at home and it will recommend a dish containing those ingredients!

Speaker

Kevin Leung

Kevin Leung

Technical Evangelist, Microsoft

Intro to Azure Machine Learning: Predict Who Survives the Titanic

Interested in doing machine learning in the cloud? In this demo-heavy talk, I will set the stage with some information on the different types of machine learning (clustering, classification, regression, and anomaly detection) supported by Azure Machine Learning and when to use each. Then, for the majority of the session, I’ll demonstrate using Azure Machine Learning to build a model which predicts survival of individuals on the Titanic (one of the challenges on the Kaggle website). I'll talk through how I analyze the given data and why I choose to drop or modify certain data, so you will see the entire process from data import to data cleaning to building, training, testing, and deploying a model. You’ll leave with practical knowledge on how to get started and build your own predictive models using Azure Machine Learning.

Speaker

Jennifer Marsman

Jennifer Marsman

Principal Software Engineer, Microsoft

Intro to Game Development in Unity3D

Unity3D is a powerful, cross-platform game engine that drives many of today’s most popular computer, mobile, and console games; it has also become a critical tool in many Virtual Reality projects. This workshop will provide an introduction to Unity’s editing environment including Unity scripts. In this workshop, learners will complete a game; at the end of this course, learners will be able to create and deploy their own games.

What will you learn? Configuring Unity * Importing images * Creating and manipulating game objects * Setting up scenes, camera, and lighting * Creating levels * Simulating physics * Adding sound effects and music * Creating the user interface * Taking user input*

Speaker

Peter Guenther

Peter Guenther

Instructor, Grand Circus

Introduction to Amazon AWS

Amazon AWS is the other main player in cloud computing. They have many of the same offerings as Azure, but also some that are different. We’ll take a look at the basics such as SQS, S3, EC2, SNS, and SES, to see how you can quickly and easily incorporate the cloud into your existing applications.

Speaker

Brian Korzynski

Brian Korzynski

Sr. Software Engineer, NuArx Inc.

Introduction to ASP.NET Core Hands on Workshop

Bring your laptop and you will learn about ASP.NET Core directly from the team that built it in this high-powered workshop. ASP.NET Core is a lean and composable framework for building web and cloud applications. ASP.NET Core is fully open source and available on GitHub. What does that ASP.NET Core mean for compatibility? What powerful new cloud scenarios does ASP.NET Core enable? We’ll cover ASP.NET Core both inside and outside the IDE, on Windows, Mac, and Linux.

Speaker

Jeffrey T. Fritz

Jeffrey T. Fritz

Program Manager, Microsoft

Introduction to Asynchronous Code in .NET

In this beginner level talk we'll go over the common asynchronous patterns available in .NET. We'll focus on the Thread Parallel Library (TPL), Parallel Linq (PLINQ) and the new async/await keywords introduced in .NET 4.5. We'll discuss when to use these patterns and when not to.

This talk will focus on the basics of the thread parallel library, the async/await keywords, and PLINQ (parallel LINQ). We'll offer an explanation of when to use each method in the real world, the possible pitfalls to using each, and various tips to a successful implementation. We will also go over the general benefits of asynchronous code to user's application and the types of benefits they can expect to see. Finally, attendees will be warned of ways to avoid deadlocks and performance issues when using asynchronous .NET code as well as the basics of debugging asynchronous code.

Speaker

Bill Dinger

Bill Dinger

Solutions Architect, VML

Introduction to developing with Microsoft Service Fabric

Ever wondered how Azure provides a scalable environment for thousands of applications? This session takes an intermediate look at Azure Service Fabric. You’ll see how Azure uses established patterns and principles to provide an environment that is massively scalable. You’ll also see how that environment is made available to the public as the Service Fabric platform. The session includes some examples of implementing services in the fabric, the various types of services, and recommendations on how to approach creating and architecting services to support scalability and make the most of Service Fabric.

Speaker

Peter Ritchie

Peter Ritchie

Software Architect, Quicken Loans

It's Dangerous To Go Alone. Take This!

Do you have a mentor? Do you want one? Or better yet, are you a mentor? If becoming a mentor is hard, finding one can be even harder. In this session I'll go over what it is to be a mentor, and some places you can look for them. You might be surprised to find that you've had one all along.

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, New Context

JavaScript Futures: ES2017 and the Road Ahead

Development teams are now using the exciting—and extensive—new JavaScript features available within ES6. Yet, as adoption has spread and projects have adapted, the language continues to evolve and expand under the Ecma TC39 committee. Last year, two features were quietly added for ES2016. In January, another handful of improvements were marked final for the release of ES2017.

One thing is certain: the JavaScript community is not slowing down! Investigate the new and proposed features of JavaScript. Understand the ES.Next maturity stages and the TC39 review process. And most of all, become empowered to prepare for what lies ahead.

Speaker

Jeff Strauss

Jeff Strauss

Problem Solver, Arana Software

JSON Data Modeling in Document Databases

If you’re thinking about using a document database, it can be intimidating to start. A flexible data model gives you a lot of choices, but which way is the right way? Is a document database even the right tool? In this session we’ll go over the basics of data modeling using JSON. We’ll compare and contrast with traditional RDBMS modeling. Impact on application code will be discussed, as well as some tooling that could be helpful along the way. The examples use the free, open-source Couchbase Server document database, but the principles from this session can also be applied to DocumentDb, Mongo, RavenDb, etc.

Speaker

Matthew Groves

Matthew Groves

Developer Advocate, Couchbase

Keep Yourself Alive - Stopping the effects of Burnout

The tech community puts a warped badge of honor around burnout.

It’s often seen as an indicator of success and working hard, when it’s actually harming the growth of our developer communities and teams.

This talk will cover:

Why burnout culture takes away from inclusion Identifying burnout within yourself and your teams How to grow your technical skills without compromising your personal life How to bring a healthy work and growth ethic to your team, no matter if you’re the newcomer or the tech lead

Speaker

Heather Wilde

Heather Wilde

CTO, ROCeteer

Leadership Journey: From Software Developer to Leader

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

Speaker

Michael Eaton

Michael Eaton

Team Leader, Technology, Quicken Loans

Level Up From Hardware Noob to Hardware Node

Go one step beyond the browser and leverage your existing JavaScript skills to explore the possibilities of hardware. Do you have an Arduino gathering dust, just waiting for an application beyond the hello world of blinking an LED? It’s time to take that hardware off the shelf, and learn how to create interactive experiences in the physical world. This session will explore how to utilize the popular Node robotics frameworks to control an Arduino, showing you how to get quickly up and running in this new and emerging world of hardware. In this session, we’ll create a calender reader which accesses your calendar and reads your day to you with just the click of a button. This is an ideal introductory session for those curious on how to get started with some of the popular microcontrollers and microprocessors using JavaScript.

Speaker

Gabrielle Crevecoeur

Gabrielle Crevecoeur

Technical Evangelist, Microsoft

Leveraging DynamoDB in a Node.js Environment

Amazon DynamoDB is a flexible and scalable data store that is an ideal solution for many applications. Unfortunately, not too many popular open source projects exist that provide a high level abstraction similar to libraries like mongoose or any SQL ORM. For this reason, Dynamo has found itself having a much more daunting entry barrier for smaller, faster moving projects.

In this talk, we'll take a look at how our team tackled building a flexible Node.js library that made accessing Dynamo easier. From simple extensions to the AWS API like querying items and creating tables, to creating "models" for your documents. This will be presented from the view of a quick moving startup that wrote some simple code to make understanding Dynamo a bit easier which eventually became what we think is something that tackles most use cases.

Also covered will be the advantages and disadvantages of DynamoDB both in a general sense and in the context of a web application. We will also briefly take a look at using DynamoDB streams and AWS Lambda functions to perform "servlerless" processing against your database.

Speaker

Ryan Bickham

Ryan Bickham

Software Engineer, Sift

Lightweight Pub/Sub for Web Applications using MQTT

MQTT is an extremely lightweight publish/subscribe messaging transport. It is commonly used as a machine-to-machine connectivity protocol for IoT devices, and usually runs over TCP/IP using sockets. But, recent efforts have implemented the protocol in JavaScript using web sockets, making it possible to use MQTT from within a web browser. This session will introduce the MQTT protocol, discuss various brokers, talk about messaging and Quality of Service, and provide examples of how to use Pub/Sub to enhance your web application and interact with IoT devices.

Speaker

Jason Follas

Jason Follas

Sr Software Engineer, Quicken Loans

LINQPad: More than a Scratchpad

Wait. What? A talk on LINQPad? Isn’t that just the .NET scratchpad thing? How can there be a talk on that? Well, LINQPad may often be referred to as the “Ultimate Scratchpad for C#, F#, and VB” but chances are that if you’ve used it you weren’t using it to its full potential. LINQPad is chock full of hidden features that on their own don’t amount to much but taken together can truly boost your productivity. Whether you’re exploring a problem space or simply want to query some data LINQPad is a great utility and this session will help you get the most out of it by introducing important features like password management, caching, output customization, and much more.

Speaker

Dave Fancher

Dave Fancher

Principal, Springfield Publications

Liven Up With Logic Apps

Complicated workflows getting you down? Well get ready to liven things up with Logic Apps. Create your workflows by doing LESS work and partaking in more "fun".Logic Apps provide a great way to simplify and implement scalable integrations and workflows in the cloud. Using a visual designer, Logic Apps allow you to implement workflows, connect with APIs and access several cloud tools at the click of a button (or two..). In this session, we will go over how to build Logic Apps, how to integrate APIs into your workflow, how Logic Apps can be a great way to handle data and how to connect your Logic App to an active Web Application (Node.js example will be used). This is an ideal introductory session for those curious on how to get started with Logic Apps and workflows and even those interested in learning about different methods of streaming data! It's time to kick back and relax as Logic Apps livens things up for you

Speaker

Gabrielle Crevecoeur

Gabrielle Crevecoeur

Technical Evangelist, Microsoft

Machine Learning with R

R is a very popular open-source programming language for machine learning. Its interactive programming environment and powerful data analysis capabilities make R an ideal tool for machine learning. This session will provide an introduction to the R programming language using RStudio. In addition, we will demonstrate how we can use R to train a series of machine learning models. Finally, we’ll learn how to deploy these models to production to make predictions given new data.

Speaker

Matthew Renze

Matthew Renze

Data Science Consultant, Renze Consulting

Micro-Services: What we learned from 2016

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

Speaker

Chase  Aucoin

Chase Aucoin

Senior Enterprise Architect, Keyhole Software

Microsoft Cognitive Services: Making AI Easy

The rise of machine learning has produced an explosion of APIs to make your applications more intelligent. In this session, you will learn about the 20+ different Cognitive Services APIs that provide object recognition, face detection and identification, emotion recognition, OCR, computer vision, video services, speech and speaker recognition, language understanding, text analytics, sentiment analysis, knowledge exploration, search services, and more. You can also leverage these services in conjunction with the Microsoft Bot Framework to build an intelligent assistant. You will see powerful demos of these capabilities, experience the simplicity of calling this code, and walk away with ideas on how to leverage this functionality in your own applications.

Speaker

Jennifer Marsman

Jennifer Marsman

Principal Software Engineer, Microsoft

My Team Is Awesome and Yours Is Too

How many times have you heard, "We need to hire a rock star to help them out!" Or a director saying, "We're only going to hire the absolutely best people for this team! It has to succeed!" It's nice to dream you can hire someone, and they magically fix the issues on a troubled project, but this is rarely the case, because these people are hired to fix the symptoms and not the underlying problems. Sadly, this is a common first and only approach used, and once it fails (and frequently does), management often comes to the conclusion it’s not possible to fix the ongoing problems and settles into the mantra, "The beatings will continue until morale improves.”

Within an organization the differences most often found between an average team and a stellar one are largely due to approach and attitude. There is a level of competency everyone needs, but it is unreasonable to think only people who are the “1 percenters” can make a project thrive. The biggest hurdle to having a successful team often relates to company culture and the team's attitude. Small changes in everyone's approach along with focusing on fitting the organization's policies around the team's dynamics helps move a team from adequate to envied.

So the question is, “Which changes to make, and why?” Some teams need more and some need less, but there are certain ones which when applied will benefit any. People will become more productive, creative, and happy with these changes, because it places them as the most important aspect of the project. We’ll take a look at applying several approaches to improving a development team, and a case study on how they affected a team over an 18-month period.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

Never RESTing - RESTful API Design Best Practices Using ASP.NET Web API

Designing and building RESTful APIs isn’t easy. On its surface, it may seem simple – after all, developers are only marshaling JSON back and forth over HTTP, right? Believe it or not, that’s only a small part of the equation. There are many things to keep in mind while building the systems that act as the key to your system.

In this session, Spencer will delve into several best practices to keep in mind when designing your RESTful API. Attendees will learn about authentication, versioning, controller/model design, testability, documentation and change management. This session will also explore the do’s and don’t’s of RESTful API management so that you make sure your APIs are simple, consistent, and easy-to-use.

Examples will be done using ASP.NET Web API and C#. However, this session will benefit anyone who is or might be working on a RESTful API.

Speaker

Spencer Schneidenbach

Spencer Schneidenbach

Principal Consultant, Aviron Software

NoSQL for Mobile in Practice

NoSQL has become the ad hoc term for a wide range of alternatives to relational databases. NoSQL databases address a number of issues with the way database use has evolved. Mobile in particular presents a number of new challenges, including scaling to support thousands or even millions of users, off-line availability, synchronization, and more. Choosing NoSQL is just the first step, though.

In this session, we’ll take a look at the rise of NoSQL, what NoSQL really means, and the kinds of problems it solves. We’ll follow with some practical considerations for mobile developers. We’ll look at data modeling, querying, and other useful tips. We’ll also look at some examples using Couchbase for Mobile for illustration.

You will leave the session with a clearer understanding of the sometimes murky world of “NoSQL,” and practical advice for building apps that use it.

Note: Some familiarity with databases will be helpful to get the most from this session.

Speaker

Hod Greeley

Hod Greeley

Developer Advocate, Couchbase, Inc.

Practical Patterns for the Progressing Programmer

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

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

Principles, Systems and Tools (AKA Why Hammers Don't Fix Every Problem)

Understanding the differences between Principles, Systems and Tools is critical to successful Lean and Agile transformations. Without the proper understanding practitioners are likely to use a hammer on a screw.

Principle - a statement of value or fact that can be applied to virtually every situation and is usually generic in nature Tool - a specific application of one or more principles in a way that produces a desired outcome. System - a complex application of multiple tools that all work together to provide a desired outcome. Changing or removing one of the tools may not cause the system to fail, but it may cause the system to not be as productive or effective.

Participants will gain a greater respect for the underlying principles behind Lean and Agile along with appropriate ways to use Systems and Tools to their best advantage.

Speaker

Preston Chandler

Preston Chandler

Managing Partner and Technology Lead, Smart Opex and VML

Programming Paradigms in JavaScript

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

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

Speaker

Gwendolyn Faraday

Gwendolyn Faraday

Developer, Consultant, Ion Three

Rapid REST API Development with Node and Sails

Creating a RESTful API should be the easiest part of your development. You should not have to be a rocket scientist to successfully create a RESTful API. With Sails, you can create a full featured RESTful API in just a few minutes without writing any code. You get create, destroy, update, find, paginate, sort, and filtering out of the box. If you need to add your business logic to any of the methods or create your own methods, you can do that by writing simple JavaScript functions.

When you are ready to implement your security layer, Sails has you covered. Sails provides basic security and role-based access in the form of policies that can be applied any REST action. Policies are interchangeable with Express/Connect middleware which means you can plugin in popular NPM modules such as Passport. You can also easily implement your own email/password, social login or Windows authentication with a bit of JavaScript.

For data storage, Sails bundles the power ORM, Waterline, which provides a simple data access layer that just works, no matter what database you are using. Out of the box MongoDB, MySQL, PostgreSQL, and Redis are support. However, there are more than 30 data storage providers adapter that the community has created such as Microsoft SQL Server, Couchbase, Salesforce, and Firebase. You can easily switch between any data storage provider or mix and match data storage providers on a model by model basis.

This talk will be code heavy as we walk through getting started with Sails and demonstrate how to implement the features of Sails through the creation of an API. As well, I will share the tips and tricks that I have learned using Sails at a Fortune 100 company. You will walk away understanding how and why you should use Sails on your next project.

All code covered in the talk with be immediately available for download.

Speaker

Justin James

Justin James

Senior Software Engineer, Intel

React and Your .NET Core MVC App

Developing React applications usually mean developing a back end with .NET Core or NodeJS, and then a separate “plain-old” React app. This is great for applications with a “back-end” team and a “front-end” team. But in a LOT of situations, there’s only one team building the application and create a single code base with good separation between the front end and back end can be complicated. I will show you how to take the generated MVC application and integrate React with it in a way that keeps the layers separated, but easily deployable as a single app!

Speaker

Lee Brandt

Lee Brandt

Developer Evangelist, Okta

Real Agile for Real Software

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

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

Speaker

Lee Brandt

Lee Brandt

Developer Evangelist, Okta

Rebooting the ASP.NET Franchise

Are you an ASP.NET developer that is tired of the baggage and cruft within the framework? Do you wish you could use OS X for developing ASP.NET apps? Are you new to ASP.NET, but are adverse to installing Windows and Visual Studio? Everything has changed: ASP.NET isn’t just for Visual Studio, anymore. Learn how ASP.NET has broken free from Windows and has turned into a fresh, cross-platform, OS-agnostic framework. Develop ASP.NET applications on your OS, with your editor, in your way. No more compromises, no VMs, no workarounds. Grab some popcorn an experience the reboot of the ASP.NET Franchise.

Speaker

Jay Harris

Jay Harris

Problem Solver, Arana Software

Scaling Scrum to the Enterprise

Scrum is the most popular Agile framework in the world for effective team collaboration on complex projects. Scrum provides a small set of rules that create just enough structure for teams to be able to focus their innovation. Scrum is optimized for teams for teams of 5 to 9 people. Making Scrum work with larger teams or in large enterprise environments brings its own set of challenges. This talk presents 3 patterns used on enterprise teams to scale Scrum effectively with global teams.

Learning Objectives: * Learn the key elements of the Scrum Framework and how it drives success in building software * Discover Scrum’s limitations in large organizations and how they can be over overcome * Explore 3 non-exclusive and interworking organizational patterns that your teams can adopt to gain the benefits of scrum while scaling to larger development and product groups.

Speaker

Caleb Jenkins

Caleb Jenkins

Senior Software Engineer, Quicken Loans

Scrum 101: The Do's and Do Not's of this Popular Methodology

Everyone is doing it....using scrum that is. In this workshop, we will walk through the do's and do not's of this popular methodology. Using real life examples and years of expierence to draw from, presentor Rob Versaw will help you understand what has worked for him and teams he has been on throughout his career. Come with questions and ready for a hardy discussion!

Speaker

Rob Versaw

Rob Versaw

Director of Mobile Apps/Senior Product Manager, Overstock

Selling Agile to Executives: Overcoming Agile Myths and Misconception

Teams using Agile practices do things a little differently than teams using non-agile work management practices. Unfortunately, over the years, some of these things have been misunderstood or misrepresented in the business community. This talk will give you some tips to demystify and dispel some of the agile illusions help by folks outside the agile community.

Speaker

Nathan Adams

Nathan Adams

Agile Coach/Software Architect, NewBoCo

Site Reliability Engineering for Growing Organizations

Site Reliability Engineering is sometimes referred to as the practice of treating operations as if it were a software problem. It involves automating everything to achieve scale and resiliency while minimizing manual human intervention. As organizations grow and mature, systems become more complex and reaction times get slower. Expectations quickly change from "keep us up during peak hours" to "how many nines?" seemingly overnight. By the end of this talk you'll know what an SRE team looks like, what my experience has been like, and how your organization might benefit from a dedicated SRE team.

Speaker

Jason Loeffler

Jason Loeffler

Site Reliability Engineering Lead, Clearent LLC

Speak To Me: Voice Development Practices

What does it mean to develop a good interaction - without any visual aids? Natural Language Processing (NLP) has opened the door to communicating vocally, and made more easy to develop with popular platform APIs and in-home devices like Google Home and Amazon Echo. How do you start thinking about building for one of these platforms, or all of them? We will go over what has to be kept in mind for the development life cycle and empower you to make the architectural decisions that make sense with this emerging software skillset. This is a high level architectural and voice design discussion to avoid pitfalls and enhance user delight with your chatbot or voice skill.

Speaker

Heather Downing

Heather Downing

Senior Software Engineer, VML

Strategies for learning React

React has been on your radar for some time but you don't know the best way to dive in to the ecosystem. There are so many awesome libraries but it's hard to distinguish between what's necessary and what's addressing a pain-point you don't yet have.

In this talk, we will discuss strategies for learning React and some of React's core principles. From there, we will discuss how taking a component-based view of our front-end can help us build an application architecture that scales over time. Finally, we'll discuss some important lirbaries in React ecosystem and what problems they are working to solve.

Speaker

Ryan Lanciaux

Ryan Lanciaux

Software Engineer

Supercharge your Scrum Team

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

Speaker

Nathan Adams

Nathan Adams

Agile Coach/Software Architect, NewBoCo

The Hitchhiker's Guide to Azure Mobile Apps

Microsoft Azure Mobile Apps provides a straightforward way to expose backend data to multiple applications on multiple devices. In this presentation, I will show how to expose cloud data access and other processes via a REST interface and connect to that data from applications running on Windows, Windows Phone, iOS and Android. You will also learn how to secure these services; how to scale these services to meet volatile demand; how to push notifications to client apps; and how to manage Mobile Services from within Visual Studio.

Speaker

David Giard

David Giard

Senior Technical Evangelist, Microsoft

The Impact of Leveraging Open Source

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.

Speaker

Jeff Strauss

Jeff Strauss

Problem Solver, Arana Software

The Secrets of LINQ: the modern day Houdini

To many, LINQ is magic, but when you pull up the curtains, turn on the lights and see what the magician is doing, all becomes clear. You to have access to all the same constructs that LINQ uses to do its magic. Things like Funcs, Actions, lambdas, and expression trees.

Speaker

Brian Korzynski

Brian Korzynski

Sr. Software Engineer, NuArx Inc.

Tools and Procedures for Securing .Net Applications

With security attacks on the rise, protecting your applications and data is more of a necessity than ever before. We’ll discuss some of the features provided by Visual Studio and the .Net framework, such as Dotfuscator, SignTool, and encryption tools. In addition we'll look at other protective measures such as early intrusion detection, mitigation, and Social Engineering. These are topics not typically covered in other security presentations or material.

Speaker

Sam Nasr

Sam Nasr

Principal Consultant, NIS Technologies

Towards Elastic Scalability

This session introduces the various requirements for a system or application to support an elastically scalable environment. The session goes on to detail architecture and design features to support scalability. Finally, we'll dive into some of the details of implementing the features--with examples in .NET--that make a system or application scalable, some areas of difficulty, and how to be more successful.

Speaker

Peter Ritchie

Peter Ritchie

Software Architect, Quicken Loans

Transform Your Life, Transform Your Team! 8 Actions To Lead By Example

Leadership is a transformational journey for both the leader and for those being led. Most great leaders are go-getters, but to be an exceptional leader, you must understand that the ecology of leadership includes: diversity, mentorship, personal development, open communication, team building, skills sharing, and professional development. Leaders can learn to incorporate these suggestions into their professional and personal lives to get better results from the people around them. In this presentation we will cover 8 leadership actions you can start practicing now to create a diverse, supportive environment to get better results from your team.

Speaker

Christina Aldan

Christina Aldan

Speaker, Trainer, Digital Advertising Consultant, LG Designs

Unboxing ASP.NET CORE

ASP.NET Core is a new open-source Web framework optimized for building cross-platform web apps, IoT apps and mobile backends. ASP.NET Core comes with great new features ready to use out of the box with minimal setup required! In this talk we’ll look at .NET Core, architecture, package management and how to begin weighing the options between choosing .NET Framework and .NET Core. I will also share my experiences and insights while working alongside the .NET Core team at Microsoft to port over an existing project from .NET Framework to .NET Core; as well as the challenges we faced. Core brings Microsoft into the exciting world of open-source, cross-platform and package modularity/portability – Let’s see what we can build!

Speaker

Kevin Leung

Kevin Leung

Technical Evangelist, Microsoft

Understand Asynchronous Programming in JavaScript

If you are going to write JavaScript applications, sooner or later you are going to have to deal with asynchronous calls. And while on the surface they may seem intimidating, there a variety of tips, tricks and techniques in JavaScript to help you deal with them. In this session, I’ll explain how the JavaScript event loop works and how to manipulate it for your own ends. I’ll cover the various way to handle async, such as callbacks, promises and async/await including what makes them different and how to decide which is best for any given situation. I’ll explain who concurrency works a little differently in JavaScript then you might be used to and some patterns to deal with it. And finally, I demonstrate how to create your own asynchronous calls and when it’s appropriate to do so. You'll see that asynchronous JavaScript is an easy and effective way to create great and responsive JavaScript applications.

Speaker

James Bender

James Bender

Product Manager, Infragistics

Unit Testing Makes Me Faster: Convincing Your Boss, Your Co-Workers, and Yourself

Bosses hate unit testing. They see it as code that doesn't contribute to the final product. But here's the truth: unit testing makes us faster. We'll look at specific examples of how unit tests save time in the development process, whether we're creating UI-based applications or server-side libraries. With this in hand, we can show our boss how testing makes us faster and lets us move forward confidently and quickly.

Speaker

Jeremy Clark

Jeremy Clark

Developer Betterer, JeremyBytes.com

Unit Testing Strategies & Patterns in C#

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

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

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

Speaker

Bill Dinger

Bill Dinger

Solutions Architect, VML

Up and Running with Angular

If you have ever wanted to code an application with Angular this is your chance. Join us for a fun filled day of learning Angular in this hands-on workshop. You will go from 0 to 60 with your Angular knowledge and be able to create our own Angular applications by the end of this workshop. We will start with a new project and continue to build up the project until we have a full application at the end.

Topics Covered

  • What is Angular and the different parts that make up Angular?
  • Angular CLI Overview
  • Angular project layout overview
  • Creating common components like headers, footers, and menus.
  • Applying CSS to just a single component vs the whole site
  • Creating new components (pages)
  • Routing between components (pages)
  • Calling an external http service
  • Preparing your application for deployment
  • Testing overview (if time permits and our brains aren't already full with Angular knowledge)

Pre-Requisite Knowledge:

  • Html and CSS
  • Understanding of how events like click work in Html/JavaScript
  • TypeScript is helpful but we will cover the needed knowledge if you do not have any TypeScript experience

Pre-Work:

  • Node LTS 6.x (https://nodejs.org)
  • Visual Studio Code (https://code.visualstudio.com)
  • Angular CLI (npm install -g @angular/cli)
  • Create a new Angular project using the Angular CLI
    • Open Command Prompt or Terminal
    • Navigate to c:\ on Windows and ~/ on Osx
    • Run: mkdir projects
    • Run: cd projects
    • Run: ng new ng2ws --style scss --routing
    • Run: ng serve
    • Open browser and navigate to http://localhost:4200 and you should see the default web page for your Angular application

Speaker

Justin James

Justin James

Senior Software Engineer, Intel

User Experience is Included at Every Level

User Experience is included at every level of business. This can be seen within the culture of a company. The content, products, and services that the employees create, the company engages with its consumers. User experience is integrated into every touchpoint of a company's infrastructure when people engage with a brand. Learn why it's important to have a Generalist on your team to oversee the User Experience for a company at every level of its processes, including: hiring, design, development, advertising, and marketing.

Speaker

Christina Aldan

Christina Aldan

Speaker, Trainer, Digital Advertising Consultant, LG Designs

User-Dedicated Development

We acknowledge the importance of focusing on user experience. But do we really do this? Successfully prioritizing our user requires more than buzzwords and lip service. Our instinct and training drive us to think about architecture, schema, and code, rather than user interface or client needs. We need to retrain our mindset.

Learn how an interface-first approach to development—from discovery through design to implementation—actually improves efficiency and reduces rework. Modernize your processes for writing software, and in doing so effectively deliver solutions that meet client expectations. Become more than a coder; be a Problem Solver!

Speaker

Jeff Strauss

Jeff Strauss

Problem Solver, Arana Software

Using Analytics to Improve you Mobile App

For good or ill, apps live and die by their rating in the app store. What makes this measure worse is that all too often a disproportional number of those reviews come from disgruntled customers. This is were big data comes in. Using text analytics, customer usage patterns (big data), customer feedback (big data), in-house account information (big data), and logistic regression I was able to direct my team to improve our app. Not only did we improve our app, we took it from 2.5 stars to 4.7 stars. Want to learn how big data can your app? Make sure and check out my session!

Speaker

Rob Versaw

Rob Versaw

Director of Mobile Apps/Senior Product Manager, Overstock

Using IoT and Cognitive Services to protect your home

The world of IoT and hardware has unlimited possibilities on what you can create and do. Why not add the Cognitive Services suite to your toolbox, enabling you to create more user friendly, powerful and complex hacks? Cognitive Services allows you to add computer vision, speech recognition, language understanding and so much more by simply calling an API. In this session let’s learn about the powerful RaspberryPi and how we can utilize facial and voice recognition to keep your valuables safe in this awesome 2-step lock prototype! If you love taking selfies and talking to hardware when no one is looking – this hack is for you!

Speaker

Kevin Leung

Kevin Leung

Technical Evangelist, Microsoft

Website Performance: Profiling ASP.NET Server Side Code Effectively

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

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

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

What Every Developer Should Know About SQL Server Performance

Are you mystified by SQL Server performance? Do you wonder why sometimes your SQL statements runs fast but other times, they run painfully slow? Do you wish there was a pragmatic set of steps you could go through to troubleshoot performance problems that didn't require you to have a PhD in database internals? If so, this talk is for you.

In this talk, I'll describe database performance from a developer's point of view. I'll show how you can accurately measure the performance of any SQL statement, how to understand what the statement is doing when it runs and what you can do to improve this performance. I'll show how the right database indexes help SQL Server locate the data your application needs very efficiently and what you need to know to create effective indexes for your application. Finally, I'll discuss how you can use built in capabilities in SQL Server to find your worst performing statements and tables that are missing indexes so you can quickly find and solve your biggest performance bottlenecks. At the end of this talk, you will no longer regard database performance as black magic, but instead be able to confidently analyze and solve any performance problems you encounter.

Speaker

David Berry

David Berry

Solution Architect, Robert W Baird

What is DevOps?

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

Speaker

Curtis Cockerham

Curtis Cockerham

DevOps Engineer, New Context

What's New in Java 9

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

Speaker

Billy Korando

Billy Korando

Senior Software Consultant

Which way do I go? Which way do I go?: Understanding the Angular(2+) Router

The angular router enables navigation from one view to another in your single page application. It has many powerful features that allow software developers to configure and control how their applications respond to actions taken by users. The angular router translates URL’s into instructions, can pass parameters to views, prevent navigation to views that are not authorized, and maintain browser history so that the forward and back buttons are functional.

In this session, we will take a detailed look at the features of the angular router, examine how the router works, and learn how to leverage its power to deliver solutions. Attendees will leave this session with the knowledge needed to fully and confidently utilize the angular router features in their applications.

Speaker

Richard Taylor

Richard Taylor

Technical Lead/Sr. Software Developer, Logical Advantage

Why advanced search is NOT really advanced?

Almost all web sites that allow searches have a functionality called "Advanced Search". You clicked on it a form with all searchable fields pop up; you filled in search terms into the fields you would like to search against, hit the "search" button, a more refined copy of results pops up. Sounds like "advanced", right?

However, 99% of the times the users actually use is just the single search bar, which is called "Basic Search" by many. "Basic Search" isn't really "basic". It needs to break down search phrases, search against all possible fields, calculate scores, and add them up. It also has to consider "fuzziness", trade-off between precision and recall, words stemming, phonetic, term frequency, weighting factor ... so on and so forth.

In this presentation, Wenbo is going to explain why a single search bar is the much more advanced way of search. With real world examples from building Sift -- a people/directory search engine, Wenbo will walk you through all the critical components in delivering accurate search results.

Speaker

Wenbo Qiao

Wenbo Qiao

Software Engineer, Sift

Why you should use React Native for your next mobile app

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

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

Speaker

Gwendolyn Faraday

Gwendolyn Faraday

Developer, Consultant, Ion Three

Write Better JavaScript with TDD

JavaScript has become one of the most popular programming languages. Many of us who have been working with statically typed, OOP-orient languages like C# or Java have started working more and more in JavaScript. But while most of these developers who been using TDD in their previous language come to JavaScript, they often leave this practice behind. And it's understandable why. Developers who are familiar with unit testing in C# or Java can struggle with TDD in JavaScript. The language is different, the tooling is different, and all those cool frameworks that we use to build our applications can add complexity to the situation.

The good news is that unit testing your JavaScript is easy, and most frameworks have testability already built in! In this session, you'll see how to make sure your JavaScript is easy to test. You'll learn about the most modern testing tools that help you write tests, even for JavaScript that uses frameworks like jQuery, Angular, and React. And you'll see how TDD can help you start writing better JavaScript.

Speaker

James Bender

James Bender

Product Manager, Infragistics

Xamarin Forms: Writing one app to rule all your platforms

Are you seeking the Holy Grail of Write Once Run Anywhere app development? Then Xamarin Forms might be what you are looking for. This session will give you the information you need to understand Xamarin Forms and how it can be used to lower the friction of cross platform mobile development. You will see how easy it is to simultaneously create your app for iOS, Android, and Windows Phone using C# and this Open Source tool-set.

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

You are not your user

Why did my last product flop? Why aren’t users flocking to it like we thought they would? How do I make something better next time? How do I get buy in for my next great idea?

Fear not! In this session, we will discuss how anything from politics, to culture, to variance of internet speed around the world can affect how your product is received. Learn how to avoid falling into the trap of thinking you are the average user in your audience...and take the pressure off yourself with some good ol' DIY user tests, interviews, observation, surveys and a few other tried and true methods.

Learn whether your business and creative goals might be in direct conflict with a user’s goals and how to decrease the risk of making a bad experience. You will walk away feeling more confident in your business, design, and development decisions regardless of budget size.

Speaker

Sheila Mullings

Sheila Mullings

Experience Designer, VML