09:00 - 09:10

College Center Square - Opening Remarks Eric Kepes

A few thoughts to kick off our day.

09:20 - 10:20

Ryan Room - Tales of a Product Owner; or, a Foreigner’s Perspective in a Native Land Jenny Liu

In this talk, Jenny will take the audience through her adventures as a non-technical member of two teams that, while very different from each other, fundamentally shaped her views about what makes teams successful. Through this walk down memory lane, Jenny not only hopes to pin down a working definition of product ownership (is there actually a difference between a product owner and a project manager?), but also share some tips for both product owners and developers on what they can do to help build and sustain an awesome, thoughtful team.

Room 317 - Building Powerful and Intelligent Applications (with Azure Machine Learning) David Walker

Knowledge is power, but is it if you're not using it? What if the application you delivered to your customers was extremely intelligent? It could retrieve, analyze and use the massive amounts of data that businesses are generating at an astronomical rate. It could analyze business deals, predict potential issues, proactively recommend business decisions and estimate profit, loss and risks. Those things provide direct benefits to your company. Churning through that data by hand doesn't. Enter Azure Machine Learning. In this session you will learn how to integrate Azure Machine Learning into your existing applications and workflows with REST services. You will learn how to deliver a modular, maintainable solution to your customers that allows them to analyze their data. You will learn to: * Numerous ways to abstract business rules, workflows, AI (Machine Learning) and more into your applications * How to Integrate Azure Machine Learning into your existing Applications and Processes * Create Azure Machine Learning Experiments * Retrieve the Score from an Azure Machine Learning Experiment and integrate it into your applications and processes * Integrate numerous Machine Learning Experiments from the Azure Machine Learning Marketplace into your existing applications and processes * Learn various concepts for abstracting and managing services and api's.

Room 308 - Building Applications for Amazon's Alexa Platform Ben Northrop

With its fleet of voice-driven devices, Amazon is betting that the future will look a lot more hands-free. From turning on your lights, to checking the weather, or ordering an Uber, Amazon's Alexa puts the user in control without them needing to click, tap, or swipe. In this session, we'll build an Alexa skill from the ground up, learning how to design a voice interaction model, implement a speech service using Java or NodeJS, and then deploy it all to the Amazon cloud.

Room 310 - What’s So “Hard” About Hardware? Kel Cecil

Hardware projects can be intimidating to inexperienced inventors, but developing hardware for projects has never been more approachable. The greatest hurdle to developing your own hardware is getting started. What knowledge do you need for your first projects? What resources can you take advantage of? Can you really build your own hardware projects? This talk will answer all of these questions while telling the story of building a simple, handheld game project using the Teensy 3.2 board programmed using the Rust programming language. You’ll leave with the confidence and direction for new projects that will make you say “What’s so hard about hardware?”

Room 311 - The basics of doing geospatial analytics in Python Alison Alvarez

One of the big challenges for data scientists is to be able to share data in a way that is accessible to non-technical people. Maps are a fantastic way to communicate information and provide tools to find patterns in data. Learn the basics of finding free shape data, drawing maps on a canvas, and how to gain insights. The talk will include access to a free Jupyter notebook to get you started.

Room 313 - Agile Enterprise Architecture Arpan Acharya Richard Ashkettle

The value in enterprise architecture comes from having a breadth of view across the whole landscape, and not just to the edges of the organization, but beyond them too. And not just a view of today, but a view of the changing technology landscape over time. The real challenge for enterprise architects is to speed things up, not slow them down. Let’s come together to discuss the basic tenets of EA in Agile landscape and getting EA off the ground and keeping it agile.

Room 314 - The Evolution of CSS Layout: From Tables to Grids Josh Sager

This is a talk about how CSS Layout has changed over the last 20 years and is intended to build up to examples of CSS Grid Layout. Safari, Chrome, and Firefox have all recently shipped updates that can support CSS Grid. This talk can help to guide people into resources on how to get started.

Room 316 - Playing with FI/RE optimizing your own financial journey Phillip Green

