Date for Desert Code Camp - 2014.2  Saturday, October 18, 2014 8:00:00 AM - Saturday, October 18, 2014 6:00:00 PM

Speaker List

John Ackerman

More on John Ackerman

Sessions

Track
.NET
Title
Azure DocumentDB 101
Abstract

An introduction to the new Microsoft Azure DocumentDB, a fully managed, JSON document database service. The following is a rough overview of the topics that will be covered in this one hour lecture. Topics are subject to change due to time constraints.

  • Introduction to DocumentDB
    • Introduce concepts of NoSQL and a document store.
    • Why relational databases are hard to scale (sometimes).
    • How document-based DBs solve these issues
    • Where does DocumentDB fit?
    • Architecture and Vocab
  • Configuring DocumentDB
  • Finding and Saving a Document
    • .NET and JavaScript APIs
  • Advanced Querying
  • Writing JavaScript Stored Procedures, Triggers and User-Defined Functions

Slide deck will be made available upon completion.


Larry Apke

More on Larry Apke

Sessions

Track
Agile
Title
Story Points Revisited
Abstract
Perhaps one of the most misunderstood concepts for people new to Agile (and even some not so new) is the concept of story points. It seems that everyone remembers planning poker and playing with cards, but the real essence of what points are, how to assign points, when to assign points, how to use points to determine velocity, what points mean to upper management seem to be either forgotten or not properly trained from the start. Learning objectives: * Learn that points are not absolute but refer to relative size * Learn that points are almost always specific to a scrum team and should not be used to determine relative maturity among teams * Learn that Planning Poker is perhaps the most inefficient (though memorable) way to assign relative size * Learn other appropriate techniques for sizing * Learn to size with non-collocated teams (if you are stuck with such an arrangement) * Learn how to use points to plan long term potentiality * Learn how to explain points to others to dispel prevalent myths

Rob Bagby

More on Rob Bagby

Sessions

