Indy.Code() Sessions

“JavaScript” is Not a Dirty Word

If you're an ASP.NET Web or Client Side Developer, the name "JavaScript" may induce feelings of dread or even terror. It's weird. It's not type-safe. It appears to be a bit flaky. It's hard to debug. Heck, it isn't even compiled! Besides, I have all these nifty ASP.NET controls that take care of all that for me, right?

Thanks to client side libraries like jQuery, Angular, and others, JavaScript is experiencing a renaissance. It's evolved from that weird browser language you used to use because you had to, to a powerful tool for creating web applications with richly featured client-side user interface. But it doesn't stop there; JavaScript is everywhere from server side code to hybrid mobile applications to IOT devices. If you're a .NET developer who's avoided JavaScript, it's time to jump back into the pool! This session will explain some of the key difference between JavaScript and C#/VB.NET, what the major JavaScript frameworks are and what they do, and show you how to take advantage of the power of JavaScript in your ASP.NET application.

Speaker

James Bender

James Bender

Product Manager, Infragistics

A Deeper Understanding of CSS

This talk is meant to explain how CSS specificity works, and how the browser affects your styles. It explains the browser's default styles, user agent styles, normalizers/resets, and the Inverted Triangle CSS methodolgy (ITCSS). All of this is preceded by a very basic introduction to CSS and it's terminology.

Speaker

Jared Wilcurt

Jared Wilcurt

UI Engineer, Salesforce

Adding ES6 to Your Developer Toolbox

Web developers constantly look for the latest and greatest ways to hone their craft, but changes come fast. From jQuery to Angular to React to Aurelia, CoffeeScript to TypeScript, it seems there is always something new. But ES6 is something different. With ES6 we are seeing the evolution of core JavaScript. It includes syntactic improvements and great new features never before seen in client-side code. Linters and transpilers for ES6 are readily available and easy to use. There is no need to wait; learn how to leverage the power of “the new JavaScript” in your applications today!

Speaker

Jeff Strauss

Jeff Strauss

Problem Solver, Arana Software

Adding Image and Voice Intelligence to Your Apps with Microsoft Cognitive Services

Cognitive Services is a set of APIs that use the power of Machine Learning to enhance your application. Using these APIs, you can quickly add image recognition and analysis; facial recognition, speech recognition, text-to-speech capabilities, and many other features to your application. In this presentation, you will learn about the capabilities of these APIs, how to test them, and how to call them via a REST web service and using some helpful .NET libraries.

Speaker

David Giard

David Giard

Senior Technical Evangelist, Microsoft

Agile Failures: Stories From The Trenches

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

Alexa Skills Kit with Web API on 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, a 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

An Introduction to building websites with Aurelia and Asp.Net Core.

In this session, we will look at the tools and techniques needed to get started building modern web applications with Aurelia for the front end and ASP.Net core for the backend. We will also discuss why you would want to pick Aurelia and ASP.Net core from the plethora of library options web developers have today.

We will create a new Aurelia front end with the Yeoman generator. We will create a WebAPI project in Visual Studio. And then we will look at making them play nicely together. Along the way, we will look at a little bit of WebPack, TypeScript, and JavaScriptServices.

Speaker

Eric Potter

Eric Potter

Software Architect, Aptera Inc

An Introduction to the functional language Idris

With the version .99 release in December, Idris is pushing its way into being a complete language. It is purely functional with similarities to Haskell, and a type system like Agda but is aimed at more general-purpose use than solely academic. We’ll look at its syntax, how it functions, and along with this, we’ll compare it to other functional languages. Finally we’ll talk about how it’s designed to function with a Type Driven Development approach.

Speaker

Kevin Miller

Kevin Miller

Senior Software Architect, TCC Software Solutions

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

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

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

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

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

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Angular: You’ve Talked About It, You’ve Read About It, Now You’re Ready to Build an Application

There has been a lot of activity with Angular over the last couple of years. As a developer, especially a web developer, the term/name Angular is not foreign to you. You have probably discussed it with other developers, you have read about it in developer trade publications, and you have probably written a sample “Hello Angular” application just to get a feel for Angular’s value proposition. Now you are ready to build a real application but you have some reservation on how to get started or if you have started, you are questioning if you are building your application correctly. In this session, we will explore using Angular to build the major features common to all modern web applications. This should give you a solid foundation for using Angular as an effective tool in your development toolbox.

Speaker

Richard Taylor

Richard Taylor

Technical Lead/Sr. Software Developer, Logical Advantage

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 Core

ASP.NET Core is a new open-source, cross-platform, high performance and lightweight framework for building Web apps using .NET. We'll introduce how to create an ASP.NET Core project on your platform of choice using Visual Studio 2017 or Visual Studio Code and then deploy to virtually any production environment.

Speaker

Scott Hunter

Scott Hunter

Microsoft

ASP.NET Core's Built-in Dependency Injection Framework

ASP.NET Core comes with its own built-in dependency injection (DI) framework. DI allows you to write better, more loosely-coupled code, and now with it built right into your favorite web development framework, you don't have to do anything extra to be able to use this important design pattern in your code.

Already have your own favorite DI framework? No worries, you can use that too. I'll show you how to integrate a few popular DI frameworks into the highly-extensible ASP.NET framework. I'll show you how to do it all and show you examples in this session.

Speaker

Jonathan "J." Tower

Jonathan "J." Tower

Partner & Principal Consultant, Trailhead Technology Partners

ASP.NET WebAPI & Swagger: Create Self Documenting API's

Most developers do not want to be bogged down with writing document, however, we expect that all of our partners provide us great API documentation. Its an amazing paradox, but a common situation. This session will discuss how you can take your existing WebAPI project and create amazing documentation, with test capabilities easily using Swagger. By making your code self-documenting it is possible to spend more time in your code, and less time working on documentation. With an automatic process as well, it is not possible for you to "miss" something in your documentation making it easier for the consumers of your API's.

After this session attendees will have a step-by-step understanding of how to integrate Swagger into their projects, to properly secure the implementation, as well as how to customize the layout to make the API truly match your application look and feel. A true turn-key understanding.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

ASP.NET with NoSQL Database Workshop

The workshop will show developers how to build a full-stack CRUD application with Couchbase Server. Angular will be used for the frontend, and application code will be written using ASP.NET WebAPI. Couchbase will be used as the backend database.