The FI/RE (financial independence/ retire early) movement has been going on for many years and seems to connect with many people in software engineering. However, I have only known of it for less than a year. This talk is what I wish I would have heard many years ago. First I will explain what is financial independence as well as the primitives involved. (active income vs passive income; long term stock market growth rate and index funds) Second, we explore various paths of obtaining financial independence. (Savings rate trade-offs, reduced hours; working only part of the year) Lastly, we swing back to question if financial independence is the correct goal. (having all basic needs met indefinitely is more than what is needed because we don't live forever)

Room 103 - Kubernetify All The Things Steve Sloka

Good tooling today exists to spin up containerize environments with Docker on a single host and tear down just as fast. The difficulty is when trying to deploy across two or more servers. Kubernetes is an open source project to manage a cluster of Linux containers as a single system and solves that problem. This talk will outline all of the components of the Kubernetes system leave attendees with enough knowledge to spin up their own cluster and deploy at scale.

10:35 - 11:05

Ryan Room - Old. Dustin Updyke

Either the way you work, the code you write, your views, or you in general, are old. This statement will not offend or daunt the effective technologist. Many discussions in technology focus on how, but few on why. What might appear at first to be old often turns out to have timely significance once we understand why. Old has passed tests. Old is good. Life is a long campaign of transition: Idea to concept. Paper prototype to pilot. New feature to legacy code. Intern to Senior Engineer. Employed to unemployed. Cowboy coder to neck beard. A passionate life in technology is a life of improvisation, adaptation, and transformation. Change is a constant factor in what you know, what you do and who you are. In a way, your career is a prolonged operation to captain things from new to old. Yet there is a manner where old becomes dilapidated, broken-down, beat-up, run-down, tumbledown, ramshackle, decaying, crumbling, disintegrating. Let’s consider old in both a positive and negative light.

Room 317 - Falsehoods Programmers Believe About (Human) Languages - Common pitfalls in i18n Roan Kattouw

Making software translatable is easy, right? You just take out all the strings, put them in a translation file in your git repository, and start accepting pull requests. Simple! Well, not so fast. There’s a lot more to this than meets the eye, and if you take a quick and dirty approach you’ll end up with upset translators, complaints from users, and mysteries like “what is ١٢٬٣٤٥٬٦٧٨ and why does my code want to parse that as a number?”. Many languages have interesting features that make internationalizing software more complicated than an English speaker might imagine. Thankfully, there are open source resources and libraries that can take care of these things for you, but to get the most out of them they have to be used correctly. In this talk, I will discuss tools and best practices for interface translation, and show you some of the interesting features of human languages that make translation complicated.

Room 308 - Azure IOT Arthur Garcia

This talk will demonstrate how to get data from an IOT device into Azure. We will discuss the Arduino IDE, VS 2017 , Azure IOT Hub and Azure Stream Analytics. i will demonstrate how to move data from a device all the way thru the process and into Azure table storage.

Room 310 - How to Leverage the Side Hustle at Work Farah Khan

Have you ever wanted to start a side hustle? If you’re already doing something outside of your day job, how do you explain that the skills and knowledge you learned improve your work? Whether the side hustle is a personal blog, a product company, or services you provide, the skills you learn impact your individual contributions. In this talk, I’m going to talk about my own experience of building a business (the side hustle) and share tangible skills learned that one can apply to their own 9-5.

Room 311 - JSON Data Modeling in Document Databases Matthew Groves

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

Room 313 - Demos 101 Philip Van Sickel

How many times have you sat in a demo and wondered, "What the heck am I looking at?" Demos are foundational to agile development. They are the primary means of measuring progress. They are instrumental in getting feedback. Too often though they are confusing, ill prepaired and boring. There is much written about doing sales demos but very little concerning agile demos. In this session we will look at the fundamental principals one should follow to deliver effective demos that give you the feedback that makes your solution the best it can be.

Room 314 - How HTTP/2 Fits Into Your Workflow Byron Delpinal

The HTTP/2 spec has been out for almost two years now, yet adoption has been (predictably) slow. With more and more companies putting a high priority on performance, it’s time to take a serious stand against high load times and rid ourselves of jank once and for all. We’ll start with a brief history of the HTTP protocol, fall into the HTTP/2 spec itself to figure out what’s new, and finally learn how to enable this protocol on our own websites. This talk will cover browser support, server support, and CDN support, as well as how to cleanly overcome HTTP/1.x performance hacks like spritesheets and file concatenation.

Room 316 - What every developer should know about how their company is financed Jim Wrubel

If the company you work for doesn't have its name on the side of a skyscraper, this talk is for you. Whether you are evaluating a new opportunity, or just want to make sure that your current employment situation is stable, this presentation will help you understand what's important to look for and what questions to ask.

Room 103 - Elm - Functional Programming for More Functional Programmers Daniel Abeshouse

An intro to Elm - a functional programing language that compiles to javascript. Javascript that does not produce runtime exceptions (so far).

11:20 - 12:20

Cafeteria - Lunch Part 1 Lunchlady Doris

A yummy cafeteria-style lunch of various foodstuffs.

Ryan Room - Somebody Has to Care Kim Hardy

In order to produce high quality software, somebody has to care about each cross-functional area in the SDLC. Now everybody doesn't have to care about everything; 99.9% of people don't. But it is the combined strengths of individuals who care that makes a team "Rock!". This experiential/workshop will present the strengths-based agile collaboration model that I have used with my clients for the past four years, the successes and the pivots. Attendees will also have the opportunity to identify their own strengths and learn how to apply them @ work.

Room 317 - Deep Learning - For the Rest of Us Mohinder Dick

The real question is not whether deep learning the next big thing in computer technology, but how "deep" do you and I have to go to make practical use of the technology? In this presentation, I will demonstrate how we can leverage sophisticated general deep learning models like a Convolutional Neural Network (CNN) to more easily to perform custom image classification. The benefits of this "transfer learning" technique includes using less training examples and computing resources while still achieving great accuracy. Essentially, this is deep learning for the rest of us who don't have a PhD, parallel GPUs, hundreds of cores and petabytes of storage.

Room 308 - Approaching Unusual Canvases John Brown

Last year, I spent time creating large scale tech demos for live events to show off the power of Google’s G Suite. Tech demos show the power of technologies but are often very literal. The strongest way to cement information in a person’s mind is to provide it in the form of a story. So the twist used in this project was to use the actual tools themselves as an art canvas, a way to tell a story, all in the browser. The final installation was a series of full screen browsers, up to 13’ across, animating Google Docs and Google Sheets, using live ASCII and colored cells on each, respectively. Even the engineers who built these tools were amazed when they got to see the final animations. And now, I will tell you the story of how it all happened by walking you through a case study of how a project like this comes to life. We’ll go from brainstorming and prototyping through a-ha moments and installation. When attendees leave, they will have an understanding of a) what goes into a physical installation running a web app, b) pushing the technical limitations of a product, and c) techniques for looking at a system as a storytelling tool instead of a purely production one.