Track
.NET
Title
TDD Kata Live!
Abstract
Are you still trying to understand how TDD can help drive your design? Still not sure what the benefits of TDD? Not sure how you would get a project started using TDD? In this session, Rob Bagby will do the Shopping Cart Kata (http://codekata.com/kata/kata09-back-to-the-checkout/) from beginning to end (if he can make it). You will see how this approach will help you separate the responsibilities of classes (SRP) and drive a design that is open for extension and closed for modification (OCP).

Ross Beamish

More on Ross Beamish

Sessions

Track
Agile
Title
Mob Programming - A Year Later
Abstract
Mob Programming is, as described by its community leader from mobprogramming.org, Woody Zuill, all the smart people focused on the same problem at the same time using the same computer. Come discuss with us what this means, how it works, and what we've learned about the practice after adopting it and using it for a year on a couple of different teams at Infusionsoft.

Thomas Behlau

More on Thomas Behlau

Sessions

Track
Other
Title
Escape Merging Hell: Auto-merging with Atlassian Stash and Bamboo
Abstract

Take a deeper look into the auto-merging capabilities of Atlassian's Stash managed git repositories and Bamboo build plans. Discover how these features make developers' days less painful.


Steve Booze

More on Steve Booze

Sessions

Track
Other
Title
Advance Your Career - Move Into IT Management
Abstract

Are you considering changing your career from the thought leader track to the people leader track? We will discuss some of the advantages and pitfalls of entering into management, how to get started, the successful pitch upwards and buy-in from below.

 

 


Les Brown

More on Les Brown

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Xamarin.Forms Mobile Development with the new 3.0 framework
Abstract
Build native UIs for iOS, Android and Windows Phone from a single, shared C# codebase.

Inactive User

More on Inactive User

Sessions

Track
Javascript/Node.js
Title
Isomorphic JavaScript: An Obsession in 4 parts
Abstract

Using the same JavaScript both clientside and serverside is coming closer and closer to reality with libraries like React, Mach, and Webpack on the rise. Join me in pursuit of this holy grail of web development and see how much code we can share.


James Bucanek

More on James Bucanek

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Adaptive Views in iOS 8
Abstract
iOS 8 completely rewrites the rules for how screens (view controllers) appear and how they adjust their content to the ever-expanding world of iOS devices. Drop in to get a grounding in the two skills you need to write modern iOS apps: view controller presentation and adaptation.
Track
Other
Title
Design Patterns: The mystic secret of great programmers
Abstract
Design patterns hold the key to effective software development. We all know what a great UI looks like, but what does great software design look like? Get a brief introduction to design patterns and design principles, and then dive into the most impotant and commonly used patterns: Model-View-Controller, The Observer Pattern, Delegation, the Open/Closed principle, and a few others. Design patterns are applicable to almost any computer language, but are especially useful in object-oriented ones.

Shaun Callighan

More on Shaun Callighan

Sessions

Track
DevOps/System Administration
Title
Crazy Little Thing Called Change: Using Automation to Track Application Change Over Time
Abstract

Sometimes it can be a daunting task to keep track of what has been done in between releases of an application.  When multiple developers or even entirely different teams are trying to commit features and fixes on the same project, records can be jumbled at best. Often, spreadsheets or other story boards are filled in by hand to try and keep tabs on implemented changes, but things can still sneak by without being documented or tasks that came in during the middle of a development cycle can be lost. This presentation takes a look at one approach that can be utilized to automatically generate a list of changes which can then be used to populate future change requests and release notes or just to keep afloat in a sea of change.


Kevin Carlino

More on Kevin Carlino

Sessions

Track
Javascript/Node.js
Title
Approaching the Singularity with the WebSpeech API
Abstract
Discover the power of the WebSpeech API and how it will help bring the WWW to life. Demonstrations of a practical applications built in Angular and Node.js.

Nick Ciubotariu

More on Nick Ciubotariu

Sessions

Track
Javascript/Node.js
Title
Get to know Knockout.js
Abstract

Declarative bindings? Observable Arrays? MVVM? And just how is Knockout different than Angular or Backbone, for instance? In this session, we will cover Knockout.js, the Model View ViewModel design pattern, and how to develop and build dynamic and rich UI applications by leveraging well structured, flexible client-side JavaScript and using less code.


Jeremy Clark

More on Jeremy Clark

Sessions

Track
Other
Title
Abstract Art: Getting Things "Just Right"
Abstract

Abstraction is a blessing and a curse. Too little, and our applications are difficult to extend and maintain. Too much, and our applications are difficult to extend and maintain. Finding the balance is the key to success. The first step is to identify your natural tendency as an under-abstractor or an over-abstractor. Once we know that, we can work on real-world techniques to dial in the level of abstraction that is "just right" for our applications.

Track
.NET
Title
Dependency Injection: A Practical Introduction
Abstract

We all want to build code that is maintainable and easily testable. Dependency Injection can help us get there. But what is Dependency Injection? The answers to the question seem to cause more confusion than help. We'll start with the basics to see what Dependency Injection is, why we want to use it, and how we can add it to our applications. Be prepared to spend a lot of time in code. After we have a good handle on the how all of the pieces fit together, we'll see how a DI container (such as Unity or Ninject) can make things even easier.

Track
.NET
Title
Learn to Love Lambdas
Abstract

Lambda expressions can be confusing the first time you walk up to them. But once you get to know them, you’ll see that they are a great addition to your toolbox. Used properly, they can add elegance and simplicity to your code. And some .NET constructs (such as LINQ) lend themselves to lambda expressions. We’ll take a look at how lambda expressions work and see them in action. No specific experience is required (but some .NET is helpful).


Michael Collins

More on Michael Collins

Sessions

Track
Other
Title
Azure Cloud Finance
Abstract
Imagine that you launch the next great web application. You built a killer app that given just enough time will develop a cult following that will line your pocket books. The app has perfect code, perfect performance, and a fantastic future. Next, imagine that while you are just getting started with your sales and marketing efforts, the bills start rolling in for the cloud hosting services. It starts off slow at first, but as your usage grows and you begin to scale out, it gets more expensive. Then imagine a few more months down the road, you're spending more money on cloud hosting services than you are bringing in. Eventually, the cost of running the site just becomes too much and you close the site down. The Microsoft Azure cloud is a great hosting environment for your next big application, but just as important as a great design is a great understanding of the costs involved in cloud hosting. In this presentation, you will learn about how much cloud services will cost you and strategies that you can apply in your software designs to reduce the costs of hosting your applications. You will learn how to consider and plan for the financial effects of your application design in order to determine the optimal design to maximize your profits and return on investment.
Track
Other
Title
Making Programs Talk
Abstract
Modern and future software development is not about building single programs that run happily in their own private environment. Modern applications are distributed and integrated with others using technologies such as REST, web services, web APIs, and asynchronous messaging. In this presentation, we're going to explore several technologies that help programs talk to each other. In this presentation we will explore questions such as: * REST/web API vs SOAP services * Are Thrift and other technologies really viable for service implementation? * What is asynchronous messaging, and how do I best apply it to my solution? We will explore all topics from both homogeneous (same language/same platform) and heterogeneous (different languages or platforms) perspectives.
Track
.NET
Title
PowerShell for .NET Developers
Abstract
UNIX operating systems have long had their shell that was put to use in very powerful ways. Microsoft Windows and MS-DOS have had the lesser powerful batch scripting...until PowerShell came along. While PowerShell is primarily a tool for dev-ops and system administration, it can also be a very powerful platform to implement features for your applications. Either by using PowerShell as a scripting interface or providing an expert-level command-line interface for your applications, PowerShell is a tool that simply cannot be ignored by .NET developers in the world of cloud applications. In this session, we will explore what PowerShell is; how to write commands, scripts, and programs using PowerShell; and finally some best practices for PowerShell development.

Alex Crough

More on Alex Crough

Sessions

Track
Other
Title
Purely Functional Programming in an Imperative World – An introduction to PFP with Haskell
Abstract
An introduction to programming without side effects using the Haskell programming language, including recursion and iteration using lists; higher order functions such as filter, map, and fold; an overview of controlling flow using the functor, applicative functor, and monad type classes, and an introduction to safe concurrent programming in the language.

Alan Dayley

More on Alan Dayley

Sessions

Track
Agile
Title
Panel: Agile In Practice
Abstract

A panel of Agile experienced practitioners will address questions from the attendees. We will focus on the application of Agile ideas to practical situations. Bring your questions about practicing the ideas in the Agile Manifesto, Scrum, Test Driven Development, The Kanban Method and any other Agile practices.

Please sign up to co-teach if you want to be on the panel.


Inactive User

More on Inactive User

Sessions

Track
Javascript/Node.js
Title
MeteorJS: Brilliant Shooting Star, or Shiny Space Junk?
Abstract

Meteor JS is a relatively new full stack JavaScript solution (https://www.meteor.com/). It provides a full featured stack that is capable of binding data securely all the way from the web view to the data layer with a minimal amount of code, and its all reactive. Intrigued? Great! Not sure what half those words mean? Great! Come check out the presentation and leave with a sense of wonder.

I'll cover features of the Meteor framework, basic project setup, and use in a real application. If we have time we'll also discuss some of the major pros and cons of using a full stack solution.

Track
Javascript/Node.js
Title
Real World WebSockets
Abstract
Using the latest version of socket.io we'll look at the code and functionality of a real world web application that is using this in production. We'll look at how to work around reverse-proxies that don't have WebSockets enabled and still enable the use of WebSockets. You will leave this session armed with the knowledge to implement WebSockets in your web application and you will be able to enable real-time interactive updates and collaboration.
Track
Java
Title
What's new in Java 8
Abstract

Java 8 added some fairly ground-breaking functionality to the language. Lambdas, default method implementations, and function interfaces add a whole slew of possibilities for functional programming in Java.

Quick Agenda:

  • New Date/Time APIs
  • Default Method Implementations
  • New Reflection Functionality
  • Lambdas / Function Interfaces
  • Wrap Up

Inactive User

More on Inactive User

Sessions

Track
Javascript/Node.js
Title
Learning Node.js Lab
Abstract
In this lab style presentation you are encouraged to code along and build a simple and understandable Node.js utility that will be used to query the status of a web site. You will get the most out of this if you already have Node.js installed ( http://nodejs.org/ ) and are able to use a basic text editor to follow along. You will still benefit from this presentation even if you are unable to participate just by following the example and trying it at home later. You will leave this presentation armed with a utility that you can use to query your websites and the knowledge to change it to suit your needs.
Track
Javascript/Node.js
Title
Real World WebSockets
Abstract
Using the latest version of socket.io we'll look at the code and functionality of a real world web application that is using this in production. We'll look at how to work around reverse-proxies that don't have WebSockets enabled and still enable the use of WebSockets. You will leave this session armed with the knowledge to implement WebSockets in your web application and you will be able to enable real-time interactive updates and collaboration.

Alan Faulkner

More on Alan Faulkner

Sessions

Track
Other
Title
SQL Server Analysis Services Best Practices
Abstract
A journey through best practices in relation to scalable SQL Server Analysis Services cube design. From dimension design to SSAS engine internals we will explore SSAS multidimensional design patterns that will take you through steps to assist in getting your SSAS cubes better optimized to better match the needs of your organization. After this session you will be able to take these performance design patterns and apply them to new and existing cubes to tune your SSAS cube environment.

Donn Felker

More on Donn Felker

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Android From The Trenches
Abstract
In this session I will discuss what I've learned from having two apps consistently reside in the Top 100 Free category in Google Play for the last 3+ years (Groupon and MyFitnessPal). I'll talk about tips, tricks and expose real life issues that you will run into at scale with an Android app that becomes very popular. You will learn what to do, what not to do, and how to properly manage your application and team at scale. From defensive coding and advanced patterns to various forms of testing - I'll be talking about it here. You'll walk away with a list of tools and tips to help prepare you and your team for when your app gets featured or makes it to the top 100.

Joe Fleming

More on Joe Fleming

Sessions

Track
Javascript/Node.js
Title
Let's talk testing
Abstract
We all know we should be testing our code, but it can be challenging to get started. BDD, TDD, unit tests, integration tests, test runners, code coverage... and that's not even taking in to account the slew of tools available. Testing can be challenging to get in to, and so few people talk about how to actually do it, or how to write code you can actually test. In this session, I'll try to shed some light on the Javascript testing world, from process to tooling, and hopefully leave you a little less confused than when we started.

Douglas Friday

More on Douglas Friday

Sessions

Track
Other
Title
High Speed Math! (an introduction to using PETSc and SLEPc)
Abstract

This session will focus on how to do high speed math using PETSc and SLEPc. PETSc, pronounced PET-see (the S is silent), is a suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations. It supports MPI, shared memory pthreads, and GPUs through CUDA or OpenCL, as well as hybrid MPI-shared memory pthreads or MPI-GPU parallelism. SLEPc is an extension of PETSc and can be used for linear eigenvalue problems in either standard or generalized form, with real or complex arithmetic. It can also be used for computing a partial SVD of a large, sparse, rectangular matrix, and to solve nonlinear eigenvalue problems (quadratic or genuinely nonlinear). Additionally, SLEPc provides solvers for the computation of the action of a matrix function on a vector.


Pankaj Gaddam

More on Pankaj Gaddam

Sessions

Track
DevOps/System Administration
Title
Deployment Automation using OpsWorks and Chef on AWS
Abstract

Deploying applications using opsworks and chef scripts on Amazon Web Services


Mike Hamilton

More on Mike Hamilton

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Using BreweryDb.com API with Xamarin Forms
Abstract

In this session we will use brewerydb.com API and Xamarin forms to create cross platform apps to find local brewery information.

Items covered:

  • Xamarin Forms
    • Starting solution
    • UI building in Xaml
    • Running in various simulators
  • BreweryDb.com
    • Site
    • API signup
    • Hitting the service

NOTE: will not go over install and setup of Xamarin for development. 


John Hannah

More on John Hannah

Sessions

Track
DevOps/System Administration
Title
Build Automation with Team Foundation Server
Abstract

One of the more valuable features that Team Foundation Server offers to its users are the Build Automation and Release Management services.  We will walk through how to setup TFS for build automation, define a build, customize its workflow template and manage its deployment workflow via the new Release Manager.  The end result of automating your builds can be found in team artifacts like catching bugs and code quality issues earlier in development, setting up continuous integrations to validate code on clean configurations, or test integration for extra assurance during delivery cycles .


Don Irwin

More on Don Irwin

Sessions

Track
.NET
Title
Introduction to Azure
Abstract
Walk through how to get started with Azure. Discuss real-world applications for using Azure.

Justin James

More on Justin James

Sessions

Track
DevOps/System Administration
Title
Install windows software easier and faster using Chocolatey
Abstract
Chocolatey is a machine package manager somewhat like apt-get for Linux but built for Windows. No more searching for the install download or trying to figure out 32/64 bit or wonder what options to pick. Chocolatey takes care of doing the install for you and you can even create scripts to install multiple packages. With Chocolatey you can bring up a new development machine with minimal effort.
Track
.NET
Title
Maximize your productivity potential in Windows and Visual Studio
Abstract
You will learn several tricks to becoming more productive in Windows and Visual Studio. We will explore some standard windows shortcuts, how to never use the start menu again to launch programs, how to create shortcuts to your commonly used web sites, some very useful Visual Studio plugins, some items you should setup keyboard shortcuts to in Visual Studio, really useful Visual Studio Extensions.
Track
.NET
Title
Nuget is easier than you think and you should be using it.
Abstract
If you need to share a common dll or code among multiple projects and you are not using nuget to do it then you are doing it wrong. You will be amazed at how simple it is to create nuget packages and share them. You will geta quick overview of nuget and then learn how to find/consume packages, create packages, view package internals, host your own feeds, and integrate into automated builds.

Theo Jungeblut

More on Theo Jungeblut

Sessions

Track
Other
Title
Accidentally Manager – A Survival Guide for First-Time Engineering Managers
Abstract
This session is about your career perspective as an engineer, especially when the path may take an “unexpected” turn from technical lead to first-time engineering manager. We will explore the differences between managing and leading, review different management styles, and discuss their impact on both the manager and the team member. Finally, we will find out why you do not want to treat everyone equally. I will share my personal experiences going from being one of the team to actually managing it: the pitfalls of suddenly being responsible for the team, typical problems surfacing, and how to avoid common mistakes. As part of the session, I would also like to share thoughts and considerations about which career path could be the right one for whom, and what the advantages and disadvantages are going one way or the other. This is not a “You get it all from the expert”- session, but a session to share experiences and discuss how this fits to your career path.
Track
Agile
Title
Clean Code I – Best Practices
Abstract

All Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs. The Craftsmanship session is exploring the often underestimated importance of clean execution of the coding part and its crucial impact to overall project success. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented best practices which will make you write better and more easily maintainable code, seeing code in a holistic way. You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, practices benefits are explained. This presentation is based on C# and Visual Studio 2013. However, the demonstrated patterns and practice can be applied to every other programming language too.

Track
Agile
Title
Clean Code II - Software Craftsmanship
Abstract

You will learn why naming is really difficult if done right, why coding and style guidelines are crucial, code structuring, exception handling and why other elements of coding often define the tipping point between success and failure of projects. Following the principles of software craftsmanship will allow you to end up with better maintainability and extensibility of your software and the success of the project in the end. All Clean Code presentations provide great value by themselves, but taken together are designed to offer a holistic approach to successful software creation. Why writing Clean Code makes us more efficient Over the lifetime of a product, maintaining the product is actually one - if not the most - expensive area(s) of the overall product costs. Writing clean code can significantly lower these costs. However, writing clean code also makes you more efficient during the initial development time and results in more stable code. You will be presented design patterns and best practices which will make you write better and more easily maintainable code, seeing code in a holistic way. You will learn how to apply them by using an existing implementation as the starting point of the presentation. Finally, patterns & practices benefits are explained. This presentation is based on C# and Visual Studio 2013. However, the demonstrated patterns and practice can be applied to every other programming language too.


Alexander Kahoun

More on Alexander Kahoun

Sessions

Track
Javascript/Node.js
Title
AngularJS Directives
Abstract
Lean how to make angularjs custom directives.

Jason Kanaris

More on Jason Kanaris

Sessions

Track
.NET
Title
Azure, .NET and the Internet of Things
Abstract
The Internet of Things (IoT) movement is picking up steam. It's estimated that by 2020, the IoT will be an $8.9 trillion market with over 200 billion connected devices. In this session you'll learn how to leverage your existing .NET skills to build the next big (or tiny) thing! This session will explore: - What is the Internet of Things? - An introduction to basic micro electronics. - What is the .NET Micro Framework (NETMF)? - Exploring the Netduino and Arduino. - Running C# on a Raspberry Pi. - Connecting your devices to Azure. - Using the Windows on Devices SDK with an Intel Galileo. There will be no time for boring slides here. Instead we'll be covering lots of code and fun interactive demos with the audience.

Inactive User

More on Inactive User

Sessions

Track
.NET
Title
Leveraging Visual Studio T4 and code factories to improve pattern adherence, ease refactoring and efficiently scaffold an application framework
Abstract
With or without established coding standards and code reviews, application code tends to have a wide variance in implementation when multiple developers are involved. Variations begin to appear over the course of an application’s lifespan due to the introduction of new requirements or improved techniques, etc. Often implemented variations are never refactored due to schedule or workload constraints. With code factories, much of an application can be automatically generated to match a consistent pattern. When new requirements emerge or new methodologies are introduced into the architecture of the application, the factory template author(s) can simply modify their template(s) and re-run the actions to consistently inject the changes without affecting the code written by the development team in the interim.

Eric King

More on Eric King

Sessions

Track
Javascript/Node.js
Title
What C# Developers Should Know About JavaScript
Abstract

Don't be fooled by the similarity in syntax between JavaScript and C#. While they share a similar paint job, the languages are very different under the hood. Writing JS like C# can get you into trouble quickly, but this session will introduce key JS concepts in a way that will have you writing clean, solid code in no time. Topics covered include: functions, object literals, and primitive types; prototypal inheritance; variable scoping; modular patterns; pitfalls such as type coercion, implied globals, and truthiness; and more, brought to you from the perspective of an experienced .NET/C# developer.


Stephen Kuenzli

More on Stephen Kuenzli

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
iOS Performance Monitoring at Scale
Abstract

Learn how to understand the real-world performance experienced by users of your iOS applications by monitoring key operations with both manual and automatic instrumentation. We will demonstrate using WeblogNG to instrument a small Swift application and visualize the experience using charts of good, typical, and poor performance across the userbase both in development and production.


John Kuhn

More on John Kuhn

Sessions

Track
ASP.NET
Title
Introduction to Web API
Abstract

In this session, you will learn the essentials of building ASP.NET Web API services. Starting off with overview of the basics of HTTP essential to understanding API design, you will then learn how to create services supporting "CRUD" operations and get an overview of working with different clients, routing and security issues needed to start developing your own Web API projects.


Steve Lacy

More on Steve Lacy

Sessions

Track
Javascript/Node.js
Title
Deploying systems with Node.js
Abstract

Deploying systems can be daunting task with many choices for task runners and deploying services.

This presentation will go over popular build systems (gulp, grunt), dev / production systems, git hooks, node git hooks, node runners, as well as system error reporting.

Track
Javascript/Node.js
Title
Real world React with Fission
Abstract

React.js is getting traction in the JS community.

This talk goes over real world usage of React, and shows examples of it's usage in applications.

 

 


Michael Luttrell

More on Michael Luttrell

Sessions

Track
Javascript/Node.js
Title
Approaching the Singularity with the WebSpeech API
Abstract
Discover the power of the WebSpeech API and how it will help bring the WWW to life. Demonstrations of a practical applications built in Angular and Node.js.
Track
Other
Title
Swift Tricks
Abstract
Moving beyond Hello World with Apple's Swift and into a deeper understanding of the more advanced language features.

Chris Matthieu

More on Chris Matthieu

Sessions

Track
Other
Title
Advanced Internet of Things
Abstract
We will demonstrate how to setup your own Octoblu private IoT cloud and gateway for controlling your own Internet of Things projects for home automation and/or enterprise deployments. This session will involve hands-on Linux, GitHub, Node.JS, and Octoblu technologies.
Track
Other
Title
Arduino Fun!
Abstract
We will learn how to control LEDs and servos as well as stream sensor data from an Arduino micro-controller using Node.JS, Johnny-Five (NodeBots), and Octoblu's Nodeblu designer.
Track
Other
Title
Internet of Things 101
Abstract
Getting started with the Internet of Things. We will show you how to connect Arduino micro-controllers and home automation devices such as Phillips Hue lightbulbs and Belkin Wemos to the Internet and control them with JavaScript.

David McCarter

More on David McCarter

Sessions

Track
.NET
Title
Rock Your Code With Defensive Programming
Abstract
This is a companion session to the “Rock Your .NET Coding Standards” that takes writing better code to the next level. Do you enjoy receiving bug tickets from QA? Didn’t think you would, so this session will provide solid practices that I have been using for most of my programming career to check-in to source only rock solid code. You will learn my #1 mantra, along with 13 rules, that I use while writing code that allows me to write new code (features) and stay out of maintenance mode hell.
Track
Other
Title
Rock Your Technical Interview (Part 1)
Abstract

Have you ever not gotten a job because you weren’t prepared for the interview? Would you like a big raise? Do you need motivation to rock your career? I’ve interviewed 100's of software developers and will share my knowledge on how to survive, what we look for and even divulge some of the secrets we use during the process. This session (62.5% new material for 2014) will include crazy and strange interview stories from engineers just like you! This session includes tips to get you started, working with recruiters, getting prepared, the technical interview and more. You will also learn what is the #1 question you need to ask during an interview… it’s a game changer! Sit close and you just might catch a custom dotNetDave guitar pick. Some of some of them will win you free software!

Make sure to attend Part 2 of this session.

Track
Other
Title
Rock Your Technical Interview (Part 2)
Abstract

Make sure attend Part 1 of this talk first. Have you ever not gotten a job because you weren’t prepared for the interview? Would you like a big raise? Do you need motivation to rock your career? I’ve interviewed 100's of software developers and will share my knowledge on how to survive, what we look for and even divulge some of the secrets we use during the process. This session (62.5% new material for 2014) will include crazy and strange interview stories from engineers just like you! This session includes tips to get you started, working with recruiters, getting prepared, the technical interview and more. You will also learn what is the #1 question you need to ask during an interview… it’s a game changer! Sit close and you just might catch a custom dotNetDave guitar pick. Some of some of them will win you free software!


Randy Miller

More on Randy Miller

Sessions

Track
Other
Title
Office 365 APIs, Why should I care
Abstract

Office 365 is a suite of applications hosted in the cloud that provide, Office Online, Sharepoint Online, Exchange Online, Lync Online, and Yammer.  In this session we will cover applications using the new Office 365 SDK (preview) and show Office Apps that integrate directly into the Office Suite of application.  Come to this session to see these new capabilities in action and understand why as a developer you should be interested in using these new APIs.  This session will be mostly code samples with demos and will be very light on Powerpoint.  Come learn how to access the information stored in Office 365 from you custom applications.


Andrew Miller

More on Andrew Miller

Sessions

Track
Agile
Title
Mob Programming - A Year Later
Abstract
Mob Programming is, as described by its community leader from mobprogramming.org, Woody Zuill, all the smart people focused on the same problem at the same time using the same computer. Come discuss with us what this means, how it works, and what we've learned about the practice after adopting it and using it for a year on a couple of different teams at Infusionsoft.

James Montemagno

More on James Montemagno

Sessions

Track
.NET
Title
C#, the best programming language. Why I love it and so should you.
Abstract

Throughout the years many programming languages have come and gone, but C# is here to stay. It is everywhere and can run on over 2.5 Billion devices including desktop, web, servers, mobile devices, and game consoles! Come learn why I love C# so much and all of the amazing features it has to offer. This session will be action packed with so much live coding you will not know what to do!

Track
Mobile (Android/iOS/Microsoft)
Title
Introduction to Cross Platform Mobile Development in C# with Xamarin
Abstract

As the mobile landscape continues to expand and evolve managing multiple code bases in different programming languages and development tools can become a nightmare fast. In this session learn how to leverage the awesome features of C# and combine them with Xamarin technology to create beautiful native cross platform mobile apps from a shared C# code base with the tools that you love.


Luis Montes

More on Luis Montes

Sessions

Track
Javascript/Node.js
Title
NodeBots : Creating robots with JavaScript
Abstract

Using NodeJS, Johnny-five, Arduino, Raspberry Pi, Spark, and other types of hardware, and networking them to build the Robot Overlords that will soon rule over the Earth.


Satya Mudiam

More on Satya Mudiam

Sessions

Track
Database (SQL/NoSQL)
Title
Introduction to Hadoop
Abstract
As part of this session we will cover Hadoop fundamentals

Jeff Nickoloff

More on Jeff Nickoloff

Sessions

Track
Other
Title
An Introduction to Genetic Algorithms
Abstract
I'm going to introduce the basic mechanics of a genetic algorithm, discuss a range of use-cases, and share a bit of Python code I put together a while back that uses a genetic algorithm to play a game of Rock, Paper, Scissors.
Track
Java
Title
Ins-and-Outs of Concurrency with Java
Abstract
Concurrency is hard. Most engineers make it harder on themselves than it needs to be. Lets get together and talk about how to do it better, and understand specific failure modes. [Should have sample code] We'll be talking about a few of the most useful parts of the java.util.concurrent package.
Track
DevOps/System Administration
Title
Next Generation PaaS and Software Distribution with Docker.io
Abstract
[w/demo] Docker.io provides Linux containers made easy. This means that you no longer need to rely on full machine virtualization to provide strong jailing between processes and the kernel or other processes. Combined with a built-in distribution and image index system, Docker lets engineers and sysadmins reduce the complexity of building robust provisioning systems.

Josh Padnick

More on Josh Padnick

Sessions

Track
DevOps/System Administration
Title
AWS Developer Fundamentals
Abstract

Amazon Web Services (AWS) has become an essential tool for building apps today. I've found many developers have some experience with Amazon, but "don't know what they don't know" and hunger for knowledge on best practices or how best to use the various AWS tools. This presentation will give a high-level overview of AWS, best practices for managing it, and go into additional depth on using AWS for servers (Compute/EC2) and storage (S3).

Track
Javascript/Node.js
Title
Intro to EmberJS
Abstract
EmberJS is one of the most popular client-side javascript frameworks in use today. Once learned, you can be remarkably productive and well-positioned to scale your app! This session will cover the basics you need to get started with EmberJS. We'll discuss the up and coming official EmberJS build tool ember-cli, the core concepts around Ember itself, and some practical tips for how to become productive in Ember as quickly as possible.

J. Michael Palermo IV

More on J. Michael Palermo IV

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Intro to Universal Windows Apps
Abstract
Find out how to create apps targeting Windows & Windows Phone. You will learn how to get started, how to "upgrade" an existing app to a universal app, and how to take advantage of shared projects. Session will accommodate .NET or JavaScript developers :)

Vivin Paliath

More on Vivin Paliath

Sessions

Track
Other
Title
The Glory of REST
Abstract
An overview of REST and what it is. This talk will also describe what it means to be truly RESTful (an ideal vision), and what elements truly make a RESTful API (many APIs that claim to be RESTful aren't).

Jeremy Pauli

More on Jeremy Pauli

Sessions

Track
Design (UX/UI)
Title
Mocking the UI with Balsamiq Mockups
Abstract
Learn the benefits of UI mocking and technique for quickly building UI mockups to refine functional requirements.

Wolf Paulus

More on Wolf Paulus

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Developing Applications for Android Wear
Abstract
This talk will present a first-hand look at the Android Wear platform and an introduction to Android Wear APIs, how to design effective user interfaces that work best on a wearable device. Learn about how to use Google's Android Studio IDE for creating apps for Android Wear devices and bringing wearable experiences to your Android apps. We'll walk step-by-step through designing and building a small, native, contextual app for Android Wear. Of course using Java and Android Studio, the new Android development environment based on IntelliJ IDEA.
Track
Other
Title
Getting Started with MultiCopters (aka. Drones)
Abstract

Commonly referred to as Drones, these craft provide the pilot the ability to capture images from a new perspective. In this talk we will discuss the basic principles and technology that enable this gravity defying craft to fly.

We have flown these magical devices for a few hundred hours over the last two years. We have bought and built too many multi-copters (unfortunately also known as drones). Anyways, we would really love to share some of our most exciting and memorable experiences with you.

But be warned! You will leave the session, with the strong desire to acquire parts (you before didn't know existed) and build a mulit-copter of your own.

 


Tom Paulus

More on Tom Paulus

Sessions

Track
Other
Title
Getting Started with MultiCopters (aka. Drones)
Abstract

Commonly referred to as Drones, these craft provide the pilot the ability to capture images from a new perspective. In this talk we will discuss the basic principles and technology that enable this gravity defying craft to fly.

We have flown these magical devices for a few hundred hours over the last two years. We have bought and built too many multi-copters (unfortunately also known as drones). Anyways, we would really love to share some of our most exciting and memorable experiences with you.

But be warned! You will leave the session, with the strong desire to acquire parts (you before didn't know existed) and build a mulit-copter of your own.

 


Inactive User

More on Inactive User

Sessions

Track
.NET
Title
Dependency Injection with StructureMap
Abstract
StructureMap is a Dependency Injection / Inversion of Control tool for .Net that can be used to improve the architectural qualities of an object oriented system by reducing the mechanical costs of good design techniques. StructureMap can enable looser coupling between classes and their dependencies, improve the testability of a class structure, and provide generic flexibility mechanisms.
Track
.NET
Title
Event Sourcing with .Net
Abstract
"The fundamental idea of Event Sourcing is that of ensuring every change to the state of an application is captured in an event object, and that these event objects are themselves stored in the sequence they were applied for the same lifetime as the application state itself." - Martin Fowler What if we could start with a very simple Domain Model and be able to see every state transition that ever took place within the system AND recreate them at any time. Doing this in classic thinking is not only incredibly difficult it is usually impossible or impractical. This is a large paradigm shift that moves us away from the classic RDBMS thinking as the center of our universe. As our Domain gets more and more complex, communicating and understanding the relationships between Domain Entities becomes overwhelming. This Pattern is quiet often paired with CQRS, but is a distinct pattern of its own and has significant aspects that need to be considered before adapting it. Come learn how to think in terms of Events and Aggregate Roots, not just in your Presentation Layer, but in your entire Domain Model. This Session will cover several Patterns of Enterprise Architecture, thinking in terms of Domain Events and how to create that in Code.

Avinash Ramineni

More on Avinash Ramineni

Sessions

Track
Database (SQL/NoSQL)
Title
Understanding the fundamentals about MongoDB Replication
Abstract
Understanding the fundamentals about MongoDB Replication

Kamlesh Ravlani

More on Kamlesh Ravlani

Sessions

Track
Agile
Title
Is your organization ready for Scaling Agile?
Abstract

Organizations invest energy, effort and real dollars to stay in trend. Here's one of the trend: Agile is no longer a buzz word, Scaling Agile is. Terms like Enterprise Agile, Scaled Agile, SAFe, LESS, Agility Path are conveniently thrown around in meetings and speeches as organizations line up to get on the bandwagon of 'Scaling Agile'. Scaling Agile - from the team and product level to the organizational level has it's own benefits and challenges. Is scaling Agile right for you? Are you ready for it? If you've been evaluating any of the scaling frameworks, you might be in luck. In this session, we will discuss approaches to analyze and evaluate if an organization (or a business unit) is ready for scaling Agile. You'll learn steps your organization can take to be more prepared for scaling Agile and reap organization-wide benefits.

Track
Agile
Title
Panel: Agile In Practice
Abstract

A panel of Agile experienced practitioners will address questions from the attendees. We will focus on the application of Agile ideas to practical situations. Bring your questions about practicing the ideas in the Agile Manifesto, Scrum, Test Driven Development, The Kanban Method and any other Agile practices.

Please sign up to co-teach if you want to be on the panel.


Dennis Reams

More on Dennis Reams

Sessions

Track
Other
Title
Docker.io for Developers
Abstract
What are these crazy containers you speak of and why should I care? This session will take a look at the basics of Docker containers from the developers point of view. Then we will look at some examples of why we should care about containerizing our applications.

Perry Reinert

More on Perry Reinert

Sessions

Track
Agile
Title
Panel: Agile In Practice
Abstract

A panel of Agile experienced practitioners will address questions from the attendees. We will focus on the application of Agile ideas to practical situations. Bring your questions about practicing the ideas in the Agile Manifesto, Scrum, Test Driven Development, The Kanban Method and any other Agile practices.

Please sign up to co-teach if you want to be on the panel.

Track
Agile
Title
Why Agile Works...and How to Screw it Up!
Abstract
This fast moving discussion contains a bit of theory, some interesting statistics, and a few activities. We'll talk a little theory, then we'll "connect the dots" from Scrum the framework back to the theory. All of this will give you a REAL understanding of why Agile works. You'll leave the session wondering "Wow, how could we develop software in any other way!!??", and your reasons for "doing Agile" (and "being" Agile) will be much better than "Uhhhh....because everybody else is doing it?" If you’re not well-versed in Agile or Scrum, don’t worry, there is just enough background so everyone can keep up. After we understand why it works, we'll touch on just a few of the ways to mess things up. NOTE: Yes, This is kind of an "oncore" performance from the last DCC. I've made a some changes and updates, but the last session was so well attended I thought I'd do it again.

Rob Richardson

More on Rob Richardson

Sessions

Track
ASP.NET
Title
ASP.NET vNext
Abstract
ASP.NET vNext is the next version of ASP.NET. Publicly demoed at TechEd, it's a re-imagination of ASP.NET MVC and Web API built on top of a server-optimized version of the .NET Framework. Let's dig into the early release CTP available at http://www.asp.net/vnext and start to understand where the ASP.NET Team is going.
Track
Database (SQL/NoSQL)
Title
Get your database under control
Abstract
Databases are a critical piece of the development story. So why do we treat them so badly? Why are we so scared of them? Walk with us on a journey of how we brought the database development and application development together into a single, cohesive build and deployment pipeline. We'll discuss Continuous Integration and Continuous Delivery in the context of Database Development, dig into practical mechanisms for starting to version your database and automate database validation and deployment. Don't fear the database, embrace it, version it, and deploy it frequently.

Peter Ritchie

More on Peter Ritchie

Sessions

Track
.NET
Title
A Gentle Introduction to CQRS
Abstract
Contemporary software systems are increasingly having to deal with "concurrency" and "scalability". There are various reasons why parallelism is a common contemporary approach but it's complex and there are many patterns & practices that aid with complexity. CQRS builds on those patterns & practices to make concurrency and scalability easier, if you let it. We will discuss the basic principles around CQRS & its roots. We'll discuss where CQRS fits, what types of complexities CQRS will help deal with, & when CQRS might not be a good fit. Some in-the-trenches-type lessons learned and temper the principles with some recommended practices will also be covered. As well, some of the reasons why you'd want to have a CQRS frame-of-mind along with some ways to think CQRS with existing systems without rewriting your whole system. CQRS and its related practices & principles are one of areas of software development that really parallels journeyman/master in the level of detail and skill required for it to be mastered.
Track
.NET
Title
How *Not* to Write Concurrent Code
Abstract
Invariants, locking, mutexes, critical sections, monitors, barriers, race conditions, non-deterministic, memory coherence, consistency models, etc. "Multithreading is hard", hard to do correctly and easy to do incorrectly. "Correctly" is almost always application-specific and usually caveated with "it depends". It's hard to define specific rules or practices that work in all circumstances. This session takes a different point of view on things and shows you specific ways to do things "wrong" with regard to multi-thread. This session will detail some of the common primitives and techniques use in multi-threading, but used in the wrong ways. Why they are wrong and alternatives will be covered. Topics like Sleep, DoEvents, volatile, lock, interlocked, thread priority, non-shared data, etc. will be covered.
Track
.NET
Title
The Evolution of Asynchronous Programming on .NET
Abstract
Everything you wanted the know about asynchronous programming in .NET, but were afraid to ask. Multithreaded programming is hard. the latest version of Visual Studio includes language additions to C# and VB to make it much easier to write asynchronous code (the async and await keywords). .NET has had numerous ways to implement asynchronous and lengthy operations over the years. This session details some of these techniques, their benefits and their drawbacks. This session also details the progression of these techniques leading up to async/await in an effort to better understand the new syntax as well as better understand how to migrate existing asynchronous code to the new syntax. As well, this session allows you to increase your expertise with several advanced language features that the new syntax and existing patterns build on, like lambdas, anonymous methods, closures, etc.

Jacob Rosenthal

More on Jacob Rosenthal

Sessions

Track
Javascript/Node.js
Title
Intro to Bluetooth Low Energy
Abstract
We will reference PunchThrough LightBlue Bean Arduino Compatible as it is the most mature product in the market, but well spend a good deal of time covering the base technology in general so as to be applicable to any module in the market. We will interact with the bean via the Node.js noble package from Sandeep Mistry, but examples of interacting with the bean exist for IOS as well.

Robin Shahan

More on Robin Shahan

Sessions

Track
Other
Title
Azure Websites
Abstract
Azure websites is a managed cloud service that allows you to deploy a web application and make it available to your customers very quickly. Supported languages include .NET , Java, PHP, Node.js, Python, and Ruby. Come learn about all the cool and awesome features in Azure web sites, including continuous deployment, autoscaling, monitoring and remote debugging.
Track
Other
Title
Everything you need to know about Azure File shares (preview)
Abstract
Come learn about the new Azure Files preview feature, which exposes file sharing using the standard SMB 2.1 protocol. Applications running in Azure can now easily share files between VMs using standard and familiar file system APIs like ReadFile and WriteFile. The files can also be accessed via a REST interface, which opens a variety of hybrid scenarios. Come learn about the features of this new service and how to use it.

Schuyler St. Leger

More on Schuyler St. Leger

Sessions

Track
Other
Title
Software Defined Radio - An Introduction
Abstract

Software Defined Radio (SDR) provides the perfect low-cost method to explore the world of RF (Radio Frequency.) SDR is a flexible radio system that utilizes software instead of specialized hardware to decode radio signals. It can investigate a wide frequency range and decode many different RF protocols. This talk will provide a basic understanding of SDR. It will then discuss some of the available and affordable hardware and software tools for exploring SDR. We’ll finish with a live action demo (fingers crossed!)


Barry Stahl

More on Barry Stahl

Sessions

Track
Agile
Title
.NET TDD Kickstart
Abstract
Back by popular demand is the highly rated .NET TDD Kickstart where the speaker and the audience "pair up" for a coding session which serves as an introduction to Test Driven Development in an Agile environment. We will use C#, Visual Studio and Rhino Mocks to unit test code to be built both with and without dependencies. We will also highlight some of the common issues encountered during TDD and discuss strategies for overcoming them.
Track
Agile
Title
Panel: Agile In Practice
Abstract

A panel of Agile experienced practitioners will address questions from the attendees. We will focus on the application of Agile ideas to practical situations. Bring your questions about practicing the ideas in the Agile Manifesto, Scrum, Test Driven Development, The Kanban Method and any other Agile practices.

Please sign up to co-teach if you want to be on the panel.


Tomasz Stechly

More on Tomasz Stechly

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
iOS Performance Monitoring at Scale
Abstract

Learn how to understand the real-world performance experienced by users of your iOS applications by monitoring key operations with both manual and automatic instrumentation. We will demonstrate using WeblogNG to instrument a small Swift application and visualize the experience using charts of good, typical, and poor performance across the userbase both in development and production.


Jose Trigueros

More on Jose Trigueros

Sessions

Track
Other
Title
Introduction to Function Composition with Scala
Abstract
Function composition is one of the areas which makes functional programming useable. In this introduction, you'll see how you can use function composition to make your code cleaner and easier to re-use, and with Scala you don't have to choose between functional or object oriented, instead you get the best of both worlds.

Mark Tucker

More on Mark Tucker

Sessions

Track
Other
Title
Devilishly Simple IoT with Electric Imp
Abstract

This course will introduce you to the Internet of Things by way of the Electric Imp platform. We will explore WiFi connected devices that interact with the imp cloud. Then we will write device and server-side agent code using the object-oriented, dynamically typed Squirrel scripting language.


Chris Wagner

More on Chris Wagner

Sessions

Track
Mobile (Android/iOS/Microsoft)
Title
Swift 101
Abstract
This year at WWDC 2014 Apple announced a brand new programming language, Swift (http://developer.apple.com/swift/). Come learn the basics of Swift and Xcode Playgrounds. This session is geared towards the beginner in every sense. With Xcode Playgrounds, Swift is an incredibly inviting language for first time programmers. Come with a MacBook and Xcode 6 installed so that you can follow along! A computer is not required to attend this session but encouraged.

Dan Wahlin

More on Dan Wahlin

Sessions

Track
Javascript/Node.js
Title
AngularJS in 60ish Minutes
Abstract
Single Page Applications (SPAs) are all the rage now days but if you've built a true SPA you know that they can be fairly involved to create. There are typically a lot of moving parts and scripts ranging from history, to navigation, to data access. Have you thought through maintenance of the application down the road and how simple or complex it will be to make modifications as scripts change? In this session Dan Wahlin will introduce the AngularJS SPA framework and demonstrate many of the built-in SPA features it provides. If you like to work with views, controllers, modules, plus tie into existing framework features without having to focus on all of the scripts under the cover then this is definitely a framework to check out!

Andrew Webb

More on Andrew Webb

Sessions

Track
Other
Title
Swift Tricks
Abstract
Moving beyond Hello World with Apple's Swift and into a deeper understanding of the more advanced language features.

Rodney West

More on Rodney West

Sessions

Track
Other
Title
Escape Merging Hell: Auto-merging with Atlassian Stash and Bamboo
Abstract

Take a deeper look into the auto-merging capabilities of Atlassian's Stash managed git repositories and Bamboo build plans. Discover how these features make developers' days less painful.


Jim Wooley

More on Jim Wooley

Sessions

Track
ASP.NET
Title
Exposing Data in your WebAPI
Abstract
Methods of working with data has evolved over the years as has our mechanisms to access it through services. In this session you'll learn not only how to expose data through the Web Api, but also learn ways to tune and improve your data interactions with Web API, IQueryables and the Entity Framework.
Track
ASP.NET
Title
Getting pushy with SignalR and Reactive Extensions
Abstract
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.
Track
.NET
Title
Reactive Extensions (Rx) in Action
Abstract
You may have seen the theoretical discussions of Reactive Extensions and heard about the duality of IEnumerable and IObservable, but are still scratching your head to know how and when to use them. In demo filled session, we'll cover a number of cases where it makes sense to consider RX to declaratively compose complex operations over observable sequences in an elegant LINQ like syntax. We may even have some chocolate induced audience participation along the way.