KEYNOTE SESSION - RACHEL APPEL

"The Inmates Are Running The Asylum"

Rachel is a 20+ year software engineer, author, mentor, and speaker. During her career, she has worked on projects of all sizes from the smallest of apps, to the largest enterprise systems at some of the world’s leading companies. Rachel currently works as an independent consultant following a tenure at Microsoft; however she still works closely with Microsoft as an ASPInsider and IE userAgent.

You can read Rachel's monthly "Modern Apps" column for MSDN Magazine, or her blog about software development at http://rachelappel.com. Catch her speaking at top conferences such as VSLiveDevConnectionsDevlink, and Netconf UY. Her expertise is in web development on the Microsoft stack, including ASP.NET MVC, Web Forms, SignalR, C#, HTML, CSS, JavaScript, and TypeScript. Rachel also deals with data as a DBA and data scientist, and is an all-around language nerd (both computer and human).

This talk is an ode to all the failed projects, bad code, and other crazy things that software engineers, managers, and coworkers do. Have you been on a project death march, or a project you knew was a train wreck? Or perhaps you've seen code that defies all logic? Whether it's ruining the integrity of a database, or eating up all the available memory on a machine, every day we see people making bad choices, causing projects to fail. This session is a series of what not to do, and what you can do instead to ensure the success of your projects.



BREAK-OUT SESSIONS

Canopy: Easy Automated UI Testing for the Web

Eric Potter
Level: Introductory
Track: Craftsmanship/Process

Canopy is a powerful and intuitive tool for writing automated tests for web applications. It uses a DSL that is easy learn. And the DSL is built on top of F# which gives you the full power of that language as well. In this session, we will look at how to get started, even if you have no F# experience.

Interested Not Interested




Typography: History and You

Noah Read
Level: Introductory
Track: Design

This presentation will delve into the historical importance, effect, and shaping of typography. It will tie the modern discipline of screen based typography with its past and encourage excitement for this foundational element of design.

Interested Not Interested




Defense In Depth With AOP

Nerdy Beardo
Level: Intermediate
Track: Craftsmanship/Process

Web application security has never been harder. Our adversary is cunning and clever, and with software becoming more and more complex its harder than ever to ensure security. This presentation is about using Aspect Oriented Programming to help organize our code in a way that makes implementing security practices easier, centrally maintained and helps to bring security to the forefront of the software development process. Our aim is to slow or stop our attackers on multiple levels using AOP as our mechanism for achieving this. Code for this talk will be in C# with PostSharp however the concepts can be applied to virtually any programming language or AOP tool.

Interested Not Interested




Fun with Swift

Leo Dion
Level: Intermediate
Track: Mobile

Do you want to learn the hottest new language? Leo will be discussing how it compares with other languages and what are it's benefits and challenges compared with Objective-C. He will also get into some of the more technical aspects such as reflection.

Interested Not Interested




Why A 10 Billion-Dollar SnapChat Is Good News For You: Knowing and Getting Your Market Value

Jeff McKenzie
Level: Introductory
Track: Craftsmanship/Process

Don't we love to talk about the latest twenty-something overnight Internet billionaires, and their apps worth so much on paper, in stock, for cash, or even in trade for countless strands of bright, shiny beads? But what about the smaller, important successes that happen all around us, all the time? Not so much. We back away from talk of salary and rates. We consider them secondary to the important work of building software. But every day, developers find a way to do the work they love and be paid fairly at the same time, a circumstance that promotes healthy focus on what matters day to day. In this session, you'll learn from the compensation negotiation successes -- and mistakes -- of a nearly twenty-year career as a software developer, in the roles of full-time employee, contractor, unemployed freelancer, and long-term consultant. Discover strategies that will help you recognize and attain your elusive, yet concrete, personal value in the marketplace today.

Interested Not Interested




Start Up and Git Done: Using Visual Studio Online

Jeff McKenzie
Level: Introductory
Track: Craftsmanship/Process

Want to change the world? Make a lot of money? Preferably both? For a limited time only, I'm offering a few lucky individuals the opportunity to invest in my exciting new startup! The official details are pretty top-secret right now, but I can share with you our competitive advantage: the cloud-based Visual Studio Online. My business team loves the Agile management features, and my developers commit like mad with the freedom of the Git distributed version control system. In this exclusive presentation for accredited investors, I'll show you how we use VSO with Git to plan, build, test, and deliver our product. (Disclaimer: this session may contain parody and/or satire.)