Room 310 - The Modern Mainframe John Kelley

Despite rumors to the contrary, the mainframe is not dead. This session examines the state-of-the-art hardware and software that makes up the IBM System z, and the local companies that develop for, and utilize the platform. We'll look at accessing the mainframe through Eclipse and SSH, and how UNIX/Linux is implemented on System z.

Room 311 - Afraid To Ask: What's a regular expression? Dale Sheldon-Hess

You've been at this for a while now, and everyone else seems to know already, so now you're embarrassed to ask: what even IS a regular expression? We'll take a brief look at the history, talk about what problems can be solved more easily (and which can't), do a crash course on syntax, and go over some examples as well as resources for further learning.

12:20 - 13:20

Cafeteria - Lunch Part 2 Lunchlady Doris

A yummy cafeteria-style lunch of various foodstuffs.

Room 313 - Getting Started with Angular Mike Brocchi

Angular - your friends are using it, they're getting hired to use it. Come learn what all the fuss is about and the amazing things you can do with this modern development platform.

Room 316 - Tools and Procedures for Securing .Net Applications Sam Nasr

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

Room 103 - Functions: The Ultimate Abstraction Keith Pinson

Developers are always looking for good abstractions. A solid abstraction not only makes you feel good---sometimes bad abstractions do that, temporarily--but above all a good abstraction simplifies the code, making it more maintainable and all those other "able"s that we all love. Turns out, sometimes the latest ain't the greatest--a modest little untyped Turing-complete language from the '30s, the lambda calculus, has provided us with an unimposing but extremely powerful abstraction known as the function that is present in some form in almost all language. Keith Pinson will demonstrate how you can even build data structures with pure functions, in order to demonstrate that employing functions as a fundamental programming construct in your code will result in simpler, more composable code.

