Sessions / Search /


Automated Testing: Beyond The Basics

Jim Holmes / 9:15 AM 10:15 AM / Quality / Security

You've been through some initial training or bootstrapping. Now you're three to six months down the road and you're finding a lot of time is being spent chasing intermittent test failures. You're spending a lot of time maintaining your codebase. You're spending a lot of time dealing with frustration and trust in the automated tests. What's you're not doing is adding a lot of value around new feature work. Sound familiar? It's a pattern that's common across nearly every team that is new to building significant automation suites. This talk is designed to help you find a few approaches that may save your sanity. This isn't a WebDriver 101 session; we won't be covering basics. Instead, we'll dive in to solving problems using software craftsmanship principles, custom-designed APIs, and approaches like Selenium Grid to help you scale out your test suites via parallel execution.

Building Mobile Applications with the Ionic Framework

Robert Lair / 1:00 PM 2:00 PM / Application Development

Have you wanted to start developing mobile applications, but have found that finding the right technology, framework, and language overwhelming? Ionic provides a framework that allows developers to build applications using AngularJS and HTML in order to produce a native application experience for iOS, Android and Windows Phone. Unlike other frameworks that can be extremely expensive, Ionic is completely free and as of early 2016 it has already been used by developers to build over 1.8 million applications. This talk will provide a brief introduction to Ionic and will look at how to get started developing, testing and deploying your apps. We will also look at how to take advantage of native phone services using Ionic.

Building Your Own R2 Unit in Ruby

Jamie Wright / 10:30 AM 11:30 AM / Application Development

There is another massive shift happening with how we interact with companies through software. Users feel comfortable naturally talking with their applications through chat bots. Chat is the next generation of the user interface. Companies like Slack, Facebook, WhatsApp, and WeChat have some of the most popular apps in the world and they are all betting on a messaging interface. Ruby and it’s ecosystem of libraries can support these new types of interactions. In this session, we will see how we can build scalable, realtime web applications (or “bots”) using the Slack API. We will see what a good bot architecture looks like and how we can integrate with existing artificial intelligence services to make our bots smarter.

Common Developer Crypto Mistakes

Kevin W. Wall / 10:30 AM 11:30 AM / Quality / Security