Interested Not Interested




Introduction to Async and Await

Stephen Cleary
Level: Introductory
Track: Coding for Fun

Is the world of async/await passing you by? No need to worry with this catchup session! Join async guru Stephen Cleary for a down-to-earth introduction to the new async and await keywords. No previous expertise required! We'll cover just what you need to know as a developer: where async helps (and where it doesn't), how it works (without unnecessary details), and best practices to get you started on your async adventure!

Interested Not Interested




Async Unit Testing

Stephen Cleary
Level: Introductory
Track: Coding for Fun

Asynchronous code is awesome, but it presents some unique difficulties for unit testing. Come to this session to learn practical techniques for unit testing code using async/await. You'll first learn how to conceptually model async/await, which helps you avoid the most common async problems. Moving on, this talk covers the current state of async unit testing in various frameworks and libraries; and tips on how to properly mock/stub asynchronous code. By the end of this session, you will have a full grasp of how to unit test asynchronous code, and you'll have an arsenal of techniques to address even the most complex scenarios.

Interested Not Interested




Tuning Java for Big Data

Scott Seighman
Level: Intermediate
Track: Data

Want your Hadoop environment to sizzle like bacon? Perfect, because in the time it takes to fry 4 pounds of crispy bacon, we'll identify causes of common performance issues in Big Data environments, discuss heap size, garbage collection, and JVM reuse tuning guidelines plus recommend tools to analyze your Big Data application performance.

Interested Not Interested




Exploring your data world with spatial data

Michael Henderson
Level: Intermediate
Track: Data

We encounter spatial data just about daily in many ways. Think Google searches for nearby Thai food, or that Facebook notification about friends at the restaurant next door. But outside the world of GIS professionals, spatial data doesn't get enough attention or love. This session will explore some of the options for storing and retrieving spatial data, with an emphasis on spatial queries in SQL Server. Finally, we’ll look at some real world examples of businesses using spatial data in their applications.

Interested Not Interested




Getting Started with Office 365 Development

Paul Schaefleinb
Level: Introductory
Track: Portals/CMS

Microsoft CEO Satya Nadella has stated that the Office 365 API is the key to the company going forward. This session will introduce you to this key capability. Learn about how O365 handles authentication, discovery of capabilities, mail/contacts/events, files and SharePoint data.

Interested Not Interested




Cloud-based Identity for Applications

Paul Schaeflein
Level: Intermediate
Track: Web/Rich Internet Applications

The identity landscape for cloud-based applications is rapidly evolving and very confusing. How does AAD, OWIN, ADAL and ASP.Net Identity work together? Or do they work together at all? This session will cover the security standards and the code libraries to implement them.

Interested Not Interested




Mix it up with Elixir - Approachable Functional Programming

Andrew Bredow
Level: Introductory
Track: Coding for Fun

There are many options for writing highly scalable applications in a functional paradigm. Elixir is a modern addition to this landscape, providing a powerful yet expressive programming language with features like pattern matching, higher order functions, and macros - all built on top of the time-tested Erlang VM. In this talk, we'll take a look at the history of Elixir, dive into the syntax and ecosystem, and show some examples demonstrating the strengths of the platform and how it can solve real world problems. You'll discover that Elixir isn't only a powerful tool; it is also fun to use and will change the way you think about programming!

Interested Not Interested




Building iOS applications with Xamarin and C#

Tom Walker
Level: Introductory
Track: Mobile

Xamarin has made it possible for C# developers to leverage their skills in developing iOS applications. In this session we’ll build a simple multi-screen app that will show the basic app creation using Xamarin Studio, Storyboards, iOS’s MVC pattern, debugging, and more. This will be a comprehensive talk but not too difficult of a dive into iOS development using Xamarin and C#.

Interested Not Interested




Make a SASSy CSS Cocktail: Bourbon and Bitters Served Neat

Brandon Martinez
Level: Intermediate
Track: Design