13:35 - 14:05

Ryan Room - Elm - Could This Be the Future of Web Development? David Hoerster

As a developer who enjoys building concurrent and distributed applications, dealing with the front end has never been a favorite task. And I have often thought that building front-end applications by mixing logic into HTML tags has never felt right. What if I could build my web app using a more unified language and approach? Well, enter Elm, a functional language that transpiles to JavaScript while providing static type checking. In this session, we'll take a look at what Elm provides, how its simple Model-Update-View architecture can bring a lot of power to your applications, and we'll walk through a simple SPA demo in order to provide you a taste of what Elm can provide. At the end of this session, you'll have a better understanding of Elm's approach to web application development and be equipped to build your own Elm applications.

Room 317 - How to Make Your Manager a Better Leader For You Christopher Laco

How can you be a better manager? How can you help your manager be a better manager for you? In this talk we'll talk about these things and build a better bridge between developers and their managers so we can build stronger teams together from the bottom up. - Why Do This to Yourself? - - Full Time Mentoring - - Positive Change - - Shoehorned / Voluntold - New Managers - - Life as an Individual Contributor - - From Peer to Manager - - Defining Yourself / Measuring Productivity / Measuring Success - Stress Management (Manager and Individual Contributors) - - Organize! Organize! Organize! - - Provide Clear Direction / Ask for Clear Direction - - Don't Procrastinate - - No Lone Wolfs - Goals and Feedback - - Setting Goals / Goal Types (Defining Your Style) - - Revisiting Goals - - Personal Development Plans - - Gathering/Delivering Peer Feedback - Being Better - - Be Vulnerable - - Be Clear - - Be Direct - - Success = "They". Failure = "I" - - I ”Work for” The Team/ The Team Does Not ”Work for" Me. - - Servant Leadership

Room 308 - Programming Alexa with JavaScript Richard Ashkettle

Sometimes coding should just be fun. Amazon's Echo is appearing in more and more homes. In this hour we will be going through what you need to do to write a skill for it, and how to deploy it.

Room 310 - Wireless LAN Security Baker John

Technology has permeated every aspect of our lives, and wireless technology is no exception. Wireless technology has engulfed our society not only from a professional level, but also from a personal level as well. The Institute for Electrical Electronic Engineers (IEEE) developed the 802.11 Standard. From this standard grew the adoption of 802.11a, b, g, n, ac. Wireless access points were also developed along with the use of this standard. As the demand for wireless LAN technology increased, so did the need for wireless LAN security. This presentation will focus on wireless LAN security technology that is being deployed today, specifically with the design and implementation within the 802.11 environment. This paper starts with a brief history of wireless LAN technology, and how it is currently used. The main component of this paper discusses the different aspects of wireless LAN security, including WEP, WPA, WPA2, and 802.1X and how these different types of security function within a business environment. In conclusion, each wireless LAN security type will provide a different level of data protection. The size of the wireless network, along with the type of data being routed through the network, will determine the level of security.

Room 311 - A Pathway Towards Continuous Delivery Jake Brown

Getting new features and bug fixes to clients can be a major challenge for large software projects. But there are a lot of individual process improvements you can put into place that will help you ship your code more often with high quality. In this talk - I'll break down the key pieces that need to be in place to support continuous delivery - focusing on the benefits of each and the hurdles you'll face with adoption.

Room 313 - Building products nature's way Ashish Anand

Whether you are a start-up or individual working on next big thing, we always fumble on how to build that thing. What is the best process? Well, I feel we can learn a lot from Mother Nature. Often people talk about a product and say "It's my baby". Imagine if we all started building products just like the way we were raised by our parents or the way we raise our kids. My talk will go into details on how we can apply this iterative process of bringing up a product as a child, nurturing it, providing guidance & making it an amazing thing.

Room 314 - Looks like Rust's Rocket is blasting off again! Jake Goulding

While Rust is a comparatively new language, it's been stable for 2 years and as all programmers know, stable means "boring". We programmers love moving fast, learning new technology, breaking things, and maybe even fixing what we broke. Luckily, even though Rust is stable, the broader Rust ecosystem still has shiny (and sometimes sharp) surprises for us. Rocket is a web framework that targets the nightly version of Rust, allowing us to experiment with what a future version of Rust might look like. Together, we will explore how to create a basic web service that handles the backend for the "hello world" of web apps, a TODO list app. Along the way, we will highlight how Rust's type system helps us produce higher quality results while ensuring that our server can be performant out of the box.

Room 316 - Solving Real Business Challenges in Today’s VR Ecosystem Joel Reed

VR is rapidly becoming a cost-effective solution for engaging training experiences, candidate assessments, and sales related product demos. This talk is about the current state of hardware VR platforms, the building blocks for a VR solution, and VR user experience best practices. By the end of the session, you’ll be better equipped to successfully apply VR to real business challenges.

14:20 - 15:20

Room 317 - Getting Started with Docker & Docker Compose Chris Houdeshell

The landscape, tooling, and expectations of being a developer today are radically different than those even just a few years ago. We are expected to understand, communicate, develop, test and deploy technologies that empowers our companies today and tomorrow. While this list of expectations grow almost daily, all developers must start somewhere. In this session, we will leave with a basic understanding of containerization and tooling to help you along the way. We will be using Docker & Docker Compose to stand up a development environment and run through all the expectations of being a developer… all from within the confines of a single machine.

Room 308 - Stand in the Gap: Have a Mentor, Be a Mentor Joel Mason

We talk about mentoring a lot in the software industry, but how much do any of us really know about how to mentor? If we’re honest with ourselves, we are probably making it up as we go. This talk will hopefully move beyond that and move towards having a purpose to our mentoring relationships. We will take a look at how to start a mentoring relationship, setting a purpose for the mentorship and ultimately how to make the most out of it. Whether you are a mentor, a mentee or even someone who is just interested in possibly doing this someday then you will benefit from this talk.

Room 310 - Practical Spring boot for the non-enthusiast Billy Conner Jr.

Spring boot is a framework for bootstrapping a Spring application. Spring boot take a convention over configuration approach to get you productive as quickly as possible. Using Gradle and Groovy (or Java) with Spring boot, we will discuss how you can use Spring boot to assist you with your everyday projects or begin a production ready application.

Room 311 - Revealing the Unobvious Social Norms that Impede Agile Adoption John Ryskowski