During the past 6 years, Kevin has examined how cryptography has been used in close to 200 different projects from a security risk perspective. This includes 85+ design reviews and more than 100 secure code reviews (mostly Java with some C/C++ and C# thrown in for good measure) performed for two different companies. That includes both proprietary code of these 2 companies, proprietary vendor code reviewed under NDAs, as well as some FOSS code. This talk explores the most commonly observed applied cryptography mistakes made by developers during that 6 year window and briefly describes how to correct them.

Dealing with discouragement as a newbie

Rachel Krantz / 9:15 AM 10:15 AM / Soft Skills

Learning something new is intimidating. When I started my learn-to-code journey, I avoided certain meetups because I didn’t feel “smart enough” to go. Now, I’ve somehow found myself co-running a tech group and working on a software development team. I still break things, of course, and make plenty of mistakes, but I have big dreams for where I’ll go in my career. I want to share with you how to work past the fear of not belonging, the tools I used to take my learning to the next level, and how to get that first job. If you’re well into your career, you will learn how to help the newbies in your community. Come learn the art of exuding confidence, even when you don't have it yet.

Design Feedback for Everyone

Eric Browning / 1:00 PM 2:00 PM / UX / Design

"What do you think of this design?" is a question that strikes fear into the heart of many people, especially developers. Critiquing aesthetics and user interfaces in a meaningful way is a challenge to anyone, especially those who haven't done it before. We'll take a look at what makes feedback useful, why it's hugely important, and how to express yourself and articulate your ideas even if you didn't go to art school. You'll come away with some straightforward steps toward providing valuable feedback and strengthening your team.

Don’t Be A Stereotype, Rapid Prototype

Ed Charbeneau / 2:15 PM 3:15 PM / UX / Design

In just about every industry, rapid prototyping is described as “A group of techniques used to quickly produce a working model”, and web development should be no different. Rapid prototyping allows developers to quickly communicate and collaborate on the product they are creating while investing minimal resources. When used effectively, a prototype can provide structure to a project, ensuring that the development team and the customer are working towards the same vision and goal.

ECMAScript 2015 & JavaScript - Don't Get Left Behind

Jared Faris / 1:00 PM 2:00 PM / Web / Javascript

JavaScript keeps growing up. Modern JS is more than jQuery "click" events and Angular tutorials. To build powerful, maintainable apps, you need more than basic language features. ECMAScript 2015 (ES6) adds concepts like classes, variable scoping, arrow functions, promises and more. This talk will cover these, and what to do when they aren't supported. You'll leave better equipped to survive in the strange and wonderful world of JavaScript.

Elm or FUD: Hunting Bugs with the Compiler

Chandu Tennety / 2:15 PM 3:15 PM / Web / Javascript

Be vewy, vewy quiet. There's a new compile-to-js language doing the rounds, and it is very different from what we are used to in the JavaScript world. It's called Elm, and not only is it making strictly-typed functional reactive programming more accessible, but it also comes with an empathetic, newbie-friendly community. This talk will provide an overview of the language to those curious, and also walk through specific examples of how Elm eliminates an entire class of bugs using its type system and zealously helpful compiler.

Exploring Microsoft SQL Server Query Execution Plans

Drew Furgiuele / 9:15 AM 10:15 AM / Application Development

Okay, your SQL query is slow. But why? In this session, we'll cover the basics of Microsoft SQL Server query execution plans: What plans are, how to read them, and why you should care about them even though you're not a DBA. Along the way you'll also see plenty of examples of plan operations, how plans can go wrong, and how you can quickly fix them yourself. You might even see some neat query plan features coming in future editions of SQL Server that should get you excited, too!

Failure is NOT an Option?

Benjamin Bykowski / 1:00 PM 2:00 PM / Soft Skills

Failure is an axiom of life but for as much good as it creates, it gets a bad rap. The real travesty isn't our failure, but that too often we don’t make use of it, learn from it, or lean into it. Some of the biggest disasters in history have come from the misapplication of failure, while some of the best ideas and biggest innovations have failure at the heart of their inception. In this talk we'll look at failure at both its best and worst, and answer some important questions along the way. Is it possible to fail without resorting to blame and shame? How does cognitive bias prime us to fail? Are there both good and bad ways to fail? (*spoiler alert* YES!) Is failure a better teacher than success? With historical examples and real-life stories of failure in design and development, we’ll look at the anatomy of failure and discuss proven techniques for failing fast and approaches to handling failure to take back to your team and organization. At least one attendee will go home with a copy of Fail Better: Design Smart Mistakes and Succeed Sooner.

Finally, a Voice for the Enterprise!

William Klos / 9:15 AM 10:15 AM / UX / Design

No, not Majel Barrett, but being able to simply speak commands into the air and have a computer either retrieve data or execute functions has always been a lofty goal. With tech like Siri, Cortana, and Google Now, it seemed like we were always on the cusp, but the systems were locked down with very limited expansion abilities. But now there’s Alexa from Amazon and that connection to your enterprise systems is at your command. But what does it mean to have a voice UI? What are the pitfalls that come with the benefits? What are the design and testing considerations when developing conversations with your data? We will explore those topics as well as what it takes to build Amazon Skills and how effective it is for business purposes.

Finding Your Inner Bounded Context

Jim Everett / 3:30 PM 4:30 PM / Architecture / Methodologies

Arguably one of the greatest insights presented by Eric Evans in "Domain-Driven Design: Tackling Complexity in the Heart of Software" is the idea of Bounded Contexts. The ability to divide large models and teams into digestable units and formalize the relationship between Bounded Contexts allows for greatly simplified solutions. While the intent of a Bounded Context is easily understood, the identification and creation of a Bounded Context in a legacy system can be challenging. This talk is a case study of how to break up a large monolithic application covering many areas of an insurance provider into simpler Bounded Contexts.

Get R in my App

Tony Milne / 3:30 PM 4:30 PM / Application Development

Microsoft has made the leap to integrate the ever-popular statistical language R into SQL Server 2016. Once a language seemingly reserved for use by scientists and statisticians will now be brought to the mainstream. This means a higher demand for use and distribution of this analytics powerhouse. In this session, we'll explore how to use R in SQL Server 2016, leverage the available libraries and frameworks you'll need, and look at some examples of how to bring R into your web applications.

Git Gone Wild: How to Recover from Common Git Mistakes

Magnus Stahre / 3:30 PM 4:30 PM / *.*

"Oh no! I just typed something into git and now my work is gone! Ahh!" Don't panic. Contrary to popular belief, git is one of the most non-destructive version control systems available. When used right, git never loses any data, and even when misused, chances are very high you can still recover. This talk will present turn-by-turn directions on how to recover from a wide array of common git mistakes, and also provide some workflows to minimize them. Examples include, but are not limited to: * Changing spelling errors in commit messages. * Split commits into multiple commits with logical separation. * Combining multiple commits into one. * Resetting the base commit when you accidentally branch off of the wrong branch. * Recovering from merge conflicts. As well as more advanced topics, such as: * Extracting parts (e.g. sub-directory) of a repository as a new repository. * Merging multiple repositories into one while retaining version history. * Removing confidential data accidentally committed.

Home Automation Part II: The Quickening

Matthew Bok / 1:00 PM 2:00 PM / *.*

So, you have your basic home automation setup. With a click of a mouse or a swipe on your cell phone you can turn on a light, open a door, turn off an alarm, or other such things. That's great...last year, but you want to see something cool? Let's take it to the next level. Voice control, wall mounted control units, custom control screens, situational events that happen based on customized parameters, Christmas trees that turn on and off without having to crawl around behind a tree. It's all possible, and I'll show you how. Building on the basics in a presentation given last year, the speaker will show how you can take a basic setup and take it to the next level. Using various technologies cobbled together into a centralized, multi-threaded eco system, it might not be the "home of the future", but it can be the "home of the pretty damn cool right now."

Home Grown Home Automation

Michael Meadows / 3:30 PM 4:30 PM / Cloud / IoT

We’re about to witness a perfect storm in the home automation space. Cheap embedded hardware, physical web, wearable hardware, and the internet of things are all converging in our households to create a sea change in how we experience our homes. The catch: right now everything is proprietary. There is hope, however, that is cheap, reliable, and standardized. This session will demonstrate how to use openly available standards-based solutions to automate your own home using Raspberry Pi, Arduino, and cloud-based software.

Improving the Quality of Existing Software

Steve Smith / 2:15 PM 3:15 PM / Quality / Security

Over time, software rots. If we’re not diligent, our beautiful code can degrade into a worthless mess. Keeping our code in working condition is no different than changing the oil in our car – it’s preventive maintenance. In this session, Steve will look at some common places to look for signs of degradation in existing applications, and steps to take to improve the code. Examples will use C# and primarily ASP.NET.

Incredibly Strange Programming Languages

Craig Stuntz / 2:15 PM 3:15 PM / Application Development

If you've ever suspected that “all programming languages are pretty much the same; they just have different syntax,” well, you will never suspect that again! Covering languages from the unusually powerful (Idris) to the illuminated (قلب) to the profoundly limited (BlooP), and all points in between, these languages will help you think differently about approaches to software problems you face in your day job. Of course we’ll have a lot of fun, but these languages are no joke. The practical benefit of an impractical language is the power to find new approaches to common problems.

Iteration Management - Your Key to Predictable Delivery

Jon Kruger / 9:15 AM 10:15 AM / Architecture / Methodologies

Project managers might manage multiple teams across multiple iterations, but an iteration manager is responsible for making sure that one team can deliver within a single iteration. Whether you're looking for a new career path or trying to find a grassroots way that you can improve the software development process on your team, understanding iteration management will help you plan and estimate better, meet your commitments, communicate effectively with management, and not spend your weekends working to keep up.

Jittery MacGyver: Engineering Takeaways from Building a Bionic Hand out of a Coffeemaker

Evan Booth / 9:15 AM 10:15 AM / *.*

In May of 2015, it was estimated that a pod-based coffeemaker could be found in nearly one in three American homes. Despite the continued popularity of these single-cup coffee conjurers at home as well as in the workplace, it has become clear that these devices are not impervious to mechanical and/or electrical failure. It was this intersection of extremely prevalent hardware and relatively short lifespan that prompted me to begin exploring the upper limits of what could be created by repurposing one of the most popular pod-based machines: the Keurig. In this talk, we'll review the basic operation of pod-based coffeemakers such as the Keurig, discuss lessons learned about engineering and creativity through the process of repurposing them, and finally, we'll go hands-on with the results (yeah, pun intended).

Job Search Questions You're Afraid to Ask

Cassandra Faris / 10:30 AM 11:30 AM / Soft Skills

As a developer, you’re constantly bombarded with job opportunities. Some even sound like super exciting things you’d like to do! How do you know if they’re actually right for you? Even if you’re not actively seeking a job, this is an important question that all developers need to answer. Drawing on real-life examples, this session will walk you through the opportunity evaluation process. It will cover topics including benefits questions, intellectual property concerns, and assessing company culture. Most importantly, it will help you identify your career growth priorities and whether that seemingly shiny new opportunity meets them.

jQuery & 10,000 Global Functions: Working with Legacy JavaScript

Guy Royse / 10:30 AM 11:30 AM / Web / Javascript

Long ago, in the late days of the first Internet boom, before jQuery, before Underscore, before Angular, there was a web application built by a large corporation. This application was written as a server-side application using server-side technology like Java or PHP. A tiny seed of JavaScript was added to some of the pages of this application to give it a little sizzle. Over the ages, this tiny bit of JavaScript grew like kudzu. Most of it was embedded in the HTML in SCRIPT tags. Some of it was dynamically generated by the server-side code. Browser specific hacks were added. An AJAX call was added. jQuery was added. Helper functions were added. Lots of helper functions. So many helper functions. In time pyramids of doom built from anonymous callbacks and hundreds, nay, thousands of interdependent global functions ruled the day. And the programmers did despair. They cried to put the code under test that it might be refactored. "Add unit tests", they exhorted. But, lo, there were no units to test, only anonymous functions. Does this sound like your current application? I know I've worked on a lot of codebases just like this one. I've come up with some techniques to refactor them and put them under test (so the real refactoring can begin). In this session I will share them with you.

Logging: Don't you dare put it in a file!

Stephen Shary / 3:30 PM 4:30 PM / Quality / Security

Logging in modern applications is a feast or famine. We need as much help as we can get when triaging production issues, but who can find relevant information among all the DEBUG and PERFORMANCE lines? Logging to files has become incompatible with cloud-native applications and distributed systems (and most other things). We will discuss the problem of finding needles in haystacks as well as view the system from 50,000 feet. We will overview several new solutions that re-invent the idea of logging. Hear the story of our experiences at Kroger creating an open-source-based system including Elastic Search that handles over 500GBs of logs each day. See how we visualize our current production status and discover problematic applications, servers and systems.

Making a Successful Component Library: Digital Brand Style Guides

Kevin Mack / 1:00 PM 2:00 PM / Architecture / Methodologies

Creating a component library is not a new piece of the development and design process but with the growth of responsive and contextual factors it has become a requirement for complex systems. Digital Style Guides bring alignment of teams and solve complexities by providing quality tested code that is fully reusable across all projects. Within this presentation, we will discuss the variations of different style guides, toolkits, and frameworks that exist today and identify the right solution for your team to create a successful component library.

Managing a Mental Breakdown

Aaron Kaufman / 10:30 AM 11:30 AM / *.*

As designers and developers, we’re often racing to produce “the next big thing.” Are you prepared to handle the mental and physical baggage that comes when a project succeeds? In 2014, my custom dog drawing website made it into Good Housekeeping magazine. I thought I was prepared for the onslaught of orders, but what resulted threw me into a world of anxiety and depression that lasted well beyond the product’s 15 minutes of fame. Reflecting back, I learned that I was inevitably headed into this mental state based on bad working habits. As I'm still climbing out of this hole, I'm learning to manage expectations, develop a work/life balance and discovering to love a project that nearly broke me.

Managing the Data from the Internet of Things

Sidney Andrews / 10:30 AM 11:30 AM / Cloud / IoT

Our web services and applications can now be connected to millions of devices simultaneously and are still expected to perform admirably. For line-of-business data, this is an exercise where we scale our database. What about our other smaller, more frequent data? How do we handle billions of telemetry transactions from millions of devices? In this talk we will explore the Lambda Architecture design and how we can split the processing of our data so that we have both immediate feedback from our telemetry and long-term analysis. We will first explore the Event Hubs service as an endpoint to capture our telemetry. For speed, we will look at how we can use Stream Analytics to create a slice of our telemetry averaged over time and then dump that data into SQL Database. For completeness, we will look at options such as HDInsight and SQL Data Warehouse and how they can allow us to perform advanced analytics over our complete, raw data.

NDA - ASP.NET Future

Jeff Fritz / 9:15 AM 10:15 AM / Web / Javascript

A review of a talk that will be given at //build about ASP.NET futures

Quantifying your Fitness

Kirsten Hunter / 9:15 AM 10:15 AM / Cloud / IoT

Kirsten has created a system, available on Github, which interacts with Fitbit, MyFitnessPal, and Withings, to create a health tracking system. It will send nagging notes via SMS using Twilio, change the colors of a Philips hue lightbulb based on progress for the day, and interact with any other API-driven service. Examples of all of these will be shared with you! What Gets Measured Gets Done!

Securing Your API Endpoints

Seth Petry-Johnson / 1:00 PM 2:00 PM / Quality / Security

It's never been easier to expose services over HTTP. It's also never been easier to inadvertently expose security holes via those same services. This session is designed for the average developer/architect that wants a brief, platform-agnostic overview of API authentication techniques. You'll learn about OAuth, API Keys, HMAC authentication and more. Don't worry if those things sound foreign; they'll be explained in a clear, practical way. You'll leave this session able to choose the correct authentication strategy for your APIs.

Sometimes a Locust Swarm Can Be a Good Thing!

Steve Jackson / 2:15 PM 3:15 PM / Architecture / Methodologies

Have you ever wondered what is involved in doing load testing of web applications? What if you had to support 100,000 simultaneous users on Day 0? Do you have to integrate with 3rd party services? How do you strategically isolate and test those dependencies? What do you do when your tests reveal performance problems? Join us in a talk about web load testing using open source tools, the AWS cloud, dependency isolation, DB profiling, OS tuning, and not being targeted as a botnet.

Sonic Pi: Programming Music for Fun (and Profit?)

Scott Fradkin / 2:15 PM 3:15 PM / *.*

Bass, melody, drum loops, rave. These are words that you wouldn’t normally hear when talking about programming. There is a whole movement called Algorave in which music is created by programming. Sonic Pi is an environment that lets a musician create music by programming in Ruby. It’s easy enough for a 10 year old to use, yet powerful enough to use in a nightclub. Because of how easy it is to get into Sonic Pi, it is fast becoming a gateway into the world of live coding music. During this session you will get an overview of Sonic Pi and how to create music. Learn how to play notes, listen to samples, apply FX, and manipulate synths all by coding. By the time the session is finished, you will be able to create your own club ready tracks!

Sweating Commas, Pixels, and People

Kyle Dreger / 10:30 AM 11:30 AM / UX / Design

What if Hemingway had given up writing to become a UX designer? In this session, we look at how the principles of good writing play into the onboarding, microcopy, and delight that users expect in your applications. We've seen the quality of design be lifted to new heights, and the next battleground is not only what you're presenting, but the language you're using to present it. You’ll leave this session with examples of how language impacts user experience, quick and dirty editing tips for designers, and an argument against using Lorem Ipsum placeholder text. Come see how to write your own ticket to a successful user experience.

Ayan Dave / 10:30 AM 11:30 AM / Architecture / Methodologies

The most common way to implement access token in web applications is using cookies. Cookies as access token have served well over the years but they have also contributed to issues with XSRF and CORS requests. As we build applications where web, mobile and micro services come together we need something better than cookies for access token management. Json Web Token (JWT) provides a very compelling alternative and a proven solution. JWT’s help us build applications over multiple stacks, applications that use our own API’s, third party API's, that run in our data center or in the cloud. In this session we will discuss what is JWT, what kind of use cases can be built with JWT and also build an application with AngularJS and server side (node.js, java) API’s.

This Little IoT Device is Going to Market

Carey Payette / Jason Follas / 2:15 PM 3:15 PM / Cloud / IoT

This session provides insight into what it takes to get an IoT device to Market. Based on experience, the presenters will provide pointers for you to create a plan to get your device out the door and into the hands of consumers, all the while avoiding (most) surprises along the way.

Using Responsive Web Design To Make Your Web Work Everywhere

Chris Love / 3:30 PM 4:30 PM / Web / Javascript

Devices are as unique as their users. Detecting the end user’s platform is a fruitless expenditure that often leads to wrong assumptions. Maintaining multiple web applications for different platforms is not cost effective and stressful. Responsive web design is a way to design your applications for devices of all shapes, sizes and resolutions. This session covers a definition, examples and how to execute a proper mobile first responsive design. We will also cover how to use responsive images to ensure your application performs well.

Using the 8 Stages of Psychosocial Development to Make Your Digital Product Even Better

Sean Doran / 3:30 PM 4:30 PM / UX / Design

The way your customer uses your product changes over time. A first time user sees your product with a completely different lens than your power user. With adaptive user interfaces and activity centered design, you can build out an experience that caters to the 8 stages of psychosocial development: 1. Infancy & Hope 2. Early Childhood & Will 3. Preschool Age & Purpose? 4. School Age & Competence 5. Adolescence & Fidelity 6. Early Adulthood & Love 7. Adulthood & Care 8. Maturity & Wisdom

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

Jeff McKenzie / 3:30 PM 4:30 PM / Soft Skills

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.

Work on Your ARM Strength

Michael Collier / 1:00 PM 2:00 PM / Cloud / IoT

Automation is a critical factor in successful cloud projects. Successful projects are able to skillfully craft deployment templates and scripts that provision nearly all needed resources. While Azure Resource Manager (ARM) provides a robust “infrastructure as code” approach to managing Azure resources, getting started can seem like a daunting task. In this demo heavy session, we will dive deep into creating re-sources and manipulating ARM templates. We will review proven techniques you can apply to your Azure projects. In the end, you will have a series of tips you can use to unlock new and powerful ways to manage your Azure resources.

Work Remote: Extreme Edition

Jonathan Tower / 2:15 PM 3:15 PM / Soft Skills

Have you already been to enough deep technical dives today? Take a break from all that and join me as I take you on my year-long adventure to the all 48 of the contiguous states which was enabled by technomadism--that is, being a technological nomad. I'll talk about how I was able to work remotely--including some practical tips from my experience, and answer some of the most common questions: how we lived, where we went, what we did with our house, how we taught the kids...all of it! I'll also tell stories about some of the best (and worst) experiences. At the end, I hope you can walk away with some inspiration and ideas that might spark your own adventure, whatever that may be.