Attendees will learn:

  • Different options to install Couchbase Server
  • Basic configuration of Couchbase Server
  • Data modeling for NoSQL applications
  • Basic N1QL syntax to manipulate data
  • How to use the Couchbase SDK to perform CRUD operations
  • Couchbase SDK design patterns and anti-patterns
  • Effective use of developer tools such as Query Workbench, Couchbase CLI, and REST API
  • How to create a simple Couchbase cluster using Docker or cloud platforms such as Amazon and Azure
  • This workshop is intended for a broad range of developers interested in using Couchbase Server.

Prereq: In addition to good wifi access (hopefully not necessary, but just in case), basic development prerequisites include: Visual Studio 2015+, admin privileges to install software, node/npm/angular2 installed, 8gb RAM, plenty of hard drive space. (Optional: an Azure account already setup, Docker).

Speaker

Matthew Groves

Matthew Groves

Developer Advocate, Couchbase

Azure Functions and AWS Lambdas - Serverless Architecture and You

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

Speaker

Aaron Hoffman

Aaron Hoffman

Co-Founder, Stonefinch

Azure: Move to the Cloud, not just a Remote Server

Microsoft Azure has come a long way since it was first announced 9 years ago. There are many tools available for developers to easily transition to The Cloud, and not just push your existing on-prem website to a remote Windows Server VM. In this talk we'll cover some of the low hanging fruit within the Azure platform, including AppServices, WebJobs, and Message Queues, and demonstrate how easy it can be to start designing for the Cloud. We'll start from File > New Project and have a solution architected for the cloud, written, and deployed to Azure, within the first 30 minutes.

Speaker

Aaron Hoffman

Aaron Hoffman

Co-Founder, Stonefinch

Bash on Ubuntu on Windows

Windows 10 now provides developers with a familiar Bash environment. This environment will allow users to: 1. Run common command line utilities such as grep, sed, and awk 2. Navigate the file system using these commands 3. Run bash shell scripts which rely on supported command line utilities Windows accomplishes this through the Windows Subsystem for Linux which allows Ubuntu user-mode binaries provided by Canonical to run on Windows 10. This means that the command line utilities are the same as those that run within a native Ubuntu environment. In this session we will showcase scripting, code editing / compilation, and execution of X11 apps compiled for Linux using a local X11 server from within the Bash on Ubuntu on Windows environment. We will then discuss the implications of these features as they relate to existing developer workflows. Finally, we will show how to obtain the latest bits for Bash on Ubuntu on Windows that are in the Windows 10 Anniversary update.

Speaker

Kevin Remde

Kevin Remde

Sr. Technical Evangelist, Microsoft Corporation

Become a User Experience Designer for a Day

User Experience is about people and their interactions with the world. The User Experience design process links research to the creation of the design. The research can be used to validate use cases and user requirements that are part of Agile development processes. This workshop will give you an understanding of how research that involves the people who will use a product can be used to assess the efficiency, effectiveness, learnability, and error reduction of the 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.

Speakers

Michael Miserendino

Michael Miserendino

President, GravityDrive
Susan Shapiro

Susan Shapiro

Principal User Experience Consultant, GravityDrive

Beyond the Basics with Xamarin.Forms

At the heart of a great Xamarin.Forms mobile app is the ability to customize the user experience and shorten development time with reusable components. In this session, you will learn the skills to create high quality, robust, and beautiful apps all the while creating an arsenal of reusable components. You will learn how to extend Xamarin.Forms controls beyond their built-in abilities; how to style user interfaces, display dynamic data within lists and build complex layouts with grids; you’ll even learn how to integrate native controls right into the shared code layer. When you’re finished with this session, you’ll have the knowledge of Xamarin.Forms necessary to create fantastic apps in the real world.

Speaker

Matthew Soucoup

Matthew Soucoup

Principal, Code Mill Technologies, Inc

Branded for Success

Everyone has a personal brand! The question is are you in control of yours, or letting others define it for you? What does your brand say about you? Are you a Coca-Cola, Pepsi or RC Cola? Brand isn't just a logo and website, it's your first impression on potential employers, clients, and even your co-workers. Let's take a look at the relevance of a personal brand in today's developer market and what you can do to take control of yours.

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

Build a mobile application like a web developer using Ionic

As web browsers on both our computers and mobile devices continue to improve in both features and performance, the once gargantuan gap between native and hybrid mobile applications is quickly closing. While there will always be the need for native (Swift, Java) mobile development, the opportunity has never been richer for web developers to build their own mobile applications using codesets they already use on a daily basis.

Ionic is a hybrid mobile application framework. The term "hybrid" implies the fact that the applications built in Ionic create a digital handshake using web technologies (HTML, Javascript, CSS, etc) and native languages (Objective C, Java, etc). Essentially you build a single page web application that is hosted within a native wrapper. So you build the application like a web developer would, but export the application using XCode or Android Studio like that a mobile developer; all while writing one set of code and tapping into the benefits of each operating system.

In this presentation, you will learn how using Angular 2 and a few additional plugins, you can build a fully functioning mobile application that can be deployed to both Android and iOS operating systems, all using the same code set. As an additional bonus, you will also learn how to tap into how your users consume your application using the Mixpanel analytic platform.

Speaker

Doug Niccum

Doug Niccum

Technology Specialist, VML

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 plugin architecture for React components

For some components, simply providing a series of parameters that can change is not enough. In this talk, we will discuss one method for building a composable plugin architecture for React components and why this is useful. Additionaly, we will discuss how we can strike a balance between providing components that will have enough functionality out-of-the-box while still allowing extension.

Speaker

Ryan Lanciaux

Ryan Lanciaux

Software Engineer, OpenGov

Building an Offline First App that Syncs

Everyone hates apps that lag when the network connection is poor. Offline first goes beyond that, addressing unnecessary data transfers, responsiveness, cross-device sync, security, backend integration, scalability, and more.

In this workshop, I'll show you how to implement an app that deals with all these concepts. We'll use a robust, real-world proven stack, Couchbase Mobile. You'll leave with a working project based on a core use case.

Couchbase Mobile brings the power of NoSQL to mobile. It is comprised of three different components: Couchbase Lite, an embedded NoSQL database, Sync Gateway, a secure gateway that enables synchronization and data access over the web, and Couchbase Server, an enterprise-class, highly scalable NoSQL database.