Abstract: Transitioning from traditional development to agile can be painful and frustrating. The folks that “get” agile and are tasked with getting everyone else to “be” agile are sure that everyone would be happier and more efficient if they would just be agile. It’s so simple and makes sense, why not just do it? After all the training and clever exercises that literally prove agile techniques really work, folks still have a hard time moving from their current state. Why? As a result of being human, we practice social traditions (or norms), many of which we are unaware of, and some of which are impediments to becoming agile. This talk reveals some less obvious social norms and traditional development method fantasies from which one must disengage in order to truly be agile. Learning Outcomes: If you can resonate with the core fears and anxieties of folks that need to change, you are best positioned to instigate and gracefully manage that change. This session will sensitize participants to the sources of core fears and anxieties that face leadership of traditional software development when transitioning to agile. Transition your energy from frustration to insight, make your path to agile less painful, and perhaps be happier at work. Details: “The fledgling problem solver invariably rushes in with solutions before taking time to define the problem being solved”- so say Gause and Weinberg. We tend to see a familiar tool as a solution before we understand the problem. This presentation IS NOT about methods, tips, or tools for transforming a traditional development organization to agile, IT IS a deeper dive into inherited social norms of which we are unsuspecting victims. Social norms that impede agile adoption. The principles of scrum make perfect sense intellectually, but within many a project manager (and customer) reside strong emotional attachments to life-habits that manifest themselves as stubborn roadblocks to agile. We will explore these norms, even briefly experience some first-hand, and see how they make leaders cling so vigorously to the ways of traditional software development. The audience will have handouts for short exercises that will introduce each social norm. Attendees will briefly experience each social norm first-hand, sometimes without even knowing it. For example, the first norm “finish-what-you-started” will open with a brief exercise where folks end up practicing micro-waterfall development, in just two minutes without intending to do so. It is simply what many folks naturally gravitate towards. The social norms include: • Finish-what-you-started containing a brief moment from Pink Floyd’s “The Wall.” • Matching socks into the Dryer, Un-Matching socks out of the Dryer syndrome. How the critical elements that describe a critical system are entrusted to little cards called user stories that are written and ultimately managed by the programmers. Yikes! • We are a top-to-bottom society. How is store shelving like traditional development? • Maintenance of power where Mel Brooks says “It’s good to be the king.” How power or possession of control is something folks really want to keep once they have it. The traditional development fantasies include: • Controlling requirements • The customer knows what they want This session can either be lecture only for 30 minutes or lecture with short activities (recommended) for 60 minutes. To see the full paper this presentation is based on go to Speaking History: I have spoken at Agile West, CMMI Institute Conferences, Pacific Norhwest Software Quality Conference, National Defense Industrial Association. I have also delivered good and bad news to leaders of many corporations.

Room 313 - Why am I not getting promoted? Gregory Lang

We'll cover some preconceived notions about how one "should" get promoted and why you must let those go. Make sure you understand what's asked of people in higher technical roles and let you determine if you actually want promoted. I'll also share the career ladder guidance I've received over the years. Finally, you may even hear some truths your manager is afraid to tell you.

Room 314 - Take a Gulp of This! Git, Gulp, WebPack, & Express.js: Modern Front End Tooling Benjamin Bykowski

Front end development suffered long in limbo living somewhere between design and coding. No more! In this *gulp* live coding session, we’ll unpack WebPack, get Sassy with SCSS, get good with Git, express ourself with Node and Express.js, and automate all the things with Gulp. Using only FREE (as in beer) tools and libraries, we’ll create a modern front end development environment and build a single page website in less time than an episode of Star Trek. BYOD and live-code along with me or simply enjoy yourself as a spectator. One lucky attendee will walk away with a 2 month pre-paid membership to Pluralsight.

Room 316 - How ASP.NET Core differs from the ASP.NET you already know Steven Hook

We'll talk about the big changes to a .NET web developer’s life with the release of .NET Core and ASP.NET Core. We’ll cover server side changes with some Web API examples as well as some front end changes in ASP.NET MVC. We will have answers to questions like, "What's this project.json file and why is it already gone?". I’ll walk you through the .NET Core CLI as well Visual Studio 2017 as it applies to .NET Core. You will learn about the key new concepts and features that are a part of ASP.NET Core and how they differ from the ASP.NET you already know.

Room 103 - New Instance, Now What!? Jim Donahoe

Congratulations, you’re now our DBA! A new SQL instance is like a blank canvas, you stare at it and wonder where to start. As an accidental dba, this session will help you learn how to survive in your new role. In this session, you will be supplied with the beginning brush strokes to make your server a master piece. To do so, we will review best practices for standard configurations, backups, maintenance, and disaster recovery. By the end of this session, you will have developed a pallet of tools to help you create your SQL Server Masterpiece and be able to use it as a print for others.

15:30 - 18:30

College Center Square - Panel Discussion and PTC After Party A Panel

Panel Discussion: "Making the Leap: Become a Tech Entrepreneur". Also, drinks and apps, socialization opportunities, and a chance to connect with old friends.