With the popularity of CSS frameworks and preprocessors, there are many options available for web developers in modularizing their styles. But once we've gotten past some of the "do-it-all" frameworks like Twitter's Bootstrap, how can we maintain more control but still ease our development? Simple! Three small SASS libraries: Bourbon, Neat, and Bitters. Using these three libraries, we can easily build and maintain a site's user interface, including taking advantage of newer CSS3 features such as transitions, transforms, and responsive design. In this session, we'll setup a SASS environment and get to work building a UI that you can easily maintain even after a few drinks.

Interested Not Interested




Taking a Small Blog to the Big Cloud: WordPress on Azure

Brandon Martinez
Level: Intermediate
Track: Web/Rich Internet Applications

Microsoft Azure isn't just an amazing platform for ASP.NET, it's also an excellent platform for hosting the world's most popular blogging engine: WordPress. With WordPress powering 19% of the web and Microsoft Azure adding more services at amazing price points, it's a no-brainer to combine the two. Leave your traditional shared webhost behind and look to the cloud. In this session, we'll walk through creating a new, git-driven WordPress installation running as a Microsoft Azure Website. We'll also tie into other cloud services, such as Azure Block Blob Storage for storing media, SendGrid for sending emails, and ClearDB for our database. You'll be ready to launch to the cloud in no time!

Interested Not Interested




A Beautifully-Modern Web with SVG

Heather Buchel
Level: Introductory
Track: Design

With the increasing landscape of devices with high-resolution screens, creating and maintaining beautiful graphics for the web is more difficult than ever. We can easily end up with large file sizes for our CSS image sprites, low-quality image animations, or the hassle of maintaining several different versions of a graphic when we rely on PNG, JPEG or GIF alone. Scalable Vector Graphics (SVG) can be used to solve many of these issues, and—even though they were first created in 1999—they fit snuggly into modern web development. We'll learn how to automate SVG sprites, look at ways of implementing them into our web app, and even see how they can fit into our favorite JavaScript task runners, such as Grunt or Gulp.

Interested Not Interested




C# Inception: Using Roslyn and C# Code to Analyze C# Code

Eric Potter
Level: Introductory
Track: Desktop

Project Roslyn is Microsoft's next generation .Net compiler. It's API allows you to dig into the details of any C# or VB Code. It can be used to improve your code by doing deep analysis and custom rule enforcement. In this presentation, we will look at how you can get started with the Roslyn C# API.

Interested Not Interested




Harness the Power of Marketing Automation

Brian McKeiver
Level: Introductory
Track: Portals/CMS

Automation isn't just for robots anymore. Join my session to see how you can use Marketing Automation tools in combination with content management systems to reach your customers in a highly personalized way. As a cms developer, these tools such as triggers, processes, lead scoring, and content personalization add a whole new dimension to your tool belt.

Interested Not Interested




MVC Apps with SharePoint 2013

Steve Mushkat
Level: Intermediate
Track: Portals/CMS

The Model-View-Controller (MVC) pattern for SharePoint apps offers developers the "separation of concerns" approach, where UI, business logic & data can be built independently. In this session we'll look at coding & deploying Apps for SharePoint 2013, using the MVC design approach. We'll be using Microsoft's Office 365 and Azure for the demos.

Interested Not Interested




Real World Functional Reactive Programming

Eric Polerecky
Level: Advanced
Track: Mobile

Functional Reactive Programming (FRP) is a relatively young paradigm for building applications. You may have heard that The Cool Kids™ like GitHub and Netflix are hooked on FRP. What you might not know is why, the history and how you can get started with this powerful model. Functional and Reactive Programming talks are usually Super Boring™ but in this talk I’ll be taking academia out and replacing it with Real World Experience™. I’ll review common FRP patterns, pitfalls to watch for, and touch on ReactiveUI - a .NET/Xamarin framework to help ease your entry into FRP. Most demos will be in C#, but we’ll do short reviews of FRP libraries in JavaScript, Obj-C, Java and possibly others.

Interested Not Interested




Thinking in SQL

Michael Swieton
Level: Intermediate
Track: Data

Typically, people think about SQL as the data store for an application. Tools like ActiveRecord have trained us to think that 1 row == 1 business domain object, but this loses much of the power of SQL. I'll present a useful mental model for the execution of SQL queries, and we'll review some queries that demonstrate more relational thinking: intentional cross products, joining a table to itself, and potentially other queries that you don't see every day. This talk will focus on SQL querying and won't require knowledge of ActiveRecord, Hibernate, or any ORM. We also aren't looking at procedural languages - just SELECT statements.

Interested Not Interested




Intro to React Using Modern JavaScript

Brian Scaturro Jason Sich
Level: Intermediate
Track: Web/Rich Internet Applications

React is the new hotness when it comes to rich application development in the land of JavaScript. As of version 0.13, React is embracing the future of JavaScript and moving full steam ahead with ECMAScript 6, the next version of JavaScript. We will cover building React applications using modern clientside workflows, including using the JavaScript of tomorrow today. We will introduce React while introducing tools like gulp, traceur, and jest to build and test our projects.

Interested Not Interested




The Secrets of LINQ: the modern day Houdini

Brian Korzynski
Level: Intermediate
Track: Data

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. By knowing how they work, you too will be able to pull a rabbit out of a hat.

Interested Not Interested




ASP.NET is Coming to an OSX Near You

Jay Harris
Level: Introductory
Track: Web/Rich Internet Applications

Do you wish you could use OSX for ASP.NET development? Interested in exploring the .NET web frameworks, but are adverse to installing Windows and Visual Studio? Do you judge Mono as a less-than-ideal port of the .NET framework? Everything has changed: ASP.NET isn’t just for Windows, anymore. Learn how ASP.NET has broken free from Windows and has turned into a 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: ASP.NET is coming to an OSX near you.

Interested Not Interested




Growth: Moving Beyond "Independent Developer"

Jay Harris
Level: Introductory
Track: Craftsmanship/Process

You’ve made the decision to go out on your own. Do you want to stay an Army of One or do you strive for something more? Spend an hour discussing the obstacles you will encounter if you go it alone and the obstacles you will encounter if you don’t. Learn philosophies that will help you on your way to an Army of Two, from before, to during, and for after your transition to Employer. Move beyond Independent Developer, and switch from “Me” to “Us”.

Interested Not Interested




Overcoming Integration Challenges with Messaging...

Joe Ratzloff
Level: Introductory
Track: Design

This presentation will discuss a variety of common integration challenges encountered by developers including transactional inconsistency, loss of data, and brittle process management. A variety of integration patterns will be reviewed with a focus on messaging patterns and the bus architectural style. Agenda Application and Systems Integration - Integration Options - Messaging Patterns Architectural Styles Common Messaging Patterns - Correlated Request Response - Pub/Sub Messaging Distributed SOA Strategy - Long Running Process & Event Driven Orchestration Challenges of Distributed Message Based Systems

Interested Not Interested




Automating Myself Out of a Job

Tore Franzen
Level: Introductory
Track: Coding for Fun

Have you ever felt depressed and frustrated after filling the same web form over and over again? Or upset after sitingt at your desk hammering the same set of keys over and over again in order to copy the same text into some obscure tool? The answer to all these questions and more is automation! I plan on covering a wide range of automation topics from automatic code generation and automated testing to automating everyday tasks. I will touch on some everyday use cases where automation may have not been obvious before. Some of the tools I plan on mentioning are: Python, IFTTT, Selenium, DOORS DXL (scripting interface to requirements management tool), Command Line Interfaces (CLIs) for programs and many more.

Interested Not Interested




Build Real-Time Websites and Apps with SignalR

Rachel Appel
Level: Introductory
Track: Coding for Fun

If you've ever wanted to build a highly responsive app that leverages a real-time communications library, then SignalR is for you! Real-time web functionality is the ability to have the server push messaging aggressively to the client, rather than relying on the client to make multiple and frequent requests. SignalR is a set of ASP.NET server and client libraries that you can use to build real time, scalable, websites and apps. You can use SignalR in both enterprise and consumer apps, and across platforms. This session covers what you need to know to build a SignalR app that connects multiple clients instantaneously.

Interested Not Interested




Lessons Learned from Working Remotely: No Pants Required

Michael Eaton
Level: Introductory
Track: Coding for Fun

Stuck in a cube and want to convince your boss to let you work remotely? Already working remotely and struggling to be productive? What are some things you can do to make life easier as a lone(ly) developer? With a few simple practices, it can be extremely rewarding and I will share many of the lessons learned and practices I've developed working remotely since the early 90s.

Interested Not Interested




© West Michigan .NET User Group