Couchbase Mobile simplifies "offline first" development. Start by getting the benefits of a NoSQL database for use as your local data store. Move on to add synchronization, security, and back-end integration.

Course Outline:

Data Modeling - How to choose the data structure for entities and relationships between those entities.

  • Documents types
  • Relationships between Documents

Design - How to convert a set of application requirements and business rules into security rules for Couchbase Mobile.

  • Access to Channels
  • User privileges

Using the Database - How to use the persistence APIs and query language for simple queries and data aggregation to perform query operations across different model types.

  • Querying Data
  • Writing Data
  • Aggregating Data

Adding Synchronization - How to install Sync Gateway on your development environment, start the synchronization from the application and manage conflicts.

  • Installation
  • Synchronizing
  • Detecting and resolving Conflicts

Adding Security - How to add access control rules based on each authenticated user and how to add security locally with database encryption and offline login.

  • User Authentication
  • Read/Write Access Controls
  • Database Encryption
  • Offline Login

Speaker

Hod Greeley

Hod Greeley

Developer Advocate, Couchbase, Inc.

Building API's quickly and efficiently using SailsJS

Node.js is a platform built on Chrome's JavaScript runtime for easily building fast and scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices. The power that NodeJS provides to its users is that you can take Javascript, the life blood of every front-end developers skillset, and write backend applications with it. SailsJS enhances this power by building it's platform on top of Express.js, which is probably the most popular NodeJS frameworks, and extends it with additional tools and features.

What makes SaillsJS so invaluable for building REST API's is the ability to rapidly scaffold models and controllers, thus creating end points for the consumers of our API to push and pull data from. All of these aforementioned things can be done with a few Terminal commands and few lines of code; making SailsJS a phenominal platform for building rich REST API applications.

In this presentation, you will learn how to quickly scaffold a REST API using SailsJS, and how to integrate a simple AngularJS application to consume the API.

Speaker

Doug Niccum

Doug Niccum

Technology Specialist, VML

Building Apps with Intelligence

With the explosion of the cloud comes the explosion of compute power to solve complex problems. We have been playing with artificial intelligence for many years. Cloud services are now powerful enough that you can begin to build AI into your applications as simply as adding a reference to an API and a few lines of code. In this talk, we will explore and demo a few cross-platform APIs for building smarter and more personal experiences into your applications.

Speaker

Brian Sherwin

Brian Sherwin

Technical Evangelist, Microsoft

Building Mobile Apps is Hard - Make it Easier with ]Data, Discipline, and Dedication

Building the right software the right way can catapult your product to the front of the line.

Clean code, ruthless automation, hyper-collaboration, and Monte Carlo schedule forecasting are a few of the ways my team helps our clients hit their goals and wow their customers.

Throughout this talk I’ll discuss the unique set of practices my team has used to build an FDA regulated mobile medical app with over 80 screens, localized to 18 languages, released in 32 app stores, and in use in over 125 countries.

Speaker

Jon Fuller

Jon Fuller

Director of Software Engineering, SEP

Busy .NET Developer's Guide to NakedObjects

"I invented the term 'object-oriented', and I can tell you for a fact that C++ was not what I had in mind." --Alan Kay, inventor of Smalltalk (among other things) But what, exactly, did Mr. Kay have in mind? If not the kind of object-oriented that C++ (and later Java and C#) developers became accustomed to, then what did he really imagine O-O development would be like? In this presentation, we'll examine a concept more recently popularized as "naked objects"--the idea that objects should not be used to present a user interface, but that the user interface should be based around the domain objects themselves. We'll look at the Naked Objects libraries, how they work, and what development using NakedObjects looks and feels like. Careful, though: once you start working with this stuff, you may never want to go back to "traditional" means of writing code ever again.

Speaker

Ted Neward

Ted Neward

Director, Developer Relations, Smartsheet

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

Clojure(Script) for the JavaScript Devloper

ClojureScript has had a huge impact on the Javascript community. Numerous popular libraries including ImmutableJs and Redux have been inspired by ClojureScript and yet, it remains relatively unknown. In this talk we will dive into the anatomy of ClojureScript, drawing parallels between it and the Javascript people are already familiar with.

We will begin with a discussion of syntax, perhaps the simplest yet strangest aspect of ClojureScript. As we learn the basic elements of ClojureScript, we will begin to explore its distinct features, namely immutability, purity, and its "code as data, data as code" paradigm. With these features explored, we will dive into the value proposition ClojureScript gives us for everyday development. This will include a comparison between ClojureScript and the current dev environment we as Javascript developers face (webpack, babel, etc) and a demo, including figwheel (a hot code-reloader that actually works), and clojure.spec (a validation library with super powers).

The talk will end with some resources to help people dive into Clojure(Script) as well as a brief Q&A to help clear up any questions people might have.

Speaker

Jimmy Miller

Jimmy Miller

Lead Developer, Trabian

Code your Infrastructure

“Infrastructure as Code” as a tenet of DevOps is exciting to IT and Dev organizations alike.  Imagine quickly and consistently building, tearing down, and re-building whole test/dev/production environments in the public and/or private cloud.  Create and apply a text file that quickly configures storage, network, subnets, virtual machine NICs, firewall configurations, and virtual machines; all in one operation!  In this session we’ll walk through the basics of building and utilizing these JSON templates, both in plain text and when driven through other tools such as Git, Git Hub, Notepad++, Visual Studio Code, and Visual Studio.  This will be a demo-heavy session, leaving you with examples and do-it-yourself homework to help you continue learning this very useful new cloud-first engine.

Speaker

Kevin Remde

Kevin Remde

Sr. Technical Evangelist, Microsoft Corporation

Confessions of a Successful Project

A successful project is one that makes both the customer and the developer happy. Typically, doing this requires a project to be completed on time and under budget, as well as having a maintainable codebase. In this session you will follow a fictional project through requirements gathering, time estimation, and finally development – all from the viewpoint of a small team. At each leg of the journey problems will come up, and I will show you some options for getting the project back on track. You will leave this session with some ‘agile’ new ways to help make your next project a success.

Speaker

Creating a Mobile Experience for an Existing Modern Application

A significant number of developers today spend their time on maintaining and/or extending existing application platforms. Often, they are tasked with building a mobile application that is intended to integrate well with existing infrastructure and provide a rich mobile experience. In this session, we will leverage your existing skills and build a cross platform mobile application that is well integrated (security, api, data, etc.) with an existing modern application platform using Xamarin.

Speaker

Richard Taylor

Richard Taylor

Technical Lead/Sr. Software Developer, Logical Advantage

Creating an artificially intelligent chat 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 Hello Friend 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

Creating Three Beautiful Apps at Once with Xamarin.Forms

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

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

Speaker

Matthew Soucoup

Matthew Soucoup

Principal, Code Mill Technologies, Inc

Cross-Platform vs. Native Apps - In Perspective

Should you write your app “native” or use a “cross-platform” solution like React Native, Xamarin, or NativeScript? The new wave of native-cross-compiling solutions provide significant cost savings, code reuse opportunities, and lower technical debt. Does wholly native, per platform development, still play a role in future mobile development? Let’s discuss together.

In this presentation, we'll discuss:

  • The growth of native, hybrid, and cross-platform mobile development solutions
  • Cost analysis of multiple native and cross-platform apps
  • Considerations for each native and cross-platform solution
  • Lessons learned

Speaker

Auri Rahimzadeh

Auri Rahimzadeh

Owner, Auri's Ideas

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

Developing ASP.NET Core in VS Code

Microsoft’s biggest web platform is now open source and cross platform. Most of the demo’s shown are using Microsoft’s flagship Visual Studio product. In this talk I’ll show you how to use their lighter weight (but cross platform) Visual Studio Code to build a sample ASP.NET Core project. You’ll learn both ASP.NET Core as well and Visual Studio Code.

Speaker

Shawn Wildermuth

Shawn Wildermuth

Owner, Wilder Minds LLC

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

Extending a Django App with REST Capabilities using PyCharm

This is an interactive session on how to leverage Python and Django to extend an existing web application and add REST capabilities. Come learn how to represent your data in multiple formats. Get key "DRY" (Don't Repeat Yourself) tips to keep your code clean and maintainable. Discover how the Django REST framework can create URLs for you. Make sure you have a consistent API across all your models. Inspect the database and test your API with PyCharm. Learn to debug your application with the powerful PyCharm debugger.

Participants will learn how to create a serializer for the models in their API. They will know the difference between function based views and class based views for REST endpoints. They will be taught how to use ViewSets and Routers to quickly provide an HTML-based UI to explore their API. They'll be shown how to leverage GenericAPIView for quick REST interfaces and use the provided Mixins for a consistent API.

Speaker

Calvin Hendryx-Parker

Calvin Hendryx-Parker

CTO, Six Feet Up

From C# 6 to C# 7, then and now!

Modern C# developers rely on features from C# 6 (the latest version) to increase their productivity. Productivity is vital for any modern developer. C# 7, like its predecessors is all about saying less while doing more. It is more expressive than before. C# makes writing code fun.

C# 7 is going to be available soon. This shiny new toy is nearly here...SQUIRREL! In this presentation we'll cover the features you know and love from C# 6. Likewise, we'll see C# 7 while demonstrating several of its key features in Visual Studio 2017.

Speaker

David Pine

David Pine

Technical Evangelist, Centare

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

Front-end Web Development with Angular2 and TypeScript

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

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

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

Requirements for attendees:

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

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

Speaker

Kevin Grossnicklaus

Kevin Grossnicklaus

President, ArchitectNow

Functional C#

In functional programming we often use pipelines and function composition to let data flow through a series of operations in a concise, readable manner. Object-oriented languages don't typically support this style of programming but it's possible to achieve a similar effect through method chaining and, by extension, fluent interfaces. Using these techniques however, is seldom an option as they are both architectural patterns that rely on having been deliberately built into the types with which they're used. This is further complicated by the typically statement-based nature of object-oriented languages. But all is not lost. In this talk we'll borrow a few ideas from functional programming so we can not only easily achieve a similar effect in C# but also fix existing broken fluent interfaces such as the one exposed by the StringBuilder.

Speaker

Dave Fancher

Dave Fancher

Principal, Achiiv Solutions, LLC

Getting out of the Rut - A Dive into Haskell

As professional developers, it is easy to get stuck in a rut. The reality of our jobs force us to use the same technologies over and over again. Often times we find ourselves bored; gone is the challenge that hooked us on programming to begin with. This talk is aimed to confront that boredom, to take us out of our comfort zone, into a language that is vastly different from those we use in our day to day work.

Haskell is a purely functional language. This means there are no loops, no variables, no classes, no objects, no side-effects, no mutation. Haskell's approach to programming stands in stark contrast to the predominant paradigms of programming today. Learning Haskell is like learning programming for the first time.

In this talk we will dive into what makes Haskell unique. We will talk about purity, immutability, currying, laziness, and static typing. This will be a whirl wind tour designed not to make you a Haskell expert, but to give you a glimpse of the other side; to show you a side of programming you may never have encountered before. After this tour we will look into Haskells uses in the real world and discuss Haskell's influence on the future of programming.

Speaker

Jimmy Miller

Jimmy Miller

Lead Developer, Trabian

Getting pushy with SignalR and Reactive Extensions

As our systems increasingly demand more real-time updates, we need better ways of working with these live streams of information. Traditional pull models fail to provide the real-time responsiveness and scale needs that modern systems expect. Moving to a push model allows us to scale easier and react to new data as it becomes available. SignalR facilitates push notifications over HTTP to a variety of clients. The Reactive Extensions were designed to allow for asynchronous LINQ over push based collections. In this talk, you’ll see how the synergy of these two technologies merge to make otherwise difficult tasks, a push over.

Speaker

Jim Wooley

Jim Wooley

Solution Architect, Slalom

Habits of highly effective JavaScript developers

Javascript is easy to do very badly, but also fantastic when done well. In this session, Jon will walk through some JavaScript best practices to make you a more productive developer. From linting your code, to adhering to common patterns, Jon will give you practical tips to help prevent some common JavaScript troubles.

Speaker

Jonathan Mills

Jonathan Mills

Paige Technologies

Hololens Mixed Reality for Fun & Profit

What innovations are the current generation of mixed reality devices capable of providing? Lets explore what a commercial augmented reality solution might look like using the Microsoft Hololens and how you can get started building real business solutions.

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 I learned to stop worrying and love estimation

"I can do without the problem solving and coding. Where I really thrive is estimation!" said nobody ever.

We've all been there before. A client is working against the clock to meet a trade show deadline and casually throws out "when can I expect x?" You and your team excuse yourselves and hide in a conference room. You break down the work. You assign story points. You roll bones and gaze at entrails. And then you pad everything. Everything. And then you're wrong. We're always wrong.

But what if you could be less wrong?

Estimation doesn't have to be a scary endeavor full of expensive and unreliable guesswork. It doesn't have to be an exchange where the Chief Engineer ("I can have the engines operational in four hours") gets overruled by the Captain ("You have two hours!") (why did he ask for estimates if he already knew the answer?). In this presentation I'll talk about how, after many years of learning-by-screwing-things-up, I've come to approach estimation -- and how laid back estimation can be.

Speaker

R. Michael Rogers

R. Michael Rogers

Lead Software Engineer, Software Engineering Professionals

How to be a Six Figure Developer

Software and website developers are in extremely high demand and rates continue to climb, but many developers have not yet realized their potential. Being good at what you do is important, but it’s equally important that you can communicate the value you bring to an organization and build a reputation that will provide opportunities for growth, both professionally and financially. We will work together to measure your accomplishments, establish a personal brand, and walk away with a resume that conveys your true value!

Speaker

Gaines Kergosien

Gaines Kergosien

Executive Director, Music City Code

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

Identity Management in ASP.NET Core

Injecting custom code into authentication and authorization in ASP.NET has always been a chore. ASP.NET Identity is a library built to replace both ASP.NET Membership and Simple Membership, making it much easier to implement custom authentication and authorization without the need to rewrite core components. In this session I will go deep into the abstractions that ASP.NET Identity builds atop of, and show how to take advantage of these hook points to implement a custom membership system.

Speaker

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

Imposter Syndrome: Overcoming Self-Doubt in Success

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

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

Speaker

Heather Downing

Heather Downing

Senior Software Engineer, VML

Improving code quality with Roslyn Code Analyzers

The new .Net compliers in Visual Studio 2015 include the ability to expose the language services to allow developers to build their own analyzers and code fixes/refactorings. In this session we'll introduce you to the capabilities of the compiler platform and demonstrate how we can extend it to more proactively catch common coding smells and patterns that would have otherwise caused runtime exceptions that can be caught during compilation instead. If you've relied on third party commercial coding tools like resharper in the past, you'll see how you can build your own tooling extensions or leverage some of the many open source solutions.

This will be a hand's on hack type session, so bring your computers and ideas for tools that you would like to build. We'll start with some introductory demonstrations, but include ample time for working through some hand's on examples.

Speaker

Jim Wooley

Jim Wooley

Solution Architect, Slalom

Improving code quality with Static Analyzers

Whether you're an independent developer that needs assistance reviewing your code, or a member of a large team that wants to keep code consistency among the team, static analyzer tools can help identify and optionally fix issues in your code. Many platforms have their own version to help based on the language, including Roslyn, JsLint, CssLint, SonarQube. FxCop, StyleCop, etc. We'll take a look at some of these tools and explore how they can help identify issues in your code and improve maintainability and decrease errors before you deploy to production. We'll also look at the ability to build your own tool to enforce rules in your specific domain.

Speaker

Jim Wooley

Jim Wooley

Solution Architect, Slalom

Intellectual Property Fundamentals for the Technologist

Today, more than ever, technologists need to be aware of the basics of intellectual property law and the broad effects it has on decisions you make every day. There is a prevalent myth that if something is available on the Internet, it must be free to copy and use as we please. Nothing could be further from the truth. In this session, we will cover some of the core principles of IP. Become a better informed technologist and gain the confidence to discuss these topics with your professional advisors and with your own team.

Speaker

Jeff Strauss

Jeff Strauss

Problem Solver, Arana Software

Intro to Android.... with Xamarin

Every been curious about Android? Ever wanted to make an application using Android but the sheer number of OS version and devices made your cruinge? Good news, in this talk I plan to cover the basics of Android but use C# and Xamarin to build my apps. Topics include: * Setting up your Xamarin environment to do Android development * Working with Activities, Fragments, and Layouts * Using RecyclerView, Action Bars, and Coordinator Layouts

As part of the talk, I will build a Android app showing how Xamarin hooks into the process and allows you to use C# to build apps. We will also cover how Xamarin works (at a high level).

Speaker

Jason Farrell

Jason Farrell

Principal, West Monroe Partners

Intro to Azure Search

Most apps and sites have a search box. Azure Search helps developers quickly make this search box come to life. What used to take months can now be done in days and weeks.

In this session, you’ll get an introduction to what Azure Search is and why you may want to use it with your apps and sites. Instead of searching for your next session, why not learn about searching your data?

Introducing ASP.NET Core: From the Ground Up

Microsoft is re-inventing ASP.NET to embrace open-source and the web community. In this talk, Shawn Wildermuth will walk you through an empty project to serving MVC6 pages. While he shows you the nuts and bolts, he’ll explain the reason why ASP.NET Core is a completely re-write of the platform.

Speaker

Shawn Wildermuth

Shawn Wildermuth

Owner, Wilder Minds LLC

Introduction to Entity Framework Core

Writing data access code is tedious and mundane. The simple act of creating the CRUD (Create, Read, Update, Delete) operations doesn't add business value to your application, but it is an absolute necessity. In this session, I show you the core features of Entity Framework and how it can save you invaluable time that is much better spent on providing business value and compelling features into your applications.

Introduction to Functional Programming

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

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

Speaker

D'Arcy Cross

D'Arcy Cross

Software developer III, TCC

Introduction to Functional Reactive Programming

As web developers we are faced with a growing number of features that interact with services, respond to user interactions, and store and retrieve data. The coding paradigm most of us learned for managing this complexity usually leads to confusing code that's difficult to write and even harder to explain.

Functional Reactive Programming (FRP) is a different way of thinking about code. It moves your thinking away from the step-by-step operation of the computer and into a more abstract contemplation of how your program should respond when state of your application changes.

Session attendees: * Learn the basic concepts of FRP * Review the advantages of FRP over imperative-style coding * Discover a variety of JavaScript library options for FRP * Walk through a simple JavaScript web app using FRP

Speaker

Corinna Cohn

Corinna Cohn

Consultant, Fusion Alliance

Introduction to iOS..... with Xamarin

Every been curious about iOS? Ever wanted to make an application using iOS but thought Objective-C was daunting? Good news, in this talk I plan to cover the basics of iOS but use C# to build my apps. Topics include: * Setting up your Xamarin environment to do iOS development * Working with Storyboards, Seques, and Scenes * Using View Controllers, Navigation Controllers, and Tab Controllers * Auto Layout

As part of the talk, I will build a simple iOS app showing how Xamarin hooks into the process and allows you to use C# to build apps. We will also cover how Xamarin works (at a high level).

Speaker

Jason Farrell

Jason Farrell

Principal, West Monroe Partners

Introduction to TypeScript

JavaScript is a fantastic language. It is, depending on your source, either the most popular language in the world, or one of the most popular, and for good reason. It runs just about anywhere, has the potential to be highly expressive, and lends itself well to many different programming styles.

Originally intended to add small behavioral scripts to webpages, JavaScript has grown into a language with which teams are making applications with sometimes hundreds of thousands of lines of code. At this scale, it can be all too easy to mix up types or object shapes, leading to frustrating bugs that can soak up a lot of time in debugging. undefined is not a function is not an especially helpful console error after all. JS simply doesn't have the tooling and features that other languages like C# or Java have to help with large codebases.

TypeScript offers a solution to these problems. It is a statically typed superset of JavaScript which lets you decide how much static typing you want to use. This means that it is JavaScript, with extras. It compiles to JavaScript as well, so anywhere you can use JavaScript, you can use TypeScript. Finally, the tooling available for TypeScript is phenomenal.

We'll discuss what TypeScript is in more detail, how you can use it, and what benefits you'll gain from doing so.

Speaker

Craig Burton

Craig Burton

Sr. JavaScript Engineer, PlatformQ

Let's Meet Watson

Introduce audience to the cognitive/augmented abilities of IBM's Watson, open shelf API's available for developers, present case studies and success stories.

Speaker

Javeria Masood

Javeria Masood

IT Consultant, netlogx

Level Up with PowerShell

Time is a valuable and precious resource, and it seems there are never enough hours in a day. Come learn how PowerShell can empower you to be a more effective developer. We'll look at how PowerShell can be used to help solve common problems and examine what makes it such a rich and powerful tool. In this session we will look at how PowerShell is built on top of the .NET framework and how you can leverage you existing skills to automate different aspects of your development/deployment processes.

Speaker

Brent Stewart

Brent Stewart

Co-Founder, Alien Arc Technologies

My personal journey as a woman engineer in technology

This is not a talk about discrimination against women, or about why they shun STEM fields. It is about my unconventional entry into the field of technology, and my hope that it will encourage others to take chances as I did. My training as a chemical engineer and my subsequent long career in software may serve as an example to men and women thinking of switching careers and fearing the process.

It is also my attempt to show how we sometimes are our own biggest hurdles to achieving anything. It is easy to blame discrimination or harassment for our setbacks. It is usually our fears or lack of confidence in our abilities that cripple our capacity to move forward. Fear has been my companion all my life, and the only way it has left has been by pursuing the very things I feared. When we shift our power outside ourselves, we tend to blame circumstances. My message here is to work on oneself, persevere, and aim to influence from within whether you are a man or a woman. Whatever your background may be, I hope you will have the courage to keep learning, set higher goals for yourself, and help draw less likely people into our industry.

Speaker

Jyotsna Raghuraman

Jyotsna Raghuraman

Lead Software Engineer , SEP

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

Next Generation Asynchronous Patterns in JavaScript

With ES6 and ESNext we are no longer limited to simple callbacks when dealing with our asynchronous JavaScript code. This session will walk through four options for async patterns, addressing when to use each one and identifying the problems they solve. We will start with a discussion of ES6 Promises and generators, continue with ESNext Async/Await, and close with a conversation about RxJS. Broaden your understanding of the available tools and start writing better asynchronous JavaScript today.

Speaker

Jonathan Mills

Jonathan Mills

Paige Technologies

No really, what is a monad?

If you're like me, you've been hearing about this thing called a monad for a while now, but no one can really explain it to you. It sounds like some mystical thing that only Haskell programmers seem to understand. To add to the confusion, there are many different types of monads (IO monad, State monad, Error monad, etc.), all serving different purposes. This talk will focus on demystifying the monad. We will explore some of the common monadic structures, and demonstrate how their usage adds clarity, supports code reuse, and simplifies many computational workflows.

Speaker

Trevon Sutton

Trevon Sutton

Senior Software Engineer, SEP

Not Just My Opinion: The Psychology of Good Design

Have you ever heard the phrases “beauty is in the eye of the beholder” or “I like what I like” when someone is dismissing your design? Too often good designs are dismissed for aesthetic differences instead of appreciated for its intrinsic value.

Many features of good design are objective, not subjective, and can be either qualified or quantified with predictable results.

Together we will delve into the psychology, physiology, and mathematics of design principles for two key purposes:

  • Validating our designs
  • Convincing others of the value and validity of our designs

Playing with Fire : Build a real-time application with Firebase

Firebase is a Google Platform as a Service (PaaS) which makes writing and deploying web and mobile applications faster and easier than ever. Now a front-end web developer can create fully-featured applications without needing to manage servers or infrastructure.

Come learn how easy it can be to take your app idea from concept to production, using the fully-featured Firebase platform.

In this workshop you will build your own Twitter-like social messaging application, start to finish, as you learn how to:

  • Use the Firebase real-time object database
  • Implement Firebase security rules
  • Organize your data to take advantage of the Firebase strengths
  • Add authentication using an OAuth provider
  • Use the Firebase CLI to deploy a web application

Speakers

Michael Dowden

Michael Dowden

Software Architecture Lead, CSpring

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

Practical Performance Tips and Tricks to Make Your HTML/JavaScript Faster

How to tackle real-world web platform performance problems in modern websites and apps? This session starts with a basic understanding of the web platform and then explores to a set of problem/solution pairs built from industry-standard performance guidance. In the talk, Doris will demonstrate performance tips and tricks that will help you improve the performance of your apps and sites today. Doris will discuss the following respond to network requests, speed and responsiveness, optimizing media usage, and writing fast JavaScript. These performance tips and tricks apply equally to web sites that run on standards based web browsers, as well as to modern apps.

Speaker

Doris Chen

Doris Chen

Senior Developer Evangelist, Microsoft

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

Prioritize This!

A quick overview of multiple gotchas and fixes that affect any process to get and set the priorities. Are you a PM, PO, dev, manager, leader, exec, or just an interested party in how to do better at prioritizing? Product, service, or organization...it's all the same thing. No official process, Agilarian, Scrummarian, Waterfall, Kanban, or latest craze you're all welcome. Don't worry, if you get the priorities wrong it's only your time, money, success, and happiness.

Speaker

Randy Skopecek

Randy Skopecek

Lead Applications Architect, PLM

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

Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too

Until recently, agile business had to choose between the benefits of JSON-based NoSQL databases and the benefits of SQL-based querying. NoSQL provides schema flexibility, high performance, and elastic scaling, while SQL provides expressive, independent data access. Recent convergence allows developers and organizations to have the best of both worlds.

Developers need to deliver apps that readily evolve, perform, and scale, all to match changing business needs. Organizations need rapid access to their operational data, using standard analytical tools, for insight into their business. In this session, you will learn the ways that SQL can be applied to NoSQL databases (N1QL, SQL++, ODBC, JDBC, and others), and what additional features are needed to deal with JSON documents. SQL for JSON, JSON data modeling, indexing, and tool integration will be covered.

Speaker

Matthew Groves

Matthew Groves

Developer Advocate, Couchbase

Radical Requirements: Tips for Delivering What They Want

Agile, Waterfall, or Agile-Fall understanding what the users want is key to a successful project. Throw away the 100 page document and join us on a journey about how to elicit requirements out of customers who don’t know what they want. In this session we’ll teach you some radical techniques to getting the requirements you need to deliver great software. This isn’t another high tech tool for capturing requirements and tracing them. This is about tools you already have and how you can use them to get the results you want.

• Facilitate requirements gathering sessions with alternate means • Select appropriate requirements gathering approaches • Convert activity output into requirements

Speaker

Rob Bogue

Rob Bogue

President, Thor Projects LLC

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

Stop Keeping The Lights On

Often developers are paid to merely "keep the lights on" when they could instead be forces of innovation. This type of work is typically less rewarding than more creative, challenging endeavors and can lead to increased turnover, increased apathy, and decreased software quality. This session explores various anti-patterns and obstacles within organizations that make it hard for developers to do their best work. Solutions will be proposed to both the developer and the manager to move past the roadblocks and empower innovation.

Speaker

Michael Dowden

Michael Dowden

Software Architecture Lead, CSpring

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 libraries in the React ecosystem and what problems they are working to solve.

Speaker

Ryan Lanciaux

Ryan Lanciaux

Software Engineer, OpenGov

Taking a Gamble on F#: Implementing Blackjack

Have you heard a lot about about functional programming, and aren’t sure how to get started? Have you tried learning the concepts, but still having a hard time applying them to a real problem? Then this talk is for you! In this presentation I’ll walk you through how to model the classic card game, Blackjack, using F#.

Intended for developers with little to no functional experience, my talk will introduce you to the basic concepts of functional programming while applying them to Blackjack. By the end of the presentation, you’ll know the basic concepts and how to apply them.

Speaker

Cameron Presley

Cameron Presley

Senior Software Engineer, Pilot Flying J

The Buddhabrot: Generating a 68 gigapixel fractal

Buddhabrot

If you're like me, computer graphics is not an area you typically get to explore in your day job. In this talk we'll learn how to render a preposterously large version of the Buddhabrot fractal from scratch. The Buddhabrot is a mathematically defined image - handy for us who aren't artists since the computer gets to make the pretty pixels. Along the way we'll touch on the entire range of .NET parallelization mechanisms from Task Parallel Library to SIMD vectors to GPU computing as well as some strategies for handling and visualizing such a huge image.

Speaker

David Aramant

David Aramant

Staff Software Engineer, Software Engineering Professionals

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 Saboteur in Your Retrospectives: How Your Brain Works Against You

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

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

Speaker

Arthur Doler

Arthur Doler

Senior Software Engineer, Aviture

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, LG Designs

TypeScript: The Why and the How

With the growing popularity of libraries like Angular 2, its underlying language--TypeScript--is also growing quickly in popularity.

In this session I'll give you much more than just a basic introduction to the language and its syntax and constructs--I'll give you the reasons why you should care from a software engineering perspective. We'll also take a look at the tooling that comes with TypeScript and how it can help you incorporate it into your next JavaScript project.

Speaker

Jonathan "J." Tower

Jonathan "J." Tower

Partner & Principal Consultant, Trailhead Technology Partners

Uptown Func<> Delegates for Everyday Development

Do delegates seem too cryptic and complicated for everyday development? Are you confused every time you see a Lambda expression in code? They don't have to be so mysterious, because .NET brings you a plethora of built-in functionality and C# makes them easy to use. In this session we'll Func<U> up until you've got a handle on how delegates work. We'll explore how, why, and when you should use delegates in your code. You will see examples of practical applications for everyday development use and how delegates and Lambdas bring you closer to mastery of Linq.

Speaker

Duane Newman

Duane Newman

Co-Founder, Alien Arc Technologies, LLC

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, LG Designs

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

Utilizing Azure Mobile App Services

Cloud data storage. Offline data sync. Push notifications. Authentication.

To make a first-class mobile app, you need a backend that supports all of the above. However, server side development is very different than mobile development; how is a single developer supposed to know it all?

Luckily, Azure Mobile App Services makes it easy to connect cloud services into an app.

In this session, I will provide an introduction to Azure Mobile App Services and demonstrate how it can provide a robust cloud infrastructure for your app. You will learn how to leverage Azure Mobile App Services with offline data sync, authentication and push notifications to create robust and full featured cloud-enabled apps.

Speaker

Matthew Soucoup

Matthew Soucoup

Principal, Code Mill Technologies, Inc

Website Performance: Understanding the big picture, and how to improve

This session takes on an important aspect of software in a practical manner. By properly understanding the fundamental concepts that make up the web environment we can look at how and why websites perform the way we do. We will explore concepts such as HTML structures, content best practices (images, documents, etc), as well as server/software architecture and how it impacts the real-world performance of your applications.

We will explore opportunities to better monitor and quantify the performance of an application, and how to use this information to implement changes that will result in real improvements. THe impacts of things such as Angular, Bootstrap, jQuery and other related components will be reserached. The session will leave with recommendations on how to improve performance for all applications and guidelines for how to "dive deeper" for those issues not resolved with the high-level improvements.

Speaker

Mitchel Sellers

Mitchel Sellers

CEO, IowaComputerGurus, Inc.

What C# Programmers Need to Know About Pattern Matching

One of the most intriguing new features in C#7 is Pattern Matching. At first glance, it just looks like a more powerful switch statement. But upon further investigation, it can dramatically clean up your code. They key is the approach the pattern matching with the right mindset. In this session, we will look at how languages like F#, Elixir, Swift, and Rust benefit from using pattern matching. We will learn how to get the most out of this language feature in C#.

Speaker

Eric Potter

Eric Potter

Software Architect, Aptera Inc

What every developer needs to know about crypto

You've seen the headlines: "So-and-so product hacked, information exposed" or "Company in hot water after major data breach". Too often, even a subtle misunderstanding of crypto can leave data in an insecure state. In this presentation, we'll discuss common pitfalls, such as using raw hashes for message authentication, misusing block cipher modes of operation, storing passwords insecurely, and others. Practical, real-world advice for avoiding these pitfalls will be given throughout. By the end of the presentation, you'll know more about securing systems, so that you can help protect your users' data.

Speaker

Sasha Kotlyar

Sasha Kotlyar

Senior Software Engineer, Software Engineering Professionals

What Makes You DO Stuff? The Psychology of Motivation

Are you sick of the words "motivation", "empowerment", "engagement", or "incentivize"? Are you convinced that any attempt to actually motivate you, your coworkers, or your employees is doomed to end in a dystopian Dilbert-like nightmare? Do you suspect some of your coworkers - or even you - might be motivated by something other than money (and might even be replicants)? No need for a Voight-Kampff test... just come learn about the psychology of motivation, and how your brain responds to it! We'll cover the history of motivation theory, some more modern concepts that aren't often talked about, and then offer some suggestions about how to use your new knowledge to help your company - or at least you - finally get rid of those "Teamwork!" posters on the walls.

Speaker

Arthur Doler

Arthur Doler

Senior Software Engineer, Aviture

What’s New in .NET in 2017

There has never been a better time to be a .NET developer. You can now build Android, iOS, Linux, Mac, and Microsoft Windows applications with .NET all in open source. In this session we will run through some of the new innovations including the .NET Framework updates, .NET Standard, Universal Windows Platform updates, .NET Core, managed languages and more. We also review the updates to Microsoft Visual Studio and Visual Studio Code to make you a better developer. See some of the latest productivity features in these tools including managing code style, searching your source and more.

Speaker

Scott Hunter

Scott Hunter

Microsoft

What's New in TypeScript?

TypeScript, an open source project, has seen enormous growth over the past year. Today, it is used to build several key frameworks like AngularJS, Ionic etc. Across the board developers are falling in love with TypeScript as they find it to be the most productive way to work with JavaScript. In this talk, Doris will go through how TypeScript enables you to leverage features from the current and future of JavaScript while increasing the productivity of JavaScript development across the board. As ECMAScript 6 gains popularity and more browsers are implementing the standard, JavaScript developers across the board are beginning to wonder, 'what's next?' This session will cover some of the latest features of TypeScript, including future ECMAScript proposals, support for Angular and React/JSX, the state of the art type system capabilities, and how it all comes together to make working and creating things in JavaScript more productive and fun with TypeScript.

Speaker

Doris Chen

Doris Chen

Senior Developer Evangelist, Microsoft

What's the Problem?!?: How to Resolve Conflict

Conflict is everywhere. With your users you’re fighting for reasonable requirements. With your infrastructure team you’re fighting about deployments and what you can do. You’re even in disagreement with your fellow developers about the right way to implement the latest feature. Most of us would admit that we don’t always resolve conflicts as easily as we would like. Come learn the skills to quickly and easily navigate the difficult waters of conflict. Learn how to keep your cool while stating your needs and how to get others to listen to you. Prepare for a different experience as you’ll do exercises to teach you the skills you need to be an expert conflict negotiator.

Development managers don’t have a place to send their developers to get soft skills – by providing the soft skills and technical skills developers need we can capture more of the conference going developers.

• Identify the factors that lead to conflict • Create an environment for dialogue • Select strategies to minimize conflict

Speaker

Rob Bogue

Rob Bogue

President, Thor Projects LLC

Why OSS at Microsoft

What started as a war is turning to a love affair. Over the last two decades, Microsoft has moved from a fierce opponent of the penguin to recently being welcomed by Ubuntu, Red Hat and others. Recently, Microsoft announced they were joining as Platinum level members of the Linux Foundation and have contributed to a number of Foundation-managed projects including Node.js, Open Containers and the R Consortium. Come learn what their approach to open source is and what it means to your OSS development.

Speaker

Brian Sherwin

Brian Sherwin

Technical Evangelist, Microsoft

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

Workshop - Applied Agile

“You got your agile processes in my engineering practices!” “Well, you got your engineering practices in my project management!” All too often teams working towards agility stand divided between the processes (such as Scrum and Kanban) and the engineering practices (such as Extreme Programming) and completely forget what agile is really about. Agile is more than the latest methodology or certification. I will show you that the way to be truly agile is to blend concepts together into a single great harmony.

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

Writing Great Requirements - Tips From an Engineer's Perspective

It can often seem like the devide between the developers and the rest of the company is too wide to cross. Nowhere can this divide seem larger than when writing requirements or user stories. At times, it's as if the two groups speak entirely different languages, especially when clearly stated expectations somehow still produce software which isn't quite what the business needs.

In this fun, interactive session, we'll discuss common ways in which requirements can fall short of what engineers need, and how to fix them. The result will be a greater understanding of how to bridge the gap between what the business needs and what the developers need.

Speaker

Craig Burton

Craig Burton

Sr. JavaScript Engineer, PlatformQ