text: export default [{"Id":6938,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":" JSON parsing in Swift just got a whole lot easier!","Abstract":"JSON is quickly becoming the de facto data exchange format on the web with more and more web services serving content in JSON format. In fact, with the growing popularity of NoSQL databases, content is even being stored as JSON. The ability to encode JSON to and from native language representations is quickly becoming integral to developing a web or mobile app. In this talk, we look at how we can accomplish this using Swift 4.\r\n\r\nSwift 4 was introduced in summer of 2017 and with it came Codables. Swift Codables greatly simplify the process of encoding and decoding from native swift objects to/from other representations , including JSON. Codables does away with the tedious JSON serialization /deserialization logic you probably had in place in earlier versions.  In this talk, we will introduce you to Codables and look at examples of how you can use it for JSON serialization.\r\n\r\nAnyone building apps using Swift 4 will benefit from this talk.","SessionType":"General Session","Tags":["Mobile","Other"],"Category":"Mobile","Speakers":[{"Id":"fd245182-1b3b-45ac-93f6-cac098581200","FirstName":"Priya","LastName":"Rajagopal","GravatarUrl":"//www.gravatar.com/avatar/01c9d267e78a30758e8ce4a8735833e5"}]},{"Id":7830,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":" See Your Data on the Network with Wireshark","Abstract":"Does your program send data over the network? When debugging, it is useful to know what data your program is sending and receiving. This presentation will explain basic networking, how to use WIreshark to see the data and how to use Wireshark Generic Descriptor to define custom protocols.\r\n\r\nIf your program sends data over the network, then you may someday need to know what it looks like on the network. When debugging, it is often useful to know exactly what data your program is sending and receiving. This presentation will give you a quick refresher (or fast introduction) to basic networking protocols, explain how to use WIreshark to see your data and how to use Wireshark Generic Descriptor to define you custom protocols.\r\n\r\n**Networking Refresher** A review of basic networking, standard protocols (IP, TCP, UDP, etc.) and how the networking model uses this layers to build messages.\r\n\r\n**Wireshark Overview and Demo** After an overview of how to use Wireshark, we will look at some of example data captures to practice using Wireshark, as a group and also in individual excercises.  We will also have examples and excercises to illustrate the lessons learned in the Networking Refresher.\r\n\r\n**Wireshark Generic Descriptor (WSGD)** If you have a custom protocol, you will need to define it so that Wireshark can display the data.  We will look at the three options for creating dissectors.  We will look at how to define a protocol using WSGD and how to configure Wireshark to use it.  We will look at examples of Wireshark displaying data in custom protocols and have excerses in creating disectors to display packets from an example custom protocol.\r\n","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"89a4ad22-2944-4af2-8932-107d3c3d734b","FirstName":"Wayne","LastName":"Goode","GravatarUrl":"//www.gravatar.com/avatar/8422f98a1f24f99ca5e55949845bcafa"}]},{"Id":7383,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":".NET IL: Into the Marianas Trench","Abstract":"Are you interested in writing compilers, targeting Web Assembly, finding security issues automatically, binary analysis, or understanding performance at a low level? While it’s always good to know how your language works, the benefits of understanding the intermediate language extend to metaprogramming and analysis across multiple source languages. Learning how to work with intermediate languages allows you to write programs which would seem unattainable otherwise. You will learn not only how IL works but how it compares with LLVM IR, Java Bytecode, and other intermediate representations. No mere “deep dive,” you’ll leave this talk really understanding how C# turns into microcode and how to use that information to do “impossible” things.","SessionType":"General Session","Tags":[".NET","Other"],"Category":"Architecture","Speakers":[{"Id":"a01d978d-3330-4384-b5c0-6b39d9b28d95","FirstName":"Craig","LastName":"Stuntz","GravatarUrl":"//www.gravatar.com/avatar/a45302e072f5c7cfd34d18328139ff66"}]},{"Id":7109,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"10 Insane Tips You Can Use Today to JavaScript Effectively; #8 Will Shock You!","Abstract":"When the specification formerly known as ES6 (now ES2015) was ratified, we were all extremely excited. It had been 15 years since the last significant update to JavaScript, and the front-end world (as we knew it) changed. It has been over a year now and the excitement has ebbed, but our productivity is in flow. We’ve gotten past the novelty of the new features and learned how to use them effectively in everyday code.\r\n\r\nThese 10 insane tips will help you understand when and where to use these new features (including ES2016 and ES2017 features) of JavaScript. We’ll touch on effective use cases of modules, destructuring, template strings, arrow functions, generators, and much more. Using real-world examples, you’ll see how to leverage the new language capabilities for maximum readability and expression. If you haven’t jumped into ES201x, we’ll discuss how to embrace the future while preserving browser compatibility. If you have used it, see how others are using it. We’ll also discuss some future features you can use today, if you feel like living dangerously!","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"04650a2c-b4dd-4916-9e37-fef963867ce8","FirstName":"Brian","LastName":"Genisio","GravatarUrl":"//www.gravatar.com/avatar/170325813beddd7418a3b55ffbf378f9"}]},{"Id":6854,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"299,792,458 Meters per Second","Abstract":"Network latency is real. If you build systems that communicate on the same machine or the same local area network, then you probably don't feel the pain, but the moment you start distributing your systems across multiple data centers that pesky speed of light limit starts to rear its head.\r\n\r\nIn this talk I'll teach you how to laugh in the face of physics, building systems that give you the performance you need, spanning across the globe. Using real-world lessons learned from building and operating DNSimple, I'll show you how to decide what tradeoffs you have to make to meet the needs of your customers, developers, and operators. By the time we're done, you'll have a better understanding of design techniques that you can use to make your systems perform well, even if they are spread across the planet.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Architecture","Speakers":[{"Id":"08f4cee5-5959-4ca2-8135-db5cefb24671","FirstName":"Anthony","LastName":"Eden","GravatarUrl":"//www.gravatar.com/avatar/3cecaf4eaa5eec55908606df80a24e3e"}]},{"Id":6904,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"3D Modeling for Makers and Game Developers!","Abstract":"Just bought a 3D printer and want to design custom parts for your robot army? Are you a developer looking to expand from curly braces and semicolons to Icospheres and UV Maps? Are you a maker ready to move up from browsing Thingiverse and on to creating your own content? This hands on session will provide you with the tools and techniques to make this happen using Blender, a free, open source software package for 3D art and animation.  As this is an intro session, the hands on examples will focus on basic 3d modeling techniques, with demos on texture mapping and simple keyframe animation. Attendees will leave with the knowledgeneeded to bring their creations to life!","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Design (UI/UX)","Speakers":[{"Id":"507b8231-d823-4810-b154-077ba807dfb9","FirstName":"Robert","LastName":"Palmer","GravatarUrl":"//www.gravatar.com/avatar/50df089032175caed2615ec1f72e4535"}]},{"Id":6947,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Better Technical Interview","Abstract":"**We’ve solved too many trivial algorthims, answered enough questions about golf balls, and been silently judged by hazy rubrics for too long.\r\n\r\nIt’s time for A Better Technical Interview.\r\n\r\nLet’s foster honesty, transparency, dialog, and collaboration in our interview process!**\r\n\r\n\r\nCandidates shouldn’t be silently judged, solving an algorithm in an environment that discourages good coding practices. Candidates shouldn’t fear that an interview won’t reflect their true abilities. Candidates should feel their time investment was valuable even if the decision is “Not Yet”.\r\n\r\nLet’s make A Better Technical Interview.\r\n\r\nLet’s make a valuable interview by setting better expectations and creating better evaluation techniques.\r\n\r\nLet’s make an honest interview by asking instead of assuming, and treating candidates how they’ll actually be treated.\r\n\r\nLet’s make a collaborative interview by encouraging dialog and testing a candidate’s ability to teach, learn, and work with the team.\r\n\r\nLet’s make a nice interview by ensuring the process is valuable to the candidate even if they’re not yet ready to join the team.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"322dcc95-01fc-44fe-ae82-67deb0c53d20","FirstName":"Sam","LastName":"Jones","GravatarUrl":"//www.gravatar.com/avatar/68fce2d0bde84a4ea2b63dd5647d6526"}]},{"Id":7554,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Brief Introduction to Concurrent Programming","Abstract":"Unless systems you build are developed with concurrency in mind, they probably do not take full advantage of modern multi-core CPUs. Concurrent programming facilitates the use of multiple processors, but is difficult to implement using traditional approaches. Fortunately, new approaches taken by functional languages have begun to address these difficulties. \r\n\r\nIn this highly interactive session, volunteers from the audience will help present the basics of concurrent programming concepts, how these concepts have been addressed historically, and how functional languages such as Erlang, Clojure, and Haskell address these concepts today. With this knowledge you will begin to think about software architecture differently, and may even decide to introduce concurrency into your next project.\r\n","SessionType":"General Session","Tags":["Functional Programming","Other"],"Category":"Programming Principles","Speakers":[{"Id":"fbcf5f72-1a9c-4f01-a61a-004d091146a7","FirstName":"Rob","LastName":"Keefer","GravatarUrl":"//www.gravatar.com/avatar/c2b1d84a1385e58a6591b06c1aa5f63e"}]},{"Id":7119,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Game of Theories: why languages do what they do","Abstract":"How often do you search for “how to do [x] in [language]”? Maybe you’re a Ruby dev who wants to know how Erlang ensures code is executed after an error, or maybe you’re a Pythonista who thinks there *must* be a simple JavaScript equivalent to `range()`. This talk will go a step beyond the answer, and look at what we can learn about languages by comparing how they solve our common problems. What does a language’s built-in-functions tell us about why they were created and how they are best used? Let’s find out. (language list also includes Clojure and Go, but the questions asked are broadly \r\napplicable)","SessionType":"General Session","Tags":["JavaScript","Ruby/Rails","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"2a823543-9c11-4f18-8af9-83fe28c595ec","FirstName":"Rae","LastName":"Krantz","GravatarUrl":"//www.gravatar.com/avatar/2dcc0ab5980f428aaf60393c283d95d2"}]},{"Id":7187,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A More Secure World for Android Apps","Abstract":"In the world of development, security is sometimes a subject that does not receive the importance it should have. This talk has as objective touch some points for make Android Apps more secure. \r\nStarting for something basic like use SSL/TLS certifies, use PUT and not GET for your http(s) requests, send and receive encripted information using standards like JWT, adding reCAPTCHA, use Passwordless with technologies like Firebase Authentication or Auth0.","SessionType":"General Session","Tags":["Mobile","Security","Other","Java"],"Category":"Mobile","Speakers":[{"Id":"5ee1cae5-780c-46e0-bead-b99b2a5b10c6","FirstName":"Mercedes","LastName":"Wyss","GravatarUrl":"//www.gravatar.com/avatar/0fac397e41664ef81b0204da3d978c8e"}]},{"Id":7193,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Research Study into DevOps bottlenecks","Abstract":"We asked a Fortune 500 software delivery leaders what holds them back. This talk is the analysis of their insights on what bottlenecks they encountered in their DevOps journey. We share discoveries on what helped them to overcome the bottlenecks and how they plan to deliver even faster. Using this we define some unifying themes on what areas provide the greatest return in investments of time and resources.\r\n\r\n","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"DevOps","Speakers":[{"Id":"c459e92a-1aa6-49ea-b120-fb72e1a44a83","FirstName":"Baruch","LastName":"Sadogursky","GravatarUrl":"//www.gravatar.com/avatar/fea6ad3204a6a58bbe40a132f5968925"}]},{"Id":7764,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A SOLID approach to Test Automation ","Abstract":"SOLID. The essential principles for developing within the OOP paradigm. When combined, these design principles make it easy for a programmer to develop software that is both maintainable and extendable. While our software is often analyzed and designed with this acronym in mind, our test code is often not.  How can we take what we know about Object Oriented design and apply it to the way we design our testing assets? In this session, we will take these celebrated OO design principles and explore the ways we can apply them to our tests. ","SessionType":"General Session","Tags":["Ruby/Rails","Testing"],"Category":"Software Quality","Speakers":[{"Id":"44fad5b9-f0b5-4b31-b416-678eb4d37e2a","FirstName":"Branden","LastName":"bellanca","GravatarUrl":"//www.gravatar.com/avatar/06f6516772eca8763479753e2746e328"}]},{"Id":7650,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Tale of Two Offices: Being Sober & Sick in the Workplace","Abstract":"Before my health started declining, I never gave a second thought to all the possible obstacles that could stop me from being productive and social at work. Stairs and happy hours posed no threat. Now, they can easily ruin my day. To a person with an invisible struggle, whether depression, chronic fatigue, or addiction, the office turns into an exhausting obstacle course that often feels alienating. This talk is structured as advice I’d give my former self on practicing empathy for your coworkers for a more inclusive workplace.","SessionType":"General Session","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"53ea4b14-71b0-4d50-b32f-22eda084f2f5","FirstName":"Stacy","LastName":"Harrison","GravatarUrl":"//www.gravatar.com/avatar/95d94cf9b7bbf6a867fdc45b8cef5b17"}]},{"Id":6942,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Whirlwind Tour of Recurrent Neural Networks","Abstract":"Neural Networks. Deep Learning. TensorFlow. What are these buzzwords? What is the latest Artificial Intelligence craze? This advanced session contains cutting-edge information *not* easily found online, and does *not* require a PhD in Machine Learning to understand. Recurrent Neural Networks (RNNs) can be used to generate text that will look like its original training data. There are many [articles](http://lewisandquark.tumblr.com/tagged/neural+networks) out there that show hilarious end-results of such adventures, but start-from-scratch walkthroughs that show the raw code, like this one, are hard to come by. This presentation will demonstrate what you need to join in, grab your own data set, process it, train it, and sample it. Training the data on a CPU can take hours, but in this session you can learn how training on a GPU with hardware acceleration takes only seconds. Come away from this session with your own datasets to “randomly” generate new bodies of text!\r\n\r\nHands-On attendees will find and pull their own dataset, pre-process it, sample, and train it. If time permits, we will explore GPUs on Azure.","SessionType":"Pre-Compiler","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"e2216a62-dc50-463e-b359-6dadfe04e963","FirstName":"Sarah","LastName":"Sexton","GravatarUrl":"//www.gravatar.com/avatar/dac60e0666d9d2d8a154e0cb193f1d26"},{"Id":"3bae9249-e692-4a7d-867b-0c1330a45db4","FirstName":"Jennifer","LastName":"Marsman","GravatarUrl":"//www.gravatar.com/avatar/36fa3107bdff153bf46f9e80aefc9fbd"}]},{"Id":7092,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"A Year of Rust","Abstract":"Rust is a systems programming language with a focus on safety. I started learning Rust a year ago when I was looking for a different backend stack (I had been using PHP previously). Using Rust as a web language for a year taught me many things that I had not learned using other languages.\r\n\r\nIn this talk, I’ll take you on a journey of what Rust taught me about programming and life. You will learn about subjects like the importance of composition, why object ownership is critical skill, and how Rust can give you more flexibility in your life.","SessionType":"General Session","Tags":[],"Category":"Programming Principles","Speakers":[{"Id":"1703f4c9-fc99-4a7f-ad7e-09242c01c0ba","FirstName":"Stephen","LastName":"Zeidner","GravatarUrl":"//www.gravatar.com/avatar/5e3e6f0c073e2d18f6c4716d83c6cea3"}]},{"Id":7636,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Accessibility Cookbook: 10 easy recipes","Abstract":"If you ever use the elevator,  subtitles to watch that cat video during a boring meeting, or tabbed through a form, you have used an accessibility feature.\r\n\r\nAs a community we understand that accessibility is necessary but when it comes to implementation, we often fall short.\r\nIn this talk you will learn\r\n\r\n* Why accessibility is important\r\n* 10 common accessibility fails\r\n* How to test for them\r\n* Solutions anyone can implement\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Testing"],"Category":"Design (UI/UX)","Speakers":[{"Id":"571ebc58-8acf-4a1a-974a-dba58597fdb9","FirstName":"Martine","LastName":"Dowden","GravatarUrl":"//www.gravatar.com/avatar/3bdc8999039a0f54f79cbc2b007b23eb"}]},{"Id":7267,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Accessibilty in Android","Abstract":"Accessibility is often an afterthought when developing apps of any kind, yet if your app is not embracing accessibility, you are losing a large percentage of your potential market. In addition to lost market share, there is a legal aspect of accessibility, especially if you build applications for government organizations. Section 508 of the Rehabilitation Act mandates specific types of accessibility features in your app, and the rules for apps are different than the rules for web sites, so we'll learn what rules apply to mobile apps. Every app can benefit from applying these rules even if the government is not involved. This session demonstrates hardware and software tools and coding techniques which enable inclusivity in your Android app and embrace disabled users.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Mobile"],"Category":"Mobile","Speakers":[{"Id":"c709db38-9d29-493c-bdeb-445543a17cdd","FirstName":"David","LastName":"Truxall","GravatarUrl":"//www.gravatar.com/avatar/a7079b43c1fd0285cb7d9f363069382a"}]},{"Id":7749,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Advanced Patterns for Automated UI Testing","Abstract":"Automated browser tests can be a nightmare to write and maintain. Unlike unit tests they’re tough to set up, slow to run, make permanent changes to data in the system, and they’re incredibly brittle. Even a tiny CSS change can result in cascading failures!\r\n\r\nYou can’t *totally* avoid these issues, but you CAN manage them by adopting a few key patterns and techniques. This session explores the lessons learned by one product team as they moved from manual regression testing to an automated process using Canopy and Selenium. You’ll go beyond the basics of single-page testing and see real-world suggestions for managing test data, executing complex and multi-page tests, organizing and writing test code, and coping with “permutation explosion”. You’ll also learn techniques for involving the entire cross-functional team in the process.\r\n\r\nThis session is designed for developers and architects that know how to automate the browser, but are struggling to leverage that knowledge into a suite of maintainable UI tests that provide acceptable ROI. It focuses on patterns and principles, not a specific automation technology.\r\n","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"7f2c76d2-b751-4fd7-ab7c-151fbbe09770","FirstName":"Seth","LastName":"Petry-Johnson","GravatarUrl":"//www.gravatar.com/avatar/592ce06e300c7947559cff31295ee0bd"}]},{"Id":6928,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Always Be Delivering","Abstract":"What do Facebook, Google, Netflix, LinkedIn, WordPress and Etsy all have in common?  They are all well known IT organizations that practice continuous delivery and deployment (CDD).  This helps them reduce the risk associated with releasing code, improve system resiliency, and reduce overall software development costs.  At any point and often multiple times per day, they deploy the latest changes to their production environment with full confidence because their builds have been tested automatically. \r\n\r\nIn this hands on session, you will learn how to continously deliver with confidence. You will set up a development pipeline for a sample application. Step by step, you will assemble individual tasks and link them together to form a pipeline that takes a code change from source control all the way to a live production environment.  But a pipeline is just the start.  Along the way you will learn how you can use feature toggles, fast failures, small changes, and optimized tests to encourage a culture of CDD right now.","SessionType":"Pre-Compiler","Tags":["Testing","Java"],"Category":"DevOps","Speakers":[{"Id":"54cd295d-10fc-4446-b612-beb0a94d98aa","FirstName":"James","LastName":"Balmert","GravatarUrl":"//www.gravatar.com/avatar/14822ab9e6974c7517e025ff18c17994"}]},{"Id":6931,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"App architecture without RDBS vs NoSQL drama","Abstract":"Between the tried and true, enterprise relational database systems that have been around for decades, and the relative new hotness of open source document databases, an entire subculture of zealotry has insisted that you choose a side. However, real life requirements demonstrate a time and place for both flavors of data persistence, and often a mix of the two. Regardless of your chosen development platform, the careful composition of more than one type of database can dramatically simplify your application and better handle larger workloads.\r\n \r\n Objectives:\r\n \r\n * Know when to use relational data, and when not to. Fight the urge to normalize everything.\r\n * The secret sauce to scale is often precalculation. Aggregate querying is a huge pinch point for many LOB applications.\r\n * Documents can hold a ton of serialized data that can be formatted and served to users. You might be surprised to find that relational databases are pretty good for this as well.\r\n * Cloud resources open up a world of possibility, where storage is cheap.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Architecture","Speakers":[{"Id":"45202053-f843-4251-a753-2a8f612a00ac","FirstName":"Jeff","LastName":"Putz","GravatarUrl":"//www.gravatar.com/avatar/5ea27fefd5d94036b0def62f7cda2c60"}]},{"Id":7246,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Application Insights: The Magic School Bus for your Web Applications","Abstract":"Ms. Frizzle and the kids are going on an adventure. Not into the human body. Not into outer space.\r\n\r\nThe Magic School Bus is going into your web applications to answer the questions that have been plaguing developers for centuries. How fast are my requests? How many requests am I getting per second? What resources are people asking for? What's throwing errors?\r\n\r\nApplication Insights is an application performance service for web developers. It works across multiple platforms, including .NET, Node.JS, and more. It is designed to watch your applications at the granular level, and report back everything it sees. All this while not impacting your performance.\r\n\r\nIn this presentation, we will explore adding Application Insights to an existing web application and looking through its cloud-based portal at overview health and performance. Examples from existing production applications will be used to show off many of the features and cool things you can do!","SessionType":"General Session","Tags":["JavaScript",".NET"],"Category":"Software Quality","Speakers":[{"Id":"f1da931d-6b39-40a0-8b7e-7e355a89d223","FirstName":"Kevin","LastName":"Griffin","GravatarUrl":"//www.gravatar.com/avatar/11ce7889cfbdc9af46389f2c7e3ff015"}]},{"Id":7177,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Automating Security Testing with the OWTF","Abstract":"When it comes to app security, scanning is good, but pen testing is better. That said, we're lucky if we can schedule (and budget for) a web app pen test once a year. Wouldn't it be swell if we could automate the security testing process so it turned up the same weaknesses in QA an attacker would likely try to exploit in Prod?\r\n\r\nWell, then. You're in luck.\r\n\r\nOWASP's Offensive Web Testing Framework (OWTF) was designed to help automate the web app pen testing process. By baking the OWTF into your own QA processes, you can benefit from the same knowledge and tools that the bad guys use to attack web apps. Better yet, you can run these tests as frequently as you like for FREE.\r\n\r\nThis presentation will show you how to use the OWTF, helping you improve both the efficiency and effectiveness of your app security testing process.","SessionType":"General Session","Tags":["Testing","Security"],"Category":"Security","Speakers":[{"Id":"79e01186-c9fd-48d1-b955-ac564352826b","FirstName":"Jerod","LastName":"Brennen","GravatarUrl":"//www.gravatar.com/avatar/3843cce71187c5b2a9f1180f2f1208cf"}]},{"Id":7143,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Automation Trepidation: Does DevOps freak you out?","Abstract":"It’s not as scary as it sounds. Let’s start with simple automation. By automating your build and release pipeline, you can begin to implement a DevOps culture in your organization. We’ll explore the tools that will enable you to achieve this both quickly and easily. \r\n\r\n\r\nIn this session, we will start from scratch by building a brand new application and finish with a fully functional Continuous Integration / Continuous Delivery pipeline utilizing Visual Studio, Visual Studio Team Services and Azure App Services. We will explore the DevOps tooling provided by Visual Studio Team Services and developer workflow using branch policies with pull requests and gated check-ins.","SessionType":"General Session","Tags":[".NET","Other"],"Category":"DevOps","Speakers":[{"Id":"b1585fbf-2c65-4dd9-8138-11e4c3e1a63b","FirstName":"Ryan","LastName":"Foote","GravatarUrl":"//www.gravatar.com/avatar/b42731c24edfa77e5edb869afae36596"}]},{"Id":7289,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Autonomy & Asynchrony: The key to designing reliable systems","Abstract":"The real world, with all its complexity, can at the same time be simple, elegant and beautiful. It thrives on autonomy and asynchrony, the two most important things that bring order to chaos. The real world does not pause for something to complete before moving on. And yet, when we write software, “Command and Control” is the norm. We find clever ways of doing this while keeping up with all the new technologies and the languages in fashion, all the while ignoring the realities of life.\r\n\r\nIn this session, explore an alternate universe in which Event Driven Architecture can power even the most complex mission-critical systems. Learn how communicating asynchronously via events leads to building systems that are autonomous and much more reliable. Embrace asynchrony and autonomy. Make the complex simple.","SessionType":"General Session","Tags":[".NET"],"Category":"Architecture","Speakers":[{"Id":"5c2198a7-9081-4686-9a1b-840d758e405e","FirstName":"Indu","LastName":"Alagarsamy","GravatarUrl":"//www.gravatar.com/avatar/5dd3165fd408bfad86466226d71b53cc"}]},{"Id":7079,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Avoiding Microservice Megadisasters","Abstract":"You’ve spent months re-architecting your monolith into the new microservices vision. Everyone gathers around to flip the switch. You navigate to the first page…and nothing happens. Refresh…still nothing. The site is so slow, it won’t respond for minutes. What happened?\r\n\r\nIn this session, I’ll walk through a post-mortem of a real-life microservice disaster. I’ll show the modeling, development and production problems we found, and how we slowly morphed the new distributed monolith into our final picture of sanity.\r\n\r\nWhile we can’t prevent project failures, we can at least identify problems early on in our design so that our final product results in a clean, robust distributed system.","SessionType":"General Session","Tags":[".NET"],"Category":"Architecture","Speakers":[{"Id":"49c9fba5-4c51-44b0-82be-2f2ce44fbbbf","FirstName":"Jimmy","LastName":"Bogard","GravatarUrl":"//www.gravatar.com/avatar/cc359c5ccf90d7a24b5976316797b5ec"}]},{"Id":7747,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Avoiding the Lock-In Fallacy","Abstract":"Lock-in is a misunderstood concept. Most of the time it's associated willy-nilly with vendors. Open Source is considered a panacea resolving the lock-in issue once and for all. In extreme cases some believe if they write everything from scratch the problem never surfaces. Unfortunately the opposite is true.\r\n\r\nLock-in is when you choose a bespoke solution, including one you create, and the cost of change exceeds your budget. It’s not about vendors. It's not about Open Source. It's about making careful decisions about the cost of change.\r\n\r\nSoftware is best designed by making explicit decisions when options are presented. The CAP theorem is a great example: choose consistency of data or availability of date in the face of a network partition. If you don't make an explicit choice when components can't speak to each other a choice will be made for you.\r\n\r\nLikewise, when selecting components for your architecture the possibility of lock-in always there. Sometimes the organization gains more from making future change more costly by accepting lock-in. In that way lock-in may not be so bad! Often, though, lock-in represents too great a risk. It's important to evaluate these tradeoffs carefully.\r\n\r\nIn this talk I'll describe the thought exercises I've used in making architectural decisions around lock-in. You'll learn how to thing strategically about the implications of building, buying, or using a component in your architecture. These techniques make software design and planning run more smoothly and help you eliminate biases of tribalism and fashion from the process.\r\n","SessionType":"General Session","Tags":["Cloud/Big Data","Soft Skills / Business","Other"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"8850dde1-fd5e-4a75-ac1b-a8df5308153a","FirstName":"Casey","LastName":"West","GravatarUrl":"//www.gravatar.com/avatar/4a047d5ad23f4a43156a94b5c3fdf150"}]},{"Id":7589,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"AWS Security Essentials","Abstract":"Are you using or moving to AWS? Have you considered how you organize and secure your AWS environments? The growing push to cloud providers has allowed us to move faster and tackle problems more efficiently. The same freedoms that have allowed us to move faster have also created scenarios where security issues are exposed by accident and/or without proper management and review. As companies move toward more and more cloud usage, teams are pushed harder to ensure the same compliance and security requirements that exist in slower moving private environments. This has the potential to put us right back where we came from.\r\n\r\nJoin Aaron as he talks through the most critical security decisions you can make for you AWS environments. He will identify issues and solutions in an automation friendly fashion that aim to fit seamlessly into the development and deployment lifecycle. This session will cover the following topics:\r\n\r\nAccount provisioning and IAM\r\nCredential management\r\nVPC setup and network design\r\nAWS services that boost your security posture\r\nAuditing AWS configurations to find security holes\r\nCreating a robust CI pipeline that ensures no obvious security holes are present within your environments\r\nIn addition to these topics a heavy emphasis on both platform and server automation will be included. Please note that this session is heavily tuned to people using Amazon Web Services. If you are using another Cloud provider the ideas will still be relevant, but not all solutions will be available for your provider.","SessionType":"General Session","Tags":["Cloud/Big Data","Security"],"Category":"Security","Speakers":[{"Id":"d06d7425-c083-49ed-b44b-ae006a7d5b36","FirstName":"Aaron","LastName":"Bedra","GravatarUrl":"//www.gravatar.com/avatar/24659470071279a42020d5b87411598e"}]},{"Id":7130,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Batch and stream processing finally together with Apache Beam","Abstract":"In this session, we will first take a look at the history of massive-scale data processing at Google with MapReduce, FlumeJava, MillWheel and how they contributed to the creation of Dataflow, a new paradigm integrating batch and stream processing. Next, we will learn about the details of Dataflow and some of its differentiating elements. In 2016, Dataflow SDK further transformed into an open source project called Apache Beam. We will take a look at Apache Beam and how it enables pipelines to run against multiple backends such as Dataflow, Flink, Spark and more.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"4f62ee38-767c-42ef-958a-5e222d65f567","FirstName":"Mete","LastName":"Atamel","GravatarUrl":"//www.gravatar.com/avatar/116f111c3534b2bd96f4df36b7708054"}]},{"Id":7786,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Becoming a Servant Leader, Leading from the Trenches","Abstract":"When you're doing the work alongside those you manage, you may be seen as a servant leader. But what does that mean?  What is servant leadership? Sam Walton of Walmart, Jack Kahl of Manco (Duck Tape), and many others have blazed this trail.  For those of us who enjoy both our tech and management roles, servant leadership is something to understand how we can best serve those that we lead while in the trenches alongside them.  In this session, we will explore what makes a great servant leader and how we can stay techies while being managers as well.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"5fbd101a-6962-499d-a733-37f9cfd14c00","FirstName":"Sarah","LastName":"Dutkiewicz","GravatarUrl":"//www.gravatar.com/avatar/63ff8127b010498c1a8a729f800d38f6"}]},{"Id":6927,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Beginning Robotics Logic with the Sphero","Abstract":"Have you ever dreamed you could one day work with a group of scientists to build your own interactive robotic game? Well this is your chance! Learn how to rapid prototype and get user feedback to make necessary changes to the design and have tons of fun along the way!\r\n \r\nWant to build some interactive games and try them out as we go? Well, the next generation of developers are “makers of things.” Robotics, wearables, and interactions with hardware are at the center of it all. In this session, we will explore programming a Sphero Sprk using the Lightening Lab environment. One lucky person will be going home with their own Sphero Sprk+ Robot!\r\n \r\nAlong with building a cool game or two, experience product thinking and design, product analysis (story writing), evolutionary design and development, user testing and using feedback to guide design, robotic application programming interfaces (APIs), and interactive robotic game programming. All this while having a BLAST! SHEW!\r\n \r\nCome prepared with your creativity sparking and build a couple fun apps with us!\r\n \r\nPre-requisites:\r\nMust be a really cool person\r\nMust be able to lift 2 pounds\r\nAble to have fun while working respectfully and collaboratively with others","SessionType":"Kidz Mash","Tags":["Design (UI/UX/CSS)","Hardware","Testing","Soft Skills / Business","Other","Events"],"Category":"Hardware/IoT","Speakers":[{"Id":"dd240822-f8e8-4d7d-b51a-81c59f128a21","FirstName":"BJ","LastName":"Allmon","GravatarUrl":"//www.gravatar.com/avatar/d462bb249067c6cad0ad8e0a53d63cfa"}]},{"Id":7785,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Binary Beats","Abstract":"Digital music is a daily part of our lives no matter where we turn. But did you know all of that music we listen to is really just a stream of 1's and 0's?\r\n\r\nIn this KidzMash session, we'll look at how music was first recorded (before 1's and 0's), how it eventually got transformed into something digital that plays on your iPod, and how we can use some of the digital concepts to make our own music through rhythms - banging on buckets, pounding cups, clapping and a variety of other noisy, but simple, instruments.  Come ready to move and groove to the Binary Beat!","SessionType":"Kidz Mash","Tags":[],"Category":"Programming Principles","Speakers":[{"Id":"0adf0486-a3ad-40ba-a119-d973cb7e32d2","FirstName":"Ryan","LastName":"Booz","GravatarUrl":"//www.gravatar.com/avatar/566261be36c0b65397745e1e7b138b4e"}]},{"Id":6784,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Bluetooth Low Energy on Android: Top Tips for the Tricky Bits","Abstract":"Now that 90% of Android consumer devices and 100% of Android Things devices run software that supports Bluetooth Low Energy (BLE), it’s the perfect time for Android developers to dive into the Internet of Things and start building companion apps or custom smart devices. Unfortunately, Android’s Bluetooth stack has a well-deserved reputation for being difficult to work with. Join me for a journey through battle-tested strategies and code that will provide you with a roadmap for navigating the nasty parts. No prior experience with BLE is required; a gentle introduction is included.","SessionType":"General Session","Tags":["Mobile","Hardware","Java"],"Category":"Mobile","Speakers":[{"Id":"949878bb-1c47-406f-989c-ff79a6b98d13","FirstName":"Stuart","LastName":"Kent","GravatarUrl":"//www.gravatar.com/avatar/3a6060bc7ace07fa75791cd5dac2d46a"}]},{"Id":7164,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Brain-inspired computing: the truth, the fiction, and where we are today","Abstract":"Recent initiatives like the Human Brain Project and IBM’s release of the TrueNorth chip have brought artificial intelligence and neuromorphic (brain-inspired) computing to the forefront of the public’s eye. This presentation will delve into the challenges inherent in both mapping out and creating our own brain for both research and computing purposes. We’ll look at the newest innovations and challenges for the future of the field of neuromorphic computing in terms of software, hardware and applications, and what it all might mean for the future of computing in general.","SessionType":"General Session","Tags":["Hardware","Other"],"Category":"Architecture","Speakers":[{"Id":"d0a23b1b-a249-43da-a0c1-6b209aaf8bfd","FirstName":"Amber","LastName":"McKenzie","GravatarUrl":"//www.gravatar.com/avatar/718a25b4ce19ee3bfcd3aca8d0354319"}]},{"Id":7378,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Breaking FrontEnd Paradigms with Vue.js","Abstract":"Vue.js is more consolidated than ever. According to [JS Frameworks Benchmark](http://www.stefankrause.net/js-frameworks-benchmark5/webdriver-ts/table.html), it is one of the JavaScript frameworks with better performance. Vue.js is the future of the client-side MV\\* world, and is one of the most promising alternatives, competing with industry giants frameworks, such as React and Angular. We will review the core concepts of the framework, and demonstrate how you can scale progressively, even when you have complex requirements.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"852e3d92-1136-4649-a990-b87e7b806fd4","FirstName":"Ignacio","LastName":"Anaya","GravatarUrl":"//www.gravatar.com/avatar/6c3e7ef20801b4b967dc1643f63d6233"}]},{"Id":7466,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build a Delightful API with Serverless Technology","Abstract":"What makes an API or microservice delightful?  An intuitive interface, consistent behaviour, and a reliable, scalable platform.  This talk will cover how serverless technologies can help you to deliver all of these things for your API, ensuring that developers will want to work with your API over the competition.  I'll cover how to design, build and deploy for serverless platforms, and how to use an API gateway to turn incoming HTTP requests into events that trigger those serverless functions.  I'll share some top tips for solid API design - both from a technical HTTP standpoint and with developer experience firmly in mind.  After this session, you'll be building and iterating on first-class APIs and microservices, and developers will be clamouring to use them.\r\n","SessionType":"General Session","Tags":["Other"],"Category":"Architecture","Speakers":[{"Id":"f62ed587-5dab-4818-b0f3-398f7975961a","FirstName":"Rob","LastName":"Allen","GravatarUrl":"//www.gravatar.com/avatar/2f3857ea7ae880357bc66f7314eb5355"}]},{"Id":7740,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build a Natural Language Slack Bot for your Dev Team","Abstract":"Many project teams use Slack as a means of communication with one another. Why not also use it to communicate with your infrastructure? Invite a helper into your conversation that can perform routine tasks tirelessly, conversationally, and interactively.\r\n\r\nIn this 4 hour workshop, you will build a Slack bot that understands natural language and integrates with your DevOps pipeline. You will use the Slack Events API to receive messages, and the Slack Web API to send them. You will use LUIS to interpret language and extract intent. You will execute actions against the Visual Studio Team Services Web API in response to user requests, and subscribe to Webhooks to notify your team of important events. In the end, you will have a new member of your team who can help you with your build and release pipeline.\r\n\r\nWorkshop outline:\r\n\r\nSlack API\r\n* \tAuthorization - OAuth and API key verification\r\n* \tEvents API - respond to posts\r\n* \tWeb API - post messages\r\n* \tIdentify users and channels\r\nLUIS\r\n* \tSpecify intents and entities\r\n* \tTrain your app\r\n* \tEvaluate utterances\r\n* \tCall LUIS from your Slack bot\r\nVSTS\r\n* \tWeb API - interrogate source repository and build status\r\n* \tWebhooks - respond to checkins and build completions\r\n* \tCall services asynchronously to keep the conversation going\r\n* \tRespond to the requester when events happen\r\n","SessionType":"Pre-Compiler","Tags":[".NET"],"Category":"DevOps","Speakers":[{"Id":"1434dfae-bc8d-4238-b34c-2afb3edab4b3","FirstName":"Michael","LastName":"Perry","GravatarUrl":"//www.gravatar.com/avatar/b46b0b9cd3f4825dd59d911496fa4665"}]},{"Id":7147,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build Cross-Platform Desktop Apps with Electron","Abstract":"Many developers are turning to Electron.js to build amazing desktop applictions that run on Windows, Mac, and Linux using familiar Web technologies. In this hands-on workshop we will learn the fundamentals of building desktop applications with Electron.js. Our goal is to walk away with a solid framework for building and deploying your own applications!\r\n\r\nRequirements:\r\n\r\n* Laptop running macOS 10.8+, Windows 7+, or some modern version of Linux\r\n* [Node.js](https://nodejs.org/en/) v6 or higher\r\n* [Visual Studio Code](https://code.visualstudio.com/)","SessionType":"Pre-Compiler","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"6ae477dc-60fc-4e91-9b11-8c2bebca4885","FirstName":"David","LastName":"Neal","GravatarUrl":"//www.gravatar.com/avatar/3ab1249be442027903e1180025340b3f"}]},{"Id":6765,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build Your First Voice-Enabled Experience with Alexa","Abstract":"The Amazon Alexa team will be on-site at Codemash to help you bring your very first voice skill to life.  We will show you how to think about voice design, and what a conversational user interface looks like.\r\n\r\nYou'll leave this pre-compiler with a working Alexa skill that is ready to submit for publication, but more importantly, the knowledge you need to build the next one.  This session will be very hands-on and technical, but anyone should be able to participate.\r\n\r\nBefore you arrive, you will need to set up a couple of things:\r\n\r\n1) An account at http://developer.amazon.com\r\n2) An account at http://aws.amazon.com\r\n3) A laptop with a browser.","SessionType":"Pre-Compiler","Tags":["JavaScript"],"Category":"Hardware/IoT","Speakers":[{"Id":"cc65a825-1b8f-4883-9e80-c63498faae8e","FirstName":"Jeff","LastName":"Blankenburg","GravatarUrl":"//www.gravatar.com/avatar/b908a267eb73767fb3c9eab83a370b13"}]},{"Id":7359,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build Your Own Arduino Workshop","Abstract":"Do you live with your head in a cloud?  Do you fear small things?  Is your mastery of virtualization and IAAS to the point where you haven't seen a real computer in months?  Do you (most importantly) feel an unexplainable compulsion to open anti-static baggies handed to you by (almost) strangers and tinker with the contents therein?\r\n\r\n\r\nIf so, have we got a workshop, nay, a way of life for you!\r\n\r\n\r\nIn the Build Your Own Arduino Workshop, you and a few of your newest, closest, coolest friends will construct an Arduino-compatible microcontroller board out of a bunch of inexpensive parts.\r\n\r\n\r\nWhile constructing the board, we will discuss and tinker with each component (clock source, power regulation, etc.) to see how they work. Then we'll boot 'em up and (provided the blue smoke hasn't escaped by this point) start writing some code and talking to some devices.","SessionType":"Pre-Compiler","Tags":["Hardware","Testing"],"Category":"Hardware/IoT","Speakers":[{"Id":"acc7acdc-a631-4b2c-b191-3a4317d01602","FirstName":"Nathan","LastName":"Schlehlein","GravatarUrl":"//www.gravatar.com/avatar/cd0df8f04650549e8ece68f8d0188048"}]},{"Id":6959,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build Your Own Teenage Daughter with Alexa and Azure Functions.","Abstract":"Anyone with a 14 year old at home knows that life is awful (because we are lucky enough to be told on a regular basis.) However, sometimes you may find yourself sans-teenager either because your teenager isn't around or you have no teenager of your own (*sigh* poor you). In those teen-less times, who can you count on to remind you that life is so utterly unbearable? Who will tell you how much everything sucks? Fear not: with the proper skill, Alexa can help.    \r\n\r\nIn this session, we'll see what it takes to build an Alexa Skill called Teenage Daughter. The code is C# and the service host is Azure Functions. We'll cover Custom Slots, Intent Schema, Utterances, and Testing; we'll delve into Azure Functions and how to create multiple environments to keep our production instance separate from development instance; and we'll cover any other tips and tricks that I've learned while creating my Teenage Daughter, which can be found at https://github.com/Intranoggin/AlexaFunctions.","SessionType":"General Session","Tags":[".NET","Cloud/Big Data","Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"aff45ae8-f1f3-422d-b0b7-31098bd7e2a8","FirstName":"Ryan","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/963290314eae69aa43163cb65614eb98"}]},{"Id":7135,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build your own Voice Assistant","Abstract":"Speaking is such a natural interface that we use it to interact with people all the time without even thinking about it. Why can’t we do that with the systems we build every day?  Maybe it is because historically you needed a PhD to understand natural linguistics. But now a days Amazon, Azure, Google and IBM are making their voice recognition capabilities available as a service. Come to this session to learn how you can use these services to build your own voice assistant.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Hardware/IoT","Speakers":[{"Id":"730509c3-8979-46cb-9153-83ce38599f27","FirstName":"Jarred","LastName":"Olson","GravatarUrl":"//www.gravatar.com/avatar/5a77344f5bfaf6895739f61edb713e6c"}]},{"Id":6971,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Build Your Second Mobile App","Abstract":"You've done a \"build your first mobile app\" precompiler, or maybe some online tutorials. You've connected to an API and made something appear on a screen, even! It's time to move beyond that and dig a little deeper. In this precompiler, we'll explore two bigger topics in iOS development, one foundational and one flashy. Protocol-oriented programming is a fundamental paradigm in Swift development and powerful way to extend functionality without the complications of inheritance. ARKit, announced at WWDC 2017, provides a platform for stunning new augmented reality experiences. We'll combine the two into a fun \"The Floor Is Lava\" game that will level up your Swift skills and provide a solid foundation for exploring iOS development even further. ","SessionType":"Pre-Compiler","Tags":["Mobile"],"Category":"Mobile","Speakers":[{"Id":"4dfce7da-8421-430e-b296-6f8fd49f1f06","FirstName":"Anne","LastName":"Cahalan","GravatarUrl":"//www.gravatar.com/avatar/7ed5402a7b3283457283a5e85fd8946f"}]},{"Id":7694,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Accessible Single Page Apps","Abstract":"As JavaScript frameworks and libraries to build single page apps (SPAs) proliferate and become more ubiquitous, there are a new host of web accessibility concerns that must be addressed. This talk will compare and contrast accessibility concerns across Angular, React, and Vue.js, and propose solutions for the most common accessibility issues. Some specific issues include that asynchronous rendering of content can be difficult for screen readers to accurately interpret,  library specific components and modules may not meet accessibility best practices, and library specific focus based event handlers that can interfere with keyboard accessibility. This talk will provide practical accessibility solutions developers can easily incorporate into their daily development to ensure that their modern web applications are accessible by all audiences.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript","Other"],"Category":"Web/Front-End","Speakers":[{"Id":"89bfa0cf-d4ae-4226-9881-4cc89b42f707","FirstName":"Lisa","LastName":"Caniglia","GravatarUrl":"//www.gravatar.com/avatar/3f450fb998ae3a4898b74ab7ad255f13"}]},{"Id":6796,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building an Artificial Pancreas","Abstract":"Type 1 Diabetes sucks. People with this autoimmune disease have to constantly monitor & control their food, blood glucose, insulin, physical activity and other factors. Even with advancements like insulin pumps and continuous glucose monitoring, the process is still manual and error prone. What if someone with T1D could delegate the constant cycle of monitoring, predicting and controlling to a computer in their pocket?\r\n\r\nIn this session, you'll learn about an open source project called the Open Artificial Pancreas System, or OpenAPS, and how it closes the loop on a cycle that the rest of us take for granted. Then we'll explore  how Elixir and the Nerves project are being used to build a next generation artificial pancreas system.\r\n\r\nWe'll touch briefly on the topics of hardware prototyping, reverse engineering and decoding binary data and how it all came together in one project. Before the session is over, you'll see an embedded Elixir application talk to a commercial insulin pump using off the shelf hardware.","SessionType":"General Session","Tags":["Hardware","Functional Programming"],"Category":"Hardware/IoT","Speakers":[{"Id":"9ca9716b-6c75-42d5-ae4e-17a712207118","FirstName":"Timothy","LastName":"Mecklem","GravatarUrl":"//www.gravatar.com/avatar/773287b931d9c35c4bb8c48003ed732d"}]},{"Id":7596,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Delivery Pipelines with Jenkins' Pipeline as Code","Abstract":"*Jenkins*, originally known as *Hudson*, is the \"leading open source automation server\".  For many organizations, it plays a key role in enabling continuous integration, continuous deployment and continuous testing.  New in 2016, in support of common DevOps trends, *Jenkins* version 2 introduced a robust, extensible approach to managing complex automation pipelines as code.  Offering a Domain Specific Language based on Groovy, a suite of plugins providing powerful pipeline abstractions and optimized support for common development platforms, *Jenkins*' Pipeline as Code provides a solid foundation for a team's continuous delivery practices.  Join Kevin Fox, ICC's Enterprise Architecture Practice Lead, as he provides a practical overview of this important new capability for a popular open source platform. \r\n\r\nThis session will:\r\n\r\n* Highlight the value of delivery pipelines for Agile development teams\r\n* Explain the role of automation code in enabling delivery pipelines\r\n* Introduce *Jenkins*' approach to Pipeline as Code\r\n* Demonstrate practical aspects of pipeline code reuse\r\n* Present effective options for managing pipelines for large development projects\r\n","SessionType":"General Session","Tags":["Other"],"Category":"DevOps","Speakers":[{"Id":"c7659646-af5b-4cf6-9cb9-f340e699abbb","FirstName":"Kevin","LastName":"Fox","GravatarUrl":"//www.gravatar.com/avatar/0064e50a37cc724107ca4ad36e2d6aff"}]},{"Id":7506,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Holographic & VR Experiences with the Mixed Reality Toolkit for Unity","Abstract":"The Mixed Reality Toolkit is an open source project led by Microsoft and the HoloLens community aimed at simplifying the development of Mixed Reality experiences. Mixed reality blends 3D holographic content into your physical world, giving your holograms real-world context and scale, allowing you to interact with both digital content and the world around you. The Mixed Reality Toolkit consists of a collection of scripts and components intended to accelerate the development of holographic applications targeting Windows Mixed Reality. This session is a technical dive into the Mixed Reality Toolkit for Unity where we’ll explore advanced holographic features such as gaze & gesture input, voice commands, spatial mapping, and more. All demos will be shown on the Microsoft HoloLens and the new immersive Mixed Reality headets. Come learn how this open source toolkit – combined with Unity – can get you started quickly on your development journey into a world of holograms.","SessionType":"General Session","Tags":["Mobile",".NET","Other"],"Category":"Mobile","Speakers":[{"Id":"a8e2fa9d-e261-464b-b229-b29b432b3fab","FirstName":"Nick","LastName":"Landry","GravatarUrl":"//www.gravatar.com/avatar/9b19e26c8d504d64a7b28d1bf5c5eb0c"}]},{"Id":7705,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Java Apps with Intelligence","Abstract":"With the explosion of the cloud comes the explosion of compute power to solve complex problems. We have been playing with artificial intelligence for many years. Cloud services are now powerful enough that you can begin to build AI into your applications with just few lines of code. In this talk, we will work together to build an Android app that will use computer vision to intelligently respond to live video. We’ll explore creative new ways to make your apps come alive with incredible new intelligence capabilities.","SessionType":"General Session","Tags":["Mobile","Java"],"Category":"Mobile","Speakers":[{"Id":"b623a181-ba91-460e-b35e-075cd3f3cdc9","FirstName":"Brian","LastName":"Sherwin","GravatarUrl":"//www.gravatar.com/avatar/5f01633eaa084f7985ff99e9ba8c8ce7"}]},{"Id":6716,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Lightsabers Workshop","Abstract":"A long time ago in a galaxy far far away, there was a tradition of Younglings constructing their first lightsaber on the way to becoming a Padawan and ultimately a Jedi Knight. This tradition will continue at the Kalahari as the KidzMash Younglings learn about basic electronics and build their own lightsabers in this fun-filled workshop surrounded by the Force.","SessionType":"Kidz Mash","Tags":["Hardware","Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"23377367-10d6-499e-ab99-9ee4edc32beb","FirstName":"Christopher","LastName":"Judd","GravatarUrl":"//www.gravatar.com/avatar/46237da22a99f4aab52e802ea2c0728e"}]},{"Id":6963,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Potato Batteries","Abstract":"Did you know that you can make electricity using potatoes?\r\nIn this safe and fun hands-on session you will build an electrical circuit using potatoes to power an LCD clock.  In the process we'll discuss how chemical reactions can generate electricity.  **...and YES! you get to keep your circuit, potatoes, clock and all!**\r\nAfter you've completed your circuit, you will have the opportunity to use a meter to measure the voltage and current in your circuit. At the end there will also be a demonstration of how power is generated by solar panels.\r\n**All supplies will be provided.**  Just come ready to have fun.\r\nAll ages are welcome, although kids under 7 may need help from a parent or sibling.\r\n","SessionType":"Kidz Mash","Tags":["Hardware"],"Category":"Hardware/IoT","Speakers":[{"Id":"0682efff-13b1-49ca-819b-efb840c6501a","FirstName":"Steven","LastName":"Swenson","GravatarUrl":"//www.gravatar.com/avatar/c289a924042d14927aad2498823e58a9"}]},{"Id":7021,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Building Serverless Applications in AWS Workshop","Abstract":"Tired of trying to manage and maintain servers? Never have a large enough operations team? Don’t have a budget for running lots of server? Don’t want to pay for servers siting idle? Afraid you might become so popular that you won’t be able to scale fast enough? Don’t worry, it is possible to alleviate these issues by moving to a serverless architecture that utilizes microservices hosted in the cloud. This type of architecture can support all different types of clients including web, mobile and IoT. \r\n\r\nDuring this hands on workshop, you will build a serverless application utilizing AWS services such as Lambda, API Gateway, S3 and a datastore.","SessionType":"Pre-Compiler","Tags":["JavaScript","Cloud/Big Data"],"Category":"Architecture","Speakers":[{"Id":"730509c3-8979-46cb-9153-83ce38599f27","FirstName":"Jarred","LastName":"Olson","GravatarUrl":"//www.gravatar.com/avatar/5a77344f5bfaf6895739f61edb713e6c"},{"Id":"23377367-10d6-499e-ab99-9ee4edc32beb","FirstName":"Christopher","LastName":"Judd","GravatarUrl":"//www.gravatar.com/avatar/46237da22a99f4aab52e802ea2c0728e"}]},{"Id":7131,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Caring for New Users: Adoption, Onboarding, Permissions, Empty States, Feedback Herding, Friction, Hooks and More","Abstract":"What does it take to craft a great experience for new users of our app? Once we're ready to move past MVP-stage, having learned what we needed to learn, there's still more to think about than merely what capability to give our earliest adopters and how that translates into functionality for the team to build and scale.\r\n\r\nEnter the concept of \"New UX\". This session explores the idea of transforming new users into power users. It'd be nice if we could all hone our intuition skills and create absolutely 100% intuitive apps 100% of the time, but that's more fantasy than reality. So we must leverage techniques that help us make our new users feel awesome!\r\n\r\nYou'll learn: \r\n* How to overcome the struggle to drive adoption\r\n* Considerations for short attention spans, limited scratch memory or temporary disabilities, and avoiding avoiding committing funnel homicide from cognitive burnout.\r\n* The many types of onboarding, and which method is optimal for our users' in learning how to use our app.\r\n* Permission priming, permission pouncing and other concerns for user privacy when our apps need access beyond various device limitations.\r\n* What empty states are, and how you need to think about them in the context of your product and your users' goals in order to make them useful as well as delightful.\r\n* Sources of friction in the experience and in growing our user base.\r\n* How we can keep new users coming back, through consideration of habit formation tactics","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Mobile"],"Category":"Mobile","Speakers":[{"Id":"a52e82cc-7acc-4089-8b18-3c3ef3a0b86f","FirstName":"Scott","LastName":"Showalter","GravatarUrl":"//www.gravatar.com/avatar/3f7f47085383083c47a5c89908ce8697"}]},{"Id":6961,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Chatbot Stories: Real projects from the front lines of innovation","Abstract":"Conversation as a Platform (CaaP) has gained extreme traction within the startup and enterprise ecosystem as chatbots are being used as a mechanism for companies to step into the digital world. Over the past year, our team has engaged in hundreds of projects with the single goal of helping pave the path of exploring innovative technologies. In this session we will deep dive into 3 case studies revolving around CaaP to talk about best practices, learnings and pitfalls to avoid. Real world code and architecture will be explored ranging from infrastructure integration, user experience and conversation flows. We will also check out the top contenders for Natural Language Processing (NLP) tools, how they stack up and see how a tailored language models can provide your application with valuable feedback. You will leave this session confident in building your own chatbot with code, artifacts and stories to draw from.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript",".NET"],"Category":"Design (UI/UX)","Speakers":[{"Id":"2f21c0fe-dfd7-4107-a87e-6c30cf489057","FirstName":"Kevin","LastName":"Leung","GravatarUrl":"//www.gravatar.com/avatar/88500974fe4360b6688c4ac37be83884"}]},{"Id":7065,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Choice is Overrated - Designing Products That Know What You Want Before You Do","Abstract":"According to CEO Aaron Shapiro, the next big breakthrough in design and technology will be the creation of products, services, and experiences that eliminate the needless choices from our lives and make ones on our behalf, freeing us up for the ones we really care about: “Anticipatory design”. Rather than traditional UI/UX, where the tendency is to provide options in a participatory manner to determine a result, here you remove all choices from the user, and use predictive modeling to give an outcome to liberate them from so-called “decision fatigue,”\r\n\r\n“Flow not friction,” “convenience not choice,” and “efficiency not freedom” are the mantras of anticipatory design.\r\n\r\nIn this talk, we’ll explore some implementations of anticipatory design, discuss areas where it is done well, and issues with the overall movement.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Cloud/Big Data","Other"],"Category":"Design (UI/UX)","Speakers":[{"Id":"a313d88c-b561-4686-b5cf-d43d39ac09cc","FirstName":"Heather","LastName":"Wilde","GravatarUrl":"//www.gravatar.com/avatar/7183fa8195c454bef33f3ffbf2c44c40"}]},{"Id":7631,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Chrome Developer Tools: Raiding the Armory","Abstract":"The Chrome Developer Tools are absolutely littered with features. Some are incredibly useful. Some just plain surprising. For example, it is possible to turn the browser into an editor, fuzzy search source filenames, display data in the console in tabular format and much, much more. \r\n\r\nThis session will cover how to get the most debugging, profiling, the console, building developer tool extensions and more. There will also be a roundup of important features introduced throught the year.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"541ff243-3a5e-468e-9b52-800e647f342f","FirstName":"Greg","LastName":"Malcolm","GravatarUrl":"//www.gravatar.com/avatar/4dcb5d7ea2f76b509131926dd2cebbdb"}]},{"Id":7097,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Clean Architecture: Patterns, Practices, and Principles","Abstract":"As software grows more complex, we need to manage this complexity by using various architectural patterns, practices, and principles. In this session, we will learn how software experts keep their architecture clean using a new approach to software architecture. We’ll learn about domain-centric architectures, application layers, CQRS (Command-Query Responsibility Separation), event sourcing, microservices, and more. You can expect to hear practical advice and see real-world examples from over 17 years of architectural experience.","SessionType":"General Session","Tags":[".NET","Testing","Other"],"Category":"Architecture","Speakers":[{"Id":"963d2e51-6196-41bd-a43b-3a026bd8062c","FirstName":"Matthew ","LastName":"Renze","GravatarUrl":"//www.gravatar.com/avatar/e16cd70c4199fb10992a1e26d84249f7"}]},{"Id":7312,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Cloudy with a (high) chance of uptime","Abstract":"Whether you are building a cloud or on-premise enterprise application, being able to recognize when you need to use a particular integration pattern is crucial to architecting a resilient and fault tolerant system. This talk will enable you to identify and describe the patterns of configuration management, graceful failover and service discovery. You will learn how and when to apply these patterns to ensure resiliency for your applications. Finally we will take an in-depth look at how Spring Cloud project’s open source Spring Cloud Config, Hystrix and Spring Cloud Consul enable you to develop and support modern complex applications while applying these enterprise integration patterns.","SessionType":"General Session","Tags":["Java"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"86df42cb-3f25-4235-a0e7-43aa4815d0c8","FirstName":"John","LastName":"Pendexter","GravatarUrl":"//www.gravatar.com/avatar/8c231a92b1adb958d5cb941ca2348de4"}]},{"Id":7161,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"CodeMash Capture the Flag Tournament","Abstract":"There is more to being a hacker than hooded sweatshirts and pasty skin. Hackers pride themselves on being problem solvers, thinking logically through not only what a web applications should do, but everything possible for it to do. We have all sat through the boring Top10 lectures and read the secure coding standards. Now let’s learn what we are protecting our self from. Capture the Flag (CTF) tournaments are a good way of honing your security skills, or discovering skills you never knew you had. The CodeMash CTF kicks off in mid-December and runs through the final day of CodeMash. This precompiler session will be ran in an open house format, to answer any questions you may have, and provide an area for you to sit down with others participating and network your skills to help solve the challenges.  Attend for 4 minutes or 4 hours. Stop by before or after attending a different session, or during a break at a different class. We will give you the rundown and you can stay and play for as long as you like! More information can be found at https://codemashctf.com/","SessionType":"Pre-Compiler","Tags":["Testing","Security","Events"],"Category":"Security","Speakers":[{"Id":"6363e6df-27cf-4794-a414-0fa1cd13d34a","FirstName":"Mike","LastName":"Woolard","GravatarUrl":"//www.gravatar.com/avatar/e085724e7dd4073bd848c4809051e222"}]},{"Id":6858,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Coding Naked – Unit testing those hard to reach places","Abstract":"Code coverage with quality unit tests are your first line of defense to reducing technical debt, increasing code quality and accelerating your ability to change and adapt code (without breaking it) while continuing to add new features. Most TDD sessions focus on the easy to test areas of your code base that are almost never what you experience getting back to your desk. Come learn why TDD is not a fancy practice for the coding elite, but an understandable, obtainable and practical approach to delivering value for every developer, and how, when done properly, will increase communication and design between the business stake holders and developers.\r\nWe will focus on practical steps to moving towards & embracing TDD. We’ll overview the normal roadblocks that people typically run in to, and practical coding strategies to overcome those road blocks on your way to embracing a Test Driven Development lifestyle - make coding without tests as uncomfortable as coding naked! - From the author of Automated Unit Tests chapter in the Wrox Book “Real World .NET, C# and Silverlight - Indispensable Experience from 15 MVPs, we will learn: \r\n* Distinguish between the 4 major elements of automated unit tests. Code, Tests, Testing Framework and Test Runners and how they interact with each other to round out your engineering practices.\r\n* Discover how Mocking Frameworks and DI make your tests easier to read and write in everyday life.\r\n* Dig in to better ways to write and organize your tests so that they communicate intent, document your code for you and bridge the gap between development and business needs.\r\n* We’ll take a more specific look at those “hard to reach” places like the edges of your code, extension methods and other interesting scenarios\r\n \r\n\r\n* Note everyone will leave their cloths on - it’s not that kind of talk!","SessionType":"General Session","Tags":[".NET","Testing"],"Category":"Software Quality","Speakers":[{"Id":"65993fe1-3960-4d31-acbb-0fbd6e635cc6","FirstName":"Caleb","LastName":"Jenkins","GravatarUrl":"//www.gravatar.com/avatar/185b331beb8118f6de5a2e9d53017907"}]},{"Id":7237,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Command and Conquer the Front End with Elm","Abstract":"Tired of undefined exceptions in JavaScript?  Heard that JavaScript can be a functional language, but have trouble breaking those imperative habits?  Wanted to learn functional programming, but don't understand the fancy jargon?  Learn to write reliable front end code on the first try with Elm by using the Elm Architecture to control the undefined, unknown, and bad patterns.  Intended for those learning functional programming.  By the end of the session you will have a good understanding of the Elm Architecture and how to integrate Elm into your existing codebase.","SessionType":"General Session","Tags":["JavaScript","Functional Programming"],"Category":"Web/Front-End","Speakers":[{"Id":"9c335b12-e6d5-43f8-9174-9611bff1c1dd","FirstName":"Tyler","LastName":"Jennings","GravatarUrl":"//www.gravatar.com/avatar/a620bb436c10653d71b41502de297a67"}]},{"Id":6748,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Configure, Control, and Manage IoT with Mobile","Abstract":"The internet of things allows for communication with devices through various means (without touch, mouse, keyboard, or a screen). Mobile devices give users a dynamic interactive experience with these devices by communicating over several different wireless protocols or through the cloud. In this presentation, we will see how to use Xamarin to create a cross platform mobile application to control devices of all shapes and sizes. After this presentation, attendees should be able to create a basic mobile application and have that application communicate with peripherals over Bluetooth and the cloud.\r\n","SessionType":"General Session","Tags":["Mobile","Hardware",".NET","Cloud/Big Data"],"Category":"Mobile","Speakers":[{"Id":"87187662-0165-4166-9f43-f8921aceb1dc","FirstName":"Jared","LastName":"Rhodes","GravatarUrl":"//www.gravatar.com/avatar/da922e0e6e9e75b408896c41cd3eca30"}]},{"Id":7736,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Creating Meaningful Motion","Abstract":"Animation, when done thoughtfully and with purpose, can provide meaningful feedback to users, reinforce your brand, and add visual interest to your website.  There are many options for creating motion for your website, but more important than how to create animations, is defining why and when to add it. \r\n\r\nThis session will give you techniques to catalog existing animations, create and document a cohesive motion language, and we'll discuss  accessibility implications.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)"],"Category":"Design (UI/UX)","Speakers":[{"Id":"22947de0-c4bb-405d-9db3-3feff151fbfa","FirstName":"Brian","LastName":"Greene","GravatarUrl":"//www.gravatar.com/avatar/d0d6cc495dba62f1302d7a88561d14d8"}]},{"Id":7054,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Crimson and Clover, Over and Over (and Over). Applying a Framework to Continuous Security","Abstract":"Tommy James wrote “Crimson and Clover” while attempting to change the band’s sound and shift their focus from releasing singles to releasing entire albums. Continuous Security (or SecDevOps, AppSecDevOps, DevSecOps, Rugged Devops or whatever else you want to call it) is in need of a “Crimson and Clover.” \r\n\r\nMost organizations are still overwhelmingly focused on the security of single applications. Those moving to continuous delivery models either ignore security completely or discover that security becomes a bottleneck in their quest to deliver an album…I mean code…rapidly. \r\n\r\nIn this session, we will share how you can create our own “Crimson and Clover” in the form of a Security in DevOps Framework. You can use a framework to allow organizations to establish a baseline of their environment and use it to make informed decisions when trying to fill the security gaps in their continuous delivery pipeline. The a security in DevOps framework offers a benchmark for continuous security improvements while also demonstrating not only that security is important, but that it can be achieved while hitting your DevOps targets. That’s a win-win for everyone involved. \r\nIn this talk, we’ll discuss:\r\n•\tA structured approach to solving the complicated problem of integrating continuous delivery and application security.\r\n•\tHow you can apply a framework to your continuous security model and inform your strategic decisions.\r\n•\tHow to collect evidence and metrics to provide application security guidance at speed and scale.\r\n","SessionType":"General Session","Tags":["Testing","Security","Other"],"Category":"DevOps","Speakers":[{"Id":"c3eb1354-7f42-40a9-af85-1b90bb2ff529","FirstName":"Josh","LastName":"Wallace","GravatarUrl":"//www.gravatar.com/avatar/887eab5ea8e2a024354d529f15b015c4"}]},{"Id":7318,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Crypto for Developers: Making Sane Choices","Abstract":"How do you secure the data in your database? How do you store passwords? From AES to Salsa20, RSA to Curve25519 - this session provides an overview of what you need to know to secure your data. Focusing on practical uses cases over math and complexity, this will help you make the right choices and implement a system that is truly secure. Data security has never been more important, and for many cryptography is a black magic, a world of complex math and obscure terminology; this session aims to demystify that world and bring cryptography into the light. You’ll be able to understand what you need to do, to keep the hackers out.","SessionType":"General Session","Tags":["Security"],"Category":"Security","Speakers":[{"Id":"901fe680-7e15-4e89-b672-3ae5af1f32b0","FirstName":"Adam","LastName":"Caudill","GravatarUrl":"//www.gravatar.com/avatar/49e14cf9f67c48aad082dec4f106f19a"}]},{"Id":7041,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Cryptography (Secrets) For -.- .. -.. ... (Kids)","Abstract":"This session is all about secrets! How to make them and how to break them. You'll learn about ways you can hide secret messages, and then get to practice doing it. \r\n\r\nThis session will briefly present what cryptography is and how it's been used throughout history. After that, you'll learn about a few different kid-friendly cipher techniques. \r\n\r\nThen the real fun starts. There will be several stations setup to practice building and breaking ciphers using secret messages. Some will be pretty easy, and some will be very challenging. A couple stations are mostly pencil and paper exercises and a couple are a bit more hands-on.\r\n\r\nIn this session, you'll learn about: \r\n* pigpen cipher\r\n* invisible ink\r\n* cipher disks\r\n* vigenere cipher\r\n* morse code\r\n* navajo code talkers\r\n* key books\r\n* code sticks (scytale)\r\n* ... and more!","SessionType":"Kidz Mash","Tags":["Security"],"Category":"Security","Speakers":[{"Id":"eb63761e-810d-4549-86bb-2aacf320c936","FirstName":"John","LastName":"Melton","GravatarUrl":"//www.gravatar.com/avatar/1c9918a7a9b1394ec9f25a3d30b5b9df"}]},{"Id":7552,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Custom Middleware & Microservices with ASP.NET Core 2.0","Abstract":"At the core of ASP.NET Core is Microsoft’s implementation of the OWIN standard, giving developers full control over the ASP.NET pipeline. In this session I will explain what OWIN is and how it can empower you to quickly and easily reconfigure an entire web application. Now in full control, you can do everything from injecting custom code (middleware) into any stage of the pipeline to running lightweight applications and microservices without MVC.","SessionType":"General Session","Tags":[".NET"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"1595a7d3-a307-450e-9738-619b6ea7bdf4","FirstName":"Ondrej","LastName":"Balas","GravatarUrl":"//www.gravatar.com/avatar/3b60e6c26184cec14bbbdc2c7ea2f1c8"}]},{"Id":7594,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Custom NGINX Module Development","Abstract":"As systems grow they often benefit from layers of processing capability that help keep the overall system latency under control. There is a staggering amount of work that can and should be done at the edge that is often done inside of applications. Things like blocking known bad actors, first level authentication/session lookups, data enrichment, throttling, preliminary user validation, and a host of other problems can be safely pushed to the edge and provide a very useful boost to overall system performance and stability.\r\n\r\nJoin Aaron as he demonstrates how to create custom NGINX modules to solve these issues. Aaron will begin by demonstrating the NGINX lua programming model and then dig into traditional module development in C. He will leave you with working custom module code that you can use and adapt, as well as useful skeletons, local test environment tricks, and reusable test harnesses that ensure you can get moving on your work quickly and efficiently post-compiler. Attendees will walk away with the following knowledge.\r\n\r\n* How to build and deploy a custom NGINX module in Lua and C\r\n* How to test custom NGINX modules\r\n* A deep understanding of the NGINX request lifecycle\r\n* How to create self contained local development environments\r\n* How to tap into advanced NGINX functionality","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"d06d7425-c083-49ed-b44b-ae006a7d5b36","FirstName":"Aaron","LastName":"Bedra","GravatarUrl":"//www.gravatar.com/avatar/24659470071279a42020d5b87411598e"}]},{"Id":7195,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Data Driven Devops","Abstract":"Devops is usually viewed from a traditional perspective of a collaboration of Dev, Ops and QA, driven by the change in Culture, People and Process. But how do you know where you stand and were to move? As in almost any field, data and metrics give you the gauges and instruments. In this talk we’ll talk about the key measurements for the DevOps transformation process and provide you with 3 metrics you can start measuring tomorrow.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"DevOps","Speakers":[{"Id":"c459e92a-1aa6-49ea-b120-fb72e1a44a83","FirstName":"Baruch","LastName":"Sadogursky","GravatarUrl":"//www.gravatar.com/avatar/fea6ad3204a6a58bbe40a132f5968925"}]},{"Id":6771,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Decoupling the Frontend through Modular CSS","Abstract":"CSS is hard. It’s a simple language, but getting it right and avoiding specificity hell can be a challenge if you don’t have the right framework to back you up.  Especially in large scaling projects, you might start adding ID selectors here and !important properties there and the next thing you know you’ve backed yourself into a corner where even the smallest of UI changes will take hours to work out. Ew.\r\n\r\nOr how about this? Ever jump into a project and find that even the slightest markup change results in broken JavaScript AND sometimes even broken backend feature tests?! WTF. Ew.\r\n\r\nThis talk will look at how taking a modular, object-oriented approach to CSS can turn frontend woes into frontend wins. We’ll examine modern CSS approaches like OOCSS, SMACSS, and BEM and demonstrate how they will help to not only decouple your CSS styles and reduce specificity conflicts, but how they will also help to decouple your CSS and HTML from your JavaScript and feature specs.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)"],"Category":"Web/Front-End","Speakers":[{"Id":"af664e16-f793-41a2-b4b0-faee1f1b7243","FirstName":"Julie","LastName":"Cameron","GravatarUrl":"//www.gravatar.com/avatar/f49c5780805d9e50bdc348069a7db59d"}]},{"Id":6995,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Demystifying ethereum to build your own decentralized (D-app) app using blockchain ","Abstract":"### Context\r\n**Bitcoin** is the new buzz around town and blockchain is the technology behind this hugely popular crypto currency form. This hands-on workshop helps participants understand the mechanics of blockchain and help them build their first decentralized application using ethereum, an open source platform that leverages the power of smart contracts to build scalable blockchain-enabled applications.\r\n\r\n\r\nThe session will start with an overview of **blockchain** technology, move on to what a distributed ledger is, then introduce a real life example of bitcoin - its evolution, application and future. \r\n\r\nOnce participants realize the extent and use of blockchains,  the concept of decentralized apps would be introduced along with the various trust models that make it work.  After the context is set, the facilitator would introduce **ethereum** and dive into the hands-on [workshop](https://goo.gl/5GgEg3). \r\n\r\n### Workshop flow\r\n\r\n* Setup development environment - Install testrpc, web3js and start test blockchain\r\n* Smart contracts: Use solidity (an objected oriented programming language) to write out a simple contract that increments votes and returns the count of votes for each band\r\n* Setup a simple website to invoke the contract methods\r\n* Play with the application and see blockchain in live\r\n\r\nThe facilitator will consciously not be using any D-app frameworks so that participants appreciate the level of heavy lifting it does for them later on when they use the framework. \r\nI will start off with a few questions on the famous aspects of bitcoin like its current value, how many people use it, etc.\r\n\r\n### Who is the talk for?\r\nThe talk has both a technology aspect and a socio-economic aspect to it and the facilitator folk from both these realms.\r\n* Full stack web developers (amateurs + professionals)\r\n* Bitcoin enthusiasts and investors\r\n* The curious folk who want to know what all the hype about \"bitcoin\" is..\r\n\r\n### Key takeaways\r\nAt the end of this workshop participants will,\r\n* Have a deeper understanding of blockchain technology and its encryption techniques and workflow\r\n* Have their own blockchain-enabled application\r\n* Learn to create simple contracts using solidity \r\n* See and understand the fully functional demo of [Korkscrew](https://dapps.ethercasts.com/dapp/korkscrew)\r\n* Be able to educate others about blockchain and its use-cases\r\n \r\nThe workshop is an ignitor for participants to explore this field, the expectation is that they use the learning to build their own fully functional [decentralized applications](https://dapps.ethercasts.com/dapp/korkscrew) in the future.\r\n","SessionType":"Pre-Compiler","Tags":["Functional Programming","Other"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"8bb503fc-180d-48e4-90fe-236f3108ec4c","FirstName":"Abhiram","LastName":"Ravikumar","GravatarUrl":"//www.gravatar.com/avatar/ef5ac1a80df2f5a00f8bfa8363674385"}]},{"Id":6956,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Design and Dev Needs for VR and AR/MR Applications","Abstract":"Over the past few years many traditional developers have been looking for ways to dip their toes into the world of virtual, augmented, and mixed reality. However, there are a lot of important questions in creating this type of application. Developers want to know: how to get the right graphical fidelity for immersion, how to keep the user’s attention, and, critically, how to stop the user from getting so dizzy they lose their lunch all over your nice headset? In this talk, Amanda Lange from Microsoft will use knowledge of the HoloLens and Oculus Rift to dive into some of these questions. This talk will focus on the Unity 3D Engine but also deliver practical design and dev tips that will help in these types of applications regardless of development platform of choice. We’ll discuss the difference between VR, AR, and MR. No prior experience will be required in these fields so if you have ever wondered how to get started in moving your applications into VR this is the talk for you.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)",".NET","Other"],"Category":"Design (UI/UX)","Speakers":[{"Id":"81ad4be3-a81b-4c88-8f3d-5d18e653fe71","FirstName":"Amanda","LastName":"Lange","GravatarUrl":"//www.gravatar.com/avatar/691b2b33b52d7dd4676f4c7e0ffc7bf1"}]},{"Id":7526,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Designers and Developers Working Together - Mass Hysteria! (And Accessible Websites!)","Abstract":"It's hard to get accessibility right when only one person is working on it. It takes a combination of thoughtful design and good, robust code to make any website or app truly accessible. Leaving accessibility to the designer doesn't guarantee good code, and leaving it to the developer often means working harder to fix inaccessible designs on the fly. But working together, even when it's towards a common goal, is often hard to manage. This talk will go over tips and tricks to help designers and developers break down responsibilities, communicate decisions, and make good, accessible products.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript","Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"4cebfa84-34eb-4e69-9de8-c50e6031133b","FirstName":"Caitlin","LastName":"Geier","GravatarUrl":"//www.gravatar.com/avatar/755363d68c405b6ca2896d7747bd45c9"}]},{"Id":7250,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Designing Cross Platform Applications on .NET Core","Abstract":"If you have been developing .NET applications within the past 15 years, you have traditionally been supporting only Windows. Because, of course, the .NET Framework was designed to only run on Windows.\r\n\r\nIf you were adventurous, you could attempt to run your application on Linux or Mac using the Mono compiler. However, some inconsistencies in the implementation of common libraries meant you had to target one environment or another -- never both.\r\n\r\nWith the release of .NET Core, the prophecy of being able to build true cross-platform applications using .NET is coming true! However, it isn't as easy as File, New. Design decisions you make can impact your ability to easy work across platforms. In this presentation, attendees will learn how to create cross platform .NET Core applications and how to avoid the pitfalls that will land them back into Windows-only mode.","SessionType":"General Session","Tags":[".NET"],"Category":"Architecture","Speakers":[{"Id":"f1da931d-6b39-40a0-8b7e-7e355a89d223","FirstName":"Kevin","LastName":"Griffin","GravatarUrl":"//www.gravatar.com/avatar/11ce7889cfbdc9af46389f2c7e3ff015"}]},{"Id":7086,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Dev Thumbs, QA Thumbs and the End of \"Ready for Testing\"","Abstract":"Handoffs create waste; heavy handoffs create heavy waste. The way developers and testers collaborate can make the difference between a team that works as a cohesive unit, and a team that works against itself. As a developer, do you find yourself trying to understand bug reports about code you committed weeks ago? As a tester, do you worry that submitting a bug creates unplanned work, threatening the project's timeline? Over time, heavy handoffs can create a gradual accumulation of project risk, an ever-growing backlog of bugs, and, in the worst cases, an adversarial relationship between developers and testers.\r\n\r\nIn this experience report, software tester Clint Hoagland will discuss how TechSmith's Camtasia team moved off a heavy process where dev tasks languished in a \"Ready for Testing\" column for days or even weeks before being tested, and moved instead to a process using exploratory testing artifacts inside GitHub Pull Requests. This process revitalization enabled developers and testers to work comfortably together: reducing risk, minimizing rework, and keeping quality high as a sustainable practice. Clint will discuss where the team started, how it's working now, as well as specific techniques and recommendations the team found along the way.","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"f39c4805-0a5a-42b8-955e-835a875acee6","FirstName":"Clint","LastName":"Hoagland","GravatarUrl":"//www.gravatar.com/avatar/46f7125ba39d4930c764e6ba1bfe7900"}]},{"Id":7113,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Devops Zen: Injecting Automated Tests into Infrastructure","Abstract":"Devops zen is to make infrastructure predicable.  At Kroger, we use Nginx as a reverse proxy to route traffic with a configuration that is thousands of lines long with pull requests from dozens of teams. Even with this scale, we are still able to complete on-demand deployments to multiple environments that serve dozens of domains and route to over 50 applications clusters with zero downtime.  We show an open source framework, SnowGlobe, which allows us to simulate and test every possible traffic routing situation before we deploy. We use a full CI/CD pipeline with 7,000+ tests run for every commit. If boring is zen, then our meditation is automated infrastructure testing.","SessionType":"General Session","Tags":["JavaScript","Testing","Java"],"Category":"DevOps","Speakers":[{"Id":"36e05280-a3a9-4435-82f6-50afbed4a388","FirstName":"Stephen","LastName":"Shary","GravatarUrl":"//www.gravatar.com/avatar/3d322357152119a5b27e61db7dd636c0"}]},{"Id":7567,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Devour the Cloud with Locust Swarms - Hands on Load Testing","Abstract":"Your website works great with a handful of users.  What happens when there are 10k or 100k concurrent users?  Where are the performance bottlenecks?  How do you scale it?  Before you can do that, you have to be able to consistently apply a simulated user “load” to the site, and measure the performance.  In this session you will start with a functional Python Django web app running in AWS along with some vaguely defined load targets.  From there we'll walk through establishing a user interaction model and implementing it in locust.io, a Python-based distributed load testing tool. That user model will be used to load the web app under test, establish baselines and pick some metrics and interactions to target. We'll then experiment with a few common scaling techniques to demonstrate quantitative improvements.  You’ll gain practical, hands-on experience with load testing concepts and methods.\r\n\r\nLanguages: Python","SessionType":"Pre-Compiler","Tags":["Testing"],"Category":"Architecture","Speakers":[{"Id":"deebaaf7-41b1-4b85-a9b8-53f5dac3a628","FirstName":"Steve","LastName":"Jackson","GravatarUrl":"//www.gravatar.com/avatar/1cfdb8937f834fde5b2cc9b192d093d4"},{"Id":"673c0a52-056b-4d35-babb-4804cad5c562","FirstName":"Nick","LastName":"Barendt","GravatarUrl":"//www.gravatar.com/avatar/b9e87ff5eafaf8e947271b02283043d2"}]},{"Id":7686,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Digging into DevOps with Terraform","Abstract":"Terraform, by Hashicorp, is one of a few tools core to the DevOps practice at Stripe. Terraform provides a powerful declarative programming language and runtime model tailored specifically toward the deployment and management of cloud resources. With Terraform, developers are able to quickly add or modify servers in the network, add new load balancers and DNS records, and, because it’s all in code, they could even rebuild the whole network from scratch on a moments notice.\r\n\r\nThis talk introduces several patterns for working with Terraform. You'll leave this talk prepared to provision servers with configuration management systems like Ansible or Chef, to modularize your infrastructure deploys, to maximize uptime through rolling deploys, and to effectively use Terraform in a team setting. This talk assumes some basic knowledge of cloud infrastructure.","SessionType":"General Session","Tags":[],"Category":"DevOps","Speakers":[{"Id":"6a741768-6401-41f1-b2f7-71a22d36d054","FirstName":"Dusty","LastName":"Burwell","GravatarUrl":"//www.gravatar.com/avatar/6343ef938226f72218388cb8f0eec754"}]},{"Id":7352,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Discovering the *POP* in Popcorn","Abstract":"Most kids (and grownups) love popcorn. But where does this magical treat come from, and how does such a tiny, hard kernel of corn turn into the fluffy white snack that's all too perfect for munching? Come explore that oh-so-mysterious pop! Learn about heat, energy, pressure, and the different states of matter. Practice your math skills by making estimates and taking measurements. With a bit of imagination, we will even turn into tiny little molecules ourselves! By the end of the session, you will be a popcorn whiz. And... you'll probably be hungry!","SessionType":"Kidz Mash","Tags":["Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"7c1591aa-12ca-4ef4-ae3d-2acd2583adf9","FirstName":"Jamie","LastName":"Strauss","GravatarUrl":"//www.gravatar.com/avatar/fde4af0c0c179bad15eeba2e670430eb"}]},{"Id":7597,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Do More With Less: A Kotlin Primer","Abstract":"Have you been hearing a lot about Kotlin recently? Well, there’s good reason. Created in 2010 by JetBrains, Kotlin is a statically typed programming language that was built with a focus on being safe, approachable, and pragmatic. Over the last few years, it has seen a dramatic rise in popularity due to first class support in Spring, Gradle and, most recently, Android. Used by companies like Pinterest, Evernote, Atlassian, and Netflix -- Kotlin looks like it’s here to stay.\r\n\r\nIn this talk, we’ll take a quick tour of the Kotlin syntax, what makes it so powerful, and set you on your way toward coding bliss.","SessionType":"General Session","Tags":["Functional Programming","Other"],"Category":"Programming Principles","Speakers":[{"Id":"9140b58c-f77c-4104-a329-be499e1601b2","FirstName":"John","LastName":"Keyes","GravatarUrl":"//www.gravatar.com/avatar/72946d231c23284695b904016d73a8a8"}]},{"Id":7081,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Domain Driven Design: The Good Parts","Abstract":"The greenfield project started out so promising. Instead of devolving into big ball of mud, the team decided to apply domain-driven design principles. Ubiquitous language, proper boundaries, encapsulation, it all made sense.\r\n\r\nBut along the way, something went completely and utterly wrong. It started with arguments on the proper way of implementing aggregates and entities. Arguments began over project and folder structure. Someone read a blog post that repositories are evil, and ORMs the devil incarnate. Another read that relational databases are last century, we need to store everything as a stream of events. Then came the actor model and frameworks that sounded like someone clearing their throat. Instead of a nice, clean architecture, the team chased the next new approach without ever actually shipping anything.\r\n\r\nBeyond the endless technical arguments it causes, domain-driven design can actually produce great software. We have to look past the hype into the true value of DDD, what it can bring to our organizations and how it can enable us to build quality systems. With the advent of microservices, DDD is more important than ever - but only if we can get to the good parts.","SessionType":"General Session","Tags":[],"Category":"Architecture","Speakers":[{"Id":"49c9fba5-4c51-44b0-82be-2f2ce44fbbbf","FirstName":"Jimmy","LastName":"Bogard","GravatarUrl":"//www.gravatar.com/avatar/cc359c5ccf90d7a24b5976316797b5ec"}]},{"Id":7136,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Easy CQRS with ASP.NET Core & MediatR","Abstract":"Are your controller actions gigantic? Is your service layer bloated? Are testing and maintenance a nightmare?  Need a scalable solution?\r\n\r\nThe CQRS (Command Query Responsibility Segregation) development pattern can help address these issues. But implementing a distributed CQRS architecture can be intimidating. If not well designed, it can make your application exponentially more complex and difficult to maintain.\r\n\r\nSo why not start simple?\r\n\r\nUsing the popular .NET library, MediatR, it’s super easy to write simple, testable, scalable CQRS applications.\r\n\r\nIn this session, we will explore CQRS and its core concepts while building a mind-blowingly simple ASP.NET Core application with MediatR. We will emphasize separation of concerns, dependency injection, code reuse, thin controllers, and unit testability.  You will leave with knowledge and confidence to start using MediatR in your own projects.","SessionType":"General Session","Tags":[".NET","Testing","Functional Programming","Other","Events"],"Category":"Architecture","Speakers":[{"Id":"b1585fbf-2c65-4dd9-8138-11e4c3e1a63b","FirstName":"Ryan","LastName":"Foote","GravatarUrl":"//www.gravatar.com/avatar/b42731c24edfa77e5edb869afae36596"}]},{"Id":7017,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Effective Gherkin: Quality Requirements for the Enterprise","Abstract":"Developing software is costly. It is made more costly by miscommunication. Developers and Testers make mistakes because they misunderstand the business requirements. Business analysts make mistakes because they misunderstand the stakeholders. The result are defects that typically go unnoticed until the software has been implemented, which leads to expensive and time-consuming rework. Quality requirements are the nexus of understanding for stakeholders, designers, developers, testers, and customers. In this workshop, you will learn how to develop a set of quality requirement standards to reduce the cost of quality and meet the customer’s needs. The training will leverage the industry practice of Behavior Driven Development, which promote requirements by example & collaboration, to develop a shared language across not only a team but the whole enterprise. The shared language is written in Gherkin format (Given, When, and Then specifications) to define requirements independent of application type and focused on delivering value that everyone in the organization understands. ","SessionType":"Pre-Compiler","Tags":["Testing","Other"],"Category":"Software Quality","Speakers":[{"Id":"45c35283-c08f-4ac1-8bfb-ab7d465abf34","FirstName":"Thomas","LastName":"Haver","GravatarUrl":"//www.gravatar.com/avatar/79e316c2879f7d4dd9303824320843e0"},{"Id":"c703c1d2-1880-46fc-9433-7a0b94ccd1ca","FirstName":"Tony","LastName":"Makeka","GravatarUrl":"//www.gravatar.com/avatar/5605be14ba779635a360ba528b3b510d"}]},{"Id":7287,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Electron in the Real World: Architecture, Capabilities, and Performance","Abstract":"Electron gets a bad rap for being a slow and resource-hungry wrapper around Chrome, but in reality, it's a very capable desktop application framework that's well-suited for building complex software. Leveraging the capabilities of Node.js, you can read and write files, work with databases, speak bespoke IP protocols to control connected devices, and then wrap it all up behind a responsive, quick, and friendly user interface.\r\n\r\nIn this session, we'll explore a successful Electron application that does all of those things. You'll learn about Electron's general architecture and how it works to make all these things happen. You'll hear about how the team of React, Redux and TypeScript all worked together to make this complex application robust and understandable. We'll talk about lessons learned while building this application, including how some realizations and subsequent refactors simplified it and made it faster and easier to implement new features. We'll cover what was done when performance problems reared their ugly heads so the application could easily handle a hundred state updates per second, smoothly updating metrics and plotting devices' positions on live maps. We'll also talk about what the stack's limitations are, so you know what Electron is good at, helping you to leverage its strengths and avoid its weaknesses.\r\n\r\nIf you've been wondering whether Electron is right for your project, this tour through the development of a complex and successful application will help give you the information you need to make a well-informed decision and get you started using Electron to build it.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Architecture","Speakers":[{"Id":"85fffc76-e0df-44b8-b612-9f1e95a98387","FirstName":"Matt","LastName":"Behrens","GravatarUrl":"//www.gravatar.com/avatar/8eddc679294622c3c45d66b1dd4eba72"}]},{"Id":7007,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Enhancing Application Security: Understanding and Utilizing Browser Security Features","Abstract":"Have you looked at HTTP headers lately? Not only are they unwieldy, but what do half of them mean? Furthermore, browsers are protecting us from more-and-more attacks, but what are all of these acronyms? SOP, CSP, XSS, HSTS, HPKP, CAA... at the end of the day, we just want useable AND secure applications. This talk will break down exactly what all of these acronyms and browser-enforced security policies mean. Attendees will learn implementation and long-term strategies in effort to increase security posture without potentially sinkholing your user's traffic. Whether you're a first time developer, multi-linguist application guru, or simply an app user who wants to know what all of this security fuss is about - this session will appeal to the entire security conscious gamut.","SessionType":"General Session","Tags":["JavaScript","Ruby/Rails",".NET","Testing","Security","Java"],"Category":"Security","Speakers":[{"Id":"96eadeb9-d369-4c28-986e-953128fe11e6","FirstName":"Kevin","LastName":"Cody","GravatarUrl":"//www.gravatar.com/avatar/c13696d4362ee5745ea6f6fdb458aa94"}]},{"Id":7679,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Essential Tools for Xamarin Developers!","Abstract":"Cross-platform mobile development has been democratized for .NET developers – thanks to Xamarin & Microsoft. However, professional Xamarin development isn't a piece of cake. Sure, there is no barrier to entry and tooling has come a long way, but successful mobile apps need a lot more. Do you have a solid understanding of the Xamarin technology stack? Do you know how to mix and match native with abstracted UI for maximum code reuse?\r\n\r\nLet’s do a run-down of the essential tools, frameworks and utilities that should be in every Xamarin developer’s arsenal. The ubiquitous IDEs, necessary plugins, cloud services, deployment tools, testing solutions and polished UI – all ready for your app development pleasure. What can you do to delight your users, maintain developer sanity and deliver high quality apps? Let’s stop reinventing wheel and ship apps faster – the right tools help!\r\n","SessionType":"General Session","Tags":["Mobile",".NET"],"Category":"Mobile","Speakers":[{"Id":"d416eeff-fd68-46b9-a61c-35bec2b5c885","FirstName":"Sam","LastName":"Basu","GravatarUrl":"//www.gravatar.com/avatar/aeafe5d7249b9003e30b93ff3596cd68"}]},{"Id":7339,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Event Driven Actor Models in the Real-Time World","Abstract":"Curious how sports sites can provide real time scores for every game, or how they can provide statistics like \"Player X has a .452 average with runners on 2nd and 3rd during day games\"?  With so much data available and so many different views of data required, there has to be a way to satisfy the demand.  Event driven systems coupled with actor models can be a way to solve this problem.  In this session, we'll walk through how to solve the sports scenario described earlier using an event driven architecture and an actor model to process the data.  Some tools and libraries we'll look at include Akka.NET, Elm, and RethinkDB.  After this session, you'll have an appreciation of event driven architecture, how actor models can help with these architectures, and how you can start building one today.","SessionType":"General Session","Tags":[".NET","Functional Programming","Events"],"Category":"Architecture","Speakers":[{"Id":"7557c870-5bdc-46fb-a675-bfa87c3e92cc","FirstName":"David","LastName":"Hoerster","GravatarUrl":"//www.gravatar.com/avatar/a007ab3dc89f80c08655bc626fb37fc7"}]},{"Id":7685,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"EventBus and MVP - The Chocolate and Peanut Butter of Decoupling Android","Abstract":"Render the view, execute the business logic, manage the network, handle errors.  These are all separate concerns which should be handled separately. Unfortunately Android makes it far too easy to make a big, tightly-coupled mud pie out of these activities (pun intended). This makes implementing new features, testing, and maintaining existing code a nightmare.  \r\n\r\nSo how do you build a complex Android app without coupling everything together? \r\n\r\nEnter EventBus and MVP.  In this session we'll describe how to build and test a flexible, maintainable app using the Publisher/Subscriber and Model-View-Presenter patterns to cleanly separate our concerns.  Developers who attend this session will leave with new tools and techniques to separate the view from the business logic, and to cleanly implement network calls and error handling.\r\n\r\n","SessionType":"General Session","Tags":["Mobile","Java"],"Category":"Mobile","Speakers":[{"Id":"4955efbc-1c58-464c-9c8c-4e317fdbd3d7","FirstName":"Jim","LastName":"Kirkbride","GravatarUrl":"//www.gravatar.com/avatar/86adf88b3520316ae90cea5ca47e5eb4"}]},{"Id":7233,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Event-Driven UX in the Real World with Angular and Socket.io","Abstract":"Event-driven UI programming using WebSockets is great! The problem is that every demo app is a chat app or a game. This session focuses on real-world examples using socket.io and Angular (with a little bit of reactive programming sprinkled in) to demonstrate how event-driven user interfaces can dramatically improve a user experience. Attendees will leave able to design practical event-driven applications that provide a richer level of interaction with a lower level of programming effort.","SessionType":"General Session","Tags":["JavaScript","Functional Programming","Events"],"Category":"Web/Front-End","Speakers":[{"Id":"6f11f422-0558-4b6b-9d4d-a7e99522a21b","FirstName":"Michael","LastName":"Meadows","GravatarUrl":"//www.gravatar.com/avatar/954765ec98d01561285873097362e3ee"}]},{"Id":7473,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Everyday Elixir","Abstract":"Over the course of the past few months I've spent some time becoming more familiar with the Elixir by building a number of small applications.  Some applications run on small hardware like a raspberry pi, others allow for real time communication like a chat room on a website, and others simply automate a few every day tasks.  In this session I will take the audience through my journey of learning the elixir language, a few of the applications that I built along the way, and hopefully inspire others to pursue the task of learning a new language!","SessionType":"General Session","Tags":["Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"61156f71-8129-410f-be02-1d6093b8d498","FirstName":"Joel","LastName":"Byler","GravatarUrl":"//www.gravatar.com/avatar/804c822d96e32515c3ae7eaa52e42490"}]},{"Id":7682,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Evolution of a RESTful Testing Framework","Abstract":"Subtitle: Increased Productivity on APIs for the Whole Team\r\n\r\nAbstract: RESTful APIs are becoming ubiquitous in today’s digital world.  The Programmable Web now boasts over 18K APIs in it’s directory and the pace of publishing is accelerating.  Every organization will need to provide or use REST APIs.  Whether your team is a backend resource or API provider, client app development team, or you live in between these two as a proxy, you would benefit from a robust test framework.  This session opens with a brief overview of the API landscape and unfolds the evolution of a test framework.  Developed initially for API proxy developers, who needed simple, scripted, headless REST call and validation while maintaining client state; its execution model expanded for improved decoupling of API calls and asserts, API independence from client/provider, and dev/run perspectives.  The concepts presented are applicable whether you choose to ‘roll your own’ solution or extend an existing REST testing client like Postman.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Testing"],"Category":"Software Quality","Speakers":[{"Id":"489dc2f1-4db8-4432-a374-f11158d2877e","FirstName":"Kevin","LastName":"Shomper","GravatarUrl":"//www.gravatar.com/avatar/82d52048dbdac201ad204ece81326f5f"}]},{"Id":6937,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Exploring a NoSQL Option for Storing Data in your Mobile Apps","Abstract":"If your mobile app stores data locally, you’ve probably at least looked at SQLite or Core Data . These come with their share of pain points.  Database schema changes are inevitable with changing requirements and require tedious data migration. Working with SQLite often requires a clumsy mix of SQL with Swift/ObjC/Java/Kotlin and it’s very easy to go wrong. And then, there is the potential impedance mismatch issue to consider while trying to model data as relational tables. \r\n\r\nThis talk will examine NoSQL as an alternative to locally persisting data on mobile platforms. We will provide an overview of the various flavors of NoSQL, focusing on the  Document model. While NoSQL database technologies is gaining traction in large scale distributed applications, we will discuss it’s benefits as an embedded database on mobile platforms for enabling both offline-first and offline-only use cases.\r\n\r\nThen I will introduce Couchbase Lite, an open source, cross-platform NoSQL embedded data store for your mobile apps. We will compare and contrast it with existing solutions. We will discuss how you can integrate this in your mobile apps and walk through examples describing the CRUD and Query interface. \r\n \r\nAt the end of the talk, you will walk away with a good idea of the benefits of NoSQL as a embedded store with Couchbase Mobile as a concrete example. Anyone building a mobile app with local storage needs will benefit from this talk. ","SessionType":"General Session","Tags":["Mobile"],"Category":"Mobile","Speakers":[{"Id":"fd245182-1b3b-45ac-93f6-cac098581200","FirstName":"Priya","LastName":"Rajagopal","GravatarUrl":"//www.gravatar.com/avatar/01c9d267e78a30758e8ce4a8735833e5"}]},{"Id":7049,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fast Neural Networks… a no brainer!","Abstract":"Artificial Neural Networks are a fascinating computational approach modeled to react similar to a biological brain to solve problems.  Neural networks are a very powerful tool that enable machines to teach and evolve themselves.  You can utilize this power in almost any application.  Don’t be intimidated by the equations and Greek symbols of this cutting-edge technology, I will guide you on how to slay this technology and make it bend to your will.  \r\n \r\nIn this session, we are going to demystify the apparent Neural Networks complexity without the need of mathematical background providing an approachable overview. There will be very little math and lots of coding. The goal is for everyone to become acquainted with Neural Network from a pragmatic standpoint.\r\n \r\nJust when you think it couldn’t get any better, I will show you how to employ the functional paradigm to leverage multicore machines and GPUs to make your neural networks predictions infinitely faster through parallelism. \r\n \r\nBy the end of this talk, you will learn the basic concepts of Neural Network and how to apply functional concurrency to estimate future stock prices at blazing fast speeds…and perhaps get rich while practicing.\r\n","SessionType":"General Session","Tags":[".NET","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"aee0ad5c-8921-46ad-8ace-fb49a5c6043d","FirstName":"Riccardo","LastName":"Terrell","GravatarUrl":"//www.gravatar.com/avatar/74b3e17c0fcd55d2da2a417c148213e9"}]},{"Id":7797,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fearing the Robot Overlords","Abstract":"We fear robot overlords as we do vampires, werewolves, and other baddies that go bump in the night. We worry that their intelligence will take our jobs, our livelihood, our freedom, and enslave us to their bidding; or at least that’s how it happens in the movies. Popular culture capitalizes on this emotion to sell Terminator tickets and Asimov novels, but this is not our future. We can celebrate Artificial Intelligence as our greatest accomplishment, and harness it for the tool that it really is. This talk addresses our relationship with computers as tools and how we should allow computers to do the work, so people can do the innovating. Our horizon awaits.","SessionType":"General Session","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"84f4d5b5-4e54-4f13-8939-1434551b46be","FirstName":"Christina","LastName":"Aldan","GravatarUrl":"//www.gravatar.com/avatar/ce9356a177df8b59c28d72c7dc2d64be"}]},{"Id":7753,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fiber or Glimmer? Two Approaches to the Component-Centric Future","Abstract":"The rendering wars have begun! Front-end templating frameworks like React, Angular, and Ember have all generally settled on a similar component-based paradigm, but they're still differentiated by their vastly different rendering engines. This talk will dive deep into React's rendering engine, codenamed Fiber, and Ember's rendering engine, Glimmer. Both engines have recently revealed brand-new and rewritten implementations aimed at optimizing for performance. Fiber attempts to do as much work as possible between each frame to make sure the browser is always free to paint the page. Glimmer takes a totally different approach; it pre-compiles templates into a bytecode that is then interpreted by a \"virtual machine\" in order to perform the most optimzed updates possible. After we dig deep into the code behind the actual implementation of each engine, attendees to this talk will walk away with an in-depth understanding contemporary renderers along with some knowledge about what factors to consider when trying to choose a framework.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"366ff90e-4d9d-4f0f-98ea-d18a71824df3","FirstName":"Tommy","LastName":"Graves","GravatarUrl":"//www.gravatar.com/avatar/355e5ca85953f9de3ecd0345f7b2bf61"}]},{"Id":7281,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fire Up Your Mobile App!","Abstract":"Have you ever had an idea spark that would make a great mobile app? But when confronted with managing the data, authentication, and hosting, it's all too easy to give up on building the next million dollar product.\r\n\r\n**Firebase to the rescue! ** This session will take a look at a Codemash conference app built using Xamarin Forms for the front end and Firebase for the back end infrastructure. You'll see how the app uses Firebase to store and sync app data, authenticate users using Google and Twitter OAuth providers, track analytics, and monitor app performance all in one central place.\r\n\r\nYou will leave this session with an understanding of how to integrate Firebase with your mobile front end.\r\n\r\nLet’s go build apps!","SessionType":"General Session","Tags":["Mobile",".NET","Cloud/Big Data","Other"],"Category":"Mobile","Speakers":[{"Id":"474cc3d7-d6d6-4b7e-965c-36d585bf8023","FirstName":"Suganthi","LastName":"Giridharan","GravatarUrl":"//www.gravatar.com/avatar/1f9da04d2bfc708475a9b36105c95bff"}]},{"Id":7178,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"First Person View Drone Racing (Day 1, Part 1)","Abstract":"Have you ever dreamed of flying?  Have you seen videos of people piloting mini pod racers or watched drone racing on ESPN?  Do you want in on the fun?  Join us as we demystify these magical machines.  In the first part of this session, we will learn all about the technology that makes quadcopters fly: flight controllers, motors, ESCs, receivers, transmitters, etc.  Participants will then have the opportunity to build a micro sized racing drone and put their skills to the test in the ultimate first person view Codemash Drone Prix. Will YOU be crowned the ultimate drone racing champion of Codemash?","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"54f00b2d-4772-4543-9a03-60e55c7fbf51","FirstName":"John","LastName":"Chapman","GravatarUrl":"//www.gravatar.com/avatar/618dc4451e0e3e5ee80a20b0792e1b9f"},{"Id":"0505a990-820f-4216-8c7f-26ef83a6fbaf","FirstName":"David","LastName":"Resseguie","GravatarUrl":"//www.gravatar.com/avatar/f75793412ac9a8253b6773356fb3d59e"}]},{"Id":7842,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"First Person View Drone Racing (Day 1, Part 2)","Abstract":"Have you ever dreamed of flying?  Have you seen videos of people piloting mini pod racers or watched drone racing on ESPN?  Do you want in on the fun?  Join us as we demystify these magical machines.  In the first part of this session, we will learn all about the technology that makes quadcopters fly: flight controllers, motors, ESCs, receivers, transmitters, etc.  Participants will then have the opportunity to build a micro sized racing drone and put their skills to the test in the ultimate first person view Codemash Drone Prix. Will YOU be crowned the ultimate drone racing champion of Codemash?","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"0505a990-820f-4216-8c7f-26ef83a6fbaf","FirstName":"David","LastName":"Resseguie","GravatarUrl":"//www.gravatar.com/avatar/f75793412ac9a8253b6773356fb3d59e"},{"Id":"54f00b2d-4772-4543-9a03-60e55c7fbf51","FirstName":"John","LastName":"Chapman","GravatarUrl":"//www.gravatar.com/avatar/618dc4451e0e3e5ee80a20b0792e1b9f"}]},{"Id":7841,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"First Person View Drone Racing (Day 2, Part 1)","Abstract":"Have you ever dreamed of flying?  Have you seen videos of people piloting mini pod racers or watched drone racing on ESPN?  Do you want in on the fun?  Join us as we demystify these magical machines.  In the first part of this session, we will learn all about the technology that makes quadcopters fly: flight controllers, motors, ESCs, receivers, transmitters, etc.  Participants will then have the opportunity to build a micro sized racing drone and put their skills to the test in the ultimate first person view Codemash Drone Prix. Will YOU be crowned the ultimate drone racing champion of Codemash?","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"54f00b2d-4772-4543-9a03-60e55c7fbf51","FirstName":"John","LastName":"Chapman","GravatarUrl":"//www.gravatar.com/avatar/618dc4451e0e3e5ee80a20b0792e1b9f"},{"Id":"0505a990-820f-4216-8c7f-26ef83a6fbaf","FirstName":"David","LastName":"Resseguie","GravatarUrl":"//www.gravatar.com/avatar/f75793412ac9a8253b6773356fb3d59e"}]},{"Id":7843,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"First Person View Drone Racing (Day 2, Part 2)","Abstract":"Have you ever dreamed of flying?  Have you seen videos of people piloting mini pod racers or watched drone racing on ESPN?  Do you want in on the fun?  Join us as we demystify these magical machines.  In the first part of this session, we will learn all about the technology that makes quadcopters fly: flight controllers, motors, ESCs, receivers, transmitters, etc.  Participants will then have the opportunity to build a micro sized racing drone and put their skills to the test in the ultimate first person view Codemash Drone Prix. Will YOU be crowned the ultimate drone racing champion of Codemash?","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"0505a990-820f-4216-8c7f-26ef83a6fbaf","FirstName":"David","LastName":"Resseguie","GravatarUrl":"//www.gravatar.com/avatar/f75793412ac9a8253b6773356fb3d59e"},{"Id":"54f00b2d-4772-4543-9a03-60e55c7fbf51","FirstName":"John","LastName":"Chapman","GravatarUrl":"//www.gravatar.com/avatar/618dc4451e0e3e5ee80a20b0792e1b9f"}]},{"Id":6788,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fitting Big Data Into Web-Based Dashboards: Pitfalls and Helpful Hints","Abstract":"Visualizing big data already comes with the innate challenge of packaging overwhelming mountains of data into a human-digestible format.  The browser adds an extra level of challenge in limits on how many DOM elements can effectively render, limitations of HTML canvas, and the quirks of JavaScript.  Understanding these limits is a great start to making the most of the browser.\r\n\r\nAttendees will learn about:\r\n* The pros and cons of canvas, SVG, and non-SVG elements when it comes to interactivity and volume of data.\r\n* When to use a library, and which library (low-level like D3 or high-level like Highcharts)\r\n* When to roll your own visualization (no library)\r\n* Pitfalls and tips of integrating into a framework (like React)\r\n* Designing new non-standard elements to meet new use cases (with a real life case study in visualizing Spark apps)\r\n* Workarounds for when there's too much information to fit on the page\r\n\r\nExpect to leave armed with information and tips on making useful, approachable big data visualizations in those little browser windows.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript","Cloud/Big Data"],"Category":"Web/Front-End","Speakers":[{"Id":"4b729e74-575f-42dc-814e-6c5068df7422","FirstName":"Christina","LastName":"Holland","GravatarUrl":"//www.gravatar.com/avatar/5c8449333a71c6508377dbbb83830ea1"}]},{"Id":7696,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Fluid Power! Build your own hydraulic machine","Abstract":"You may think liquids are wimpy, but they actually power some of the strongest machines in the world using what's known as hydraulics. Come learn how hydraulic systems work and see examples of how they can be used to move extremely heavy loads. You'll even be able to build a simple hydraulic machine that can be used to power your own inventions!","SessionType":"Kidz Mash","Tags":[],"Category":"Hardware/IoT","Speakers":[{"Id":"0505a990-820f-4216-8c7f-26ef83a6fbaf","FirstName":"David","LastName":"Resseguie","GravatarUrl":"//www.gravatar.com/avatar/f75793412ac9a8253b6773356fb3d59e"}]},{"Id":7043,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Flying High with Xamarin!","Abstract":"Cross-platform mobile development has been democratized for .NET developers – thanks to Xamarin & Microsoft. Let’s build a cool aviation app together – targeting all platforms from the comforts of Visual Studio on Windows or Mac. Real world apps need cloud data connectivity, navigation, storage, lifecycle management, plugins and polished UI – let’s do all that. Let’s take a look at some must-have tooling for professional Xamarin developers. Let’s dip into device capabilities, reuse libraries and elevate the user experience. Oh, and we will throw in some passion for aviation in the app, like private jets and supersonic possibilities. Loads of fun while learning cutting-edge mobile development – you in?\r\n","SessionType":"General Session","Tags":["Mobile",".NET"],"Category":"Mobile","Speakers":[{"Id":"d416eeff-fd68-46b9-a61c-35bec2b5c885","FirstName":"Sam","LastName":"Basu","GravatarUrl":"//www.gravatar.com/avatar/aeafe5d7249b9003e30b93ff3596cd68"}]},{"Id":7687,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"FP vs. OOP: Beyond the Bikeshed","Abstract":"In object-oriented languages like Ruby, people often say that “everything is an object”—but first-class *functions* have become standard for object-oriented languages too. C# has had them and other related features for years, and even Java is in the game these days! Some “functional” languages seem to have some very object-oriented-looking features, too. If that sounds wrong to you, let's talk about polymorphism and more in languages like Clojure, Elixir, and even Haskell! So where does object-oriented programming (OOP) end and functional programming (FP) begin?\r\n\r\nIn this session, you’ll learn to look at these programming paradigms with a more critical eye, focusing on where FP and OOP folks fundamentally disagree, where these paradigms have more in common than the industry's rhetoric suggests, and how you can use those insights to make better decisions about the software you build.","SessionType":"General Session","Tags":["Ruby/Rails",".NET","Functional Programming","Java"],"Category":"Programming Principles","Speakers":[{"Id":"08865cab-a1b3-48de-9b7d-7811ed1720b3","FirstName":"Colin","LastName":"Jones","GravatarUrl":"//www.gravatar.com/avatar/e16bc9c356b65d61ee1d74c8f06ae35b"}]},{"Id":7781,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"From zero to a production quality webservice with Go","Abstract":"Go is hands down the best general purpose language out there today, but nothing you’ve read or heard is as good at experiencing it for yourself.  This hands-on training assumes absolutely no prior knowledge of Go. It will walk you through setting up your local development environment and then help you evolve your first Go program from “hello world” to “real world.”  Along the way you’ll learn the core features of the language (including its concurrency model), become familiar with key components of the standard library, and learn the idiomatic patterns of the language.  Attendees will leave with the tools and know-how to write their next project in Go.","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"Programming Principles","Speakers":[{"Id":"da797d88-12b2-487c-8c28-27ad526a6943","FirstName":"Zev","LastName":"Goldstein","GravatarUrl":"//www.gravatar.com/avatar/ce245cdc48901d2dcbde027dc15796dc"}]},{"Id":7374,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Functional Programming from None to Infinity","Abstract":"In this workshop, we’ll start by exploring two functional\r\nprogramming languages that these days are relegated largely to\r\nacademic study, highlighting the influences they’ve had on modern functional programming paradigms and reinforcing these ideas by recreating the abstractions that set the groundwork for functional programming as we know it today. First, we’ll cover ML, a language whose ideology remains largely unchanged for over 40 years and considered the common ancestor of modern functional languages like Haskell, OCaml and F#. Next, we’ll cover Racket, a LISP derived from Scheme which shares similarities and probably inspiration with a number of currently popular languages, perhaps most obviously, Clojure and perhaps less obviously, Javascript. Lastly, we’re back to where you work: I’ll present exercises that help to reinforce the ideas\r\nlearned from ML and Racket to be solved either in the language of your choosing, or Javascript (the de facto language of examples and\r\nsolutions du jour).\r\n\r\nJoin me for an enlightening foray into some languages largely\r\nforgotten or ignored by the industry that are certain to help you\r\nbring new ideas about functional programming to your daily practice,\r\nwhatever it may be.","SessionType":"Pre-Compiler","Tags":["JavaScript","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"dee57fae-0230-40ff-8a11-363bd8c2ff93","FirstName":"Nathan","LastName":"Dotz","GravatarUrl":"//www.gravatar.com/avatar/d3f6a4543c701c805aca9e2ffc7c6333"}]},{"Id":7534,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Getting OAuth Into Your Dev Toolbox","Abstract":"It seems like there are two types of developers - those who have encountered a hacked together custom OAuth implementation, and those who have never used OAuth. The simplicity of the protocol encourages redevelopment where none is needed, which creates avoidable design and security headaches. This session is designed around providing a strong base in building an OAuth application, exploring what questions to ask and which strategies to use. Attendees will also see a few real world examples, both good and bad, of implementing OAuth with both custom and out of the box solutions.","SessionType":"General Session","Tags":[],"Category":"Architecture","Speakers":[{"Id":"0a606dbf-dafc-4213-bd6f-a76145592447","FirstName":"Brett","LastName":"Berliner","GravatarUrl":"//www.gravatar.com/avatar/018b58cbb576b51535f2e562fa34e01b"}]},{"Id":7354,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Getting Real without Getting Fired -- Saying Things in a Way People Can Hear","Abstract":"Are important words often left unsaid at your place of work? Do you feel like you're navigating a complex maze in conversations? Does your message tend to miss the mark with co-workers, who increasingly seem to be impediments to reaching your goals? Are these unspeakable truths in your workplace that you wish someone would resolve for you?\r\n\r\nTrust and communication issues within the workplace can hollow out an organization. Invisible lines get drawn. Alternate forms of communication open up to subvert perceived rivals. Allies are recruited, reinforcing an us vs. them behavior cycle. Organizations are suffering from a lack of trust, and it's costing them speed, productivity, and collaboration. What can YOU do about it?\r\n\r\nRegardless of your title, you can be a leader in your organization, and a leader's first job is to inspire trust. In this session, Allison and Marcus will share models to evaluate your own behaviors and facilitate activities to help you find your voice for speaking the truth in a way that builds trust. Softening the truth can feel comfortable in low trust environments--it's simpler, nicer, and can make you look like a team player. It can also lead to miscommunication, undelivered news, and blame shifting. On the other hand, saying the truth in all of its ugliness is risky and potentially career-limiting. Finding the sweet spot of communication to become a trusted leader takes self-awareness and practice. Attend this workshop and learn to recognize how your behavior is building trust--or not--and practice speaking hard truths so that others can hear it.","SessionType":"Pre-Compiler","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"90770b73-d1ca-4a19-b1e5-3bffca2a091f","FirstName":"Allison","LastName":"Pollard","GravatarUrl":"//www.gravatar.com/avatar/9cce480d1a7e643caeae71ecfbc518e2"},{"Id":"ab5cfdc3-bea4-45a9-bf2b-321dc7bd2632","FirstName":"Marcus","LastName":"King","GravatarUrl":"//www.gravatar.com/avatar/7cbb86bfaaa5172a82dae1bcc5adb82d"}]},{"Id":6914,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Getting Started with Deep Learning","Abstract":"Machine learning is fast becoming the software spice of choice to spruce up your projects. Deep Learning is in the hot sauce category. In this session attendees will learn the basics of deep learning in an approachable and friendly way. The session will start from problem inception to actually training and improving a deep learning model. Attendees should come away with a game plan on how to incorporate these techniques in their existing software projects. I make jokes too.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"b6e14e1c-5b57-42c2-a01d-f8e8b7897e54","FirstName":"Seth","LastName":"Juarez","GravatarUrl":"//www.gravatar.com/avatar/44777894738464b4578acf6f03687867"}]},{"Id":7401,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Getting Started With Elm and Typed Functional Programming","Abstract":"Elm is a typed, functional programming language that compiles to JavaScript. It's famous for ensuring robust applications, and Elm's wildly developer friendly compiler helps developers write elegant, long-lived and safe frontend code. It has recently started drawing widespread attention and is starting to position itself as something other compile-to-js languages hasn't achieved yet - a viable alternative to JavaScript.\r\n\r\nElm utilizes a React-like rendering system, using a tree of pure view functions, while structuring its app using the so-called Elm architecture (which the Redux architecture is loosely based on). All data is immutable, of course, and the language supports fancy features such as algebraic data types, pattern matching and type inference.\r\n\r\nDid this pique your interest? This workshop provides a thorough introduction to Elm, but also serving as a introduction to ML-style typed functional programming. After this workshop you'll be able to judge for yourself whether a language like Elm could ever replace JavaScript as our go-to tool for large-scale web development!","SessionType":"Pre-Compiler","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"db9ff7a8-05a2-4f22-9ed0-8ea59d864bb9","FirstName":"Erik","LastName":"Wendel","GravatarUrl":"//www.gravatar.com/avatar/126f8564938671a5ab9522597eac4178"}]},{"Id":7758,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"git gone wild: how to recover from common git mistakes.","Abstract":"\"Oh no! I just typed something into git and now my work is gone! Ahh!\"\r\n\r\nDon't panic. Contrary to popular belief, git is one of the most non-destructive version control systems available. When used right, git\r\nnever loses any data, and even when misused, chances are very high you can still recover.\r\n\r\nThis talk will present turn-by-turn directions on how to recover from a wide array of common git mistakes, and also provide some workflows\r\nto minimize them.\r\n\r\nExamples include, but are not limited to:\r\n* Changing spelling errors in commit messages.\r\n* Split commits into multiple commits with logical separation.\r\n* Combining multiple commits into one.\r\n* Resetting the base commit when you accidentally branch off of the wrong branch.\r\n* Recovering from merge conflicts.\r\n\r\nAs well as more advanced topics, such as:\r\n* Extracting parts (e.g. sub-directory) of a repository as a new repository.\r\n* Merging multiple repositories into one while retaining version history.\r\n* Removing confidential data accidentally committed.\r\n\r\n","SessionType":"General Session","Tags":["Other"],"Category":"Programming Principles","Speakers":[{"Id":"b8b39866-2802-4aff-91c6-1744806e8129","FirstName":"Magnus","LastName":"Stahre","GravatarUrl":"//www.gravatar.com/avatar/1b460bcfbaddc7e32a1219f038cb5232"}]},{"Id":6775,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Github Pull Requests for Everyone","Abstract":"### Description\r\n\r\nReviewing a pull request can feel like a chore. If done poorly, PR reviews can mean a few hours of attempting to understand both the problem and the solution, then checking that the result matches the design. Sure, many of us have the luxury of walking to our coworker’s desk and getting a walk through. But what if the other dev isn’t free? What if they live in another time zone? What if you need a project manager or designer to look at your work, and they don’t have a local setup or much dev experience? \r\n\r\n\r\n#### In this session, we’ll go over some tips and technologies to make your pull request process a bit smoother. We’ll discuss:\r\n\r\n* Writing clear issues/stories to build a good foundation\r\n* Tools you can use for reviewing work with remote coworkers\r\n* Keeping design reviews from turning into blockers\r\n* Adding testing instructions to your PR description\r\n* Leaving positive feedback so no one goes home grumpy\r\n\r\n#### This session is for you if your team uses GitHub, and….\r\n\r\n* You have a coworker or client in a different timezone\r\n* You regularly need a designer to review your work\r\n* You or your coworkers work remotely one or more days a week\r\n* You regularly contribute to open source projects (or run your own!) \r\n* You ever have code that needs a merge, like, now\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript","Ruby/Rails","Soft Skills / Business","Other","Java"],"Category":"Web/Front-End","Speakers":[{"Id":"4df51560-055e-425d-bf6b-4a0ff3bc9f25","FirstName":"Catherine","LastName":"Meade","GravatarUrl":"//www.gravatar.com/avatar/6a332058cb8888f05fa6a981a55a0219"}]},{"Id":7072,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Giving Clarity to LINQ Queries by Extending Expressions","Abstract":"In this session we’ll learn about .Net Expression trees by discovering how they work and applying the knowledge to LINQ using the pipes and filters pattern.\r\n\r\nIn this session we’ll learn about .Net Expression trees by discovering how they work and applying the knowledge to LINQ using the pipes and filters pattern. LINQ and Entity Framework are both commonly used in the .Net ecosystem, but even well-written applications can have LINQ queries that are difficult to understand. Because LINQ is so flexible, it can be written in ways that fail to communicate the developer’s intent. Well-written LINQ should be so clear as to be self-documenting. To write clear LINQ, it helps to understand the details of a few LINQ components that improve LINQ’s readability.\r\n\r\nWe’ll be showing how to use a pipe and filter pattern to make LINQ queries easier to comprehend. We will take a deep dive into expression trees to understand how they work, and how to manipulate them for maximum re-usability.","SessionType":"General Session","Tags":[".NET","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"c0bcb40e-5422-4e41-bd72-0742e9ac766b","FirstName":"Ed","LastName":"Charbeneau","GravatarUrl":"//www.gravatar.com/avatar/ec4839ac8d5887bf44ad2dfa279ce8cd"}]},{"Id":7073,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Going all in with functional C#","Abstract":"In this workshop attendees will learn about functional C# by building a poker scoring game using C# 7+ features. We’ll learn what new features were added in C# 7+ to support functional programming. The pros/cons of functional vs. imperative programming will be explored to understand the strengths of each style.\r\n\r\nIn this workshop we’ll learn:\r\n\r\n* Immutable Types\r\n* Basic LINQ concepts\r\n* Advanced LINQ concepts (Yeild)\r\n* Func Delegates\r\n* Expression Bodied Members\r\n* Extension methods and pipe-lining\r\n* Thread Safe Collections\r\n* Tuples","SessionType":"Pre-Compiler","Tags":[".NET","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"c0bcb40e-5422-4e41-bd72-0742e9ac766b","FirstName":"Ed","LastName":"Charbeneau","GravatarUrl":"//www.gravatar.com/avatar/ec4839ac8d5887bf44ad2dfa279ce8cd"}]},{"Id":7108,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"GraphQL -- Flexible APIs for Adaptive Clients","Abstract":"REST is dead!  Long live GraphQL!  (Just kidding… this isn’t a zero-sum game). As the proliferation of clients emerge (Android, IOS, Web, etc), we are learning that REST does have some limitations, and you’ve probably seen them first-hand.  GraphQL, by FaceBook, is an attempt to fix the limitations of REST by allowing the client to specify the data it needs via a single endpoint. Servers can expose any data from any source via a typed interface, and clients can gain the freedom to ask for exactly the data they need without over-fetching. In this session we will discuss the limitations of REST, the power of GraphQL, and some implementations. We’ll discuss some best practices, and the tooling that has emerged in this space to make your developer experience top-notch.","SessionType":"General Session","Tags":["JavaScript","Other"],"Category":"Web/Front-End","Speakers":[{"Id":"04650a2c-b4dd-4916-9e37-fef963867ce8","FirstName":"Brian","LastName":"Genisio","GravatarUrl":"//www.gravatar.com/avatar/170325813beddd7418a3b55ffbf378f9"}]},{"Id":6902,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Great Design for Kids (and Other Life Forms)","Abstract":"As programmers and inventors we often obsess with **functionality** and we sometimes overlook how our designs **interact** with **natural life forms** (which include human beings, aliens from outer space, etc.). But this connection between the life form and  your virtual/physical invention is very important. This fun & interactive session will show you just how to easy it is to turn good inventions into great ones.","SessionType":"Kidz Mash","Tags":["Design (UI/UX/CSS)","Mobile","JavaScript",".NET","Java"],"Category":"Design (UI/UX)","Speakers":[{"Id":"9d113a83-30ff-41df-b093-7b44f852b7ce","FirstName":"Mark","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/16cc1eea9cb56905335600fc60f6c052"}]},{"Id":6881,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Hacking healthcare: real-world applications and challenges of health informatics","Abstract":"Our healthcare system is at a tipping point, and fixing it is one of the most important challenges we face today. \r\n\r\nIn this session, you'll learn what we technologists bring to the table to improve patient outcomes and make healthcare safer and more cost effective.  You'll also learn what goes on with your medical and insurance data behind the scenes at your doctor's office.\r\n\r\nNo specific programming language knowledge is required for this birds eye view of the taxonomies, workflows, standards, and APIs that form the infrastructure  of our nation's health care system.\r\n","SessionType":"General Session","Tags":["Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"756fdc37-75f0-447b-85df-212a78152a55","FirstName":"Marina","LastName":"Fedner","GravatarUrl":"//www.gravatar.com/avatar/848e8b844dedbc8349e2726d4f95fd34"}]},{"Id":6755,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Hacking Radiowaves for fun (but not profit)","Abstract":"As a child, did you ever play with walkie talkies? Do you remember how fun it was to talk with friends and family from the other end of the house, or across the neighborhood?\r\n\r\nCapture that feeling again, except this time learn some science behind it and how to use the same technology to contact someone on the other side of the country with just a radio and some wire.  This session is an introduction to amateur radio aimed toward IT professionals. Accordingly, the focus will be on how to get licensed, and introducing the more technology focused aspects such as digital communication modes, antenna design, and commonly used software.\r\n\r\nWhile amateur radio cannot be used for commerce, many lessons learned in the hobby are almost directly applicable to everyday work and you will walk away with a better understanding of wireless technology.","SessionType":"General Session","Tags":["Hardware"],"Category":"Hardware/IoT","Speakers":[{"Id":"a5b9d365-c3f6-42d7-b176-18e2fe232cd3","FirstName":"Craig","LastName":"Hills","GravatarUrl":"//www.gravatar.com/avatar/9199ea46a9d8c69e8a20d994aa1baa76"}]},{"Id":7327,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Hands-on Experiments with Electronics","Abstract":"Learn about electricity and circuits with Rachel (age 12) and Nathan (age 10). In this hands-on session, you will prototype a circuit on a breadboard and see how the components work together to control the flow of electricity. The session will cover light emitting diodes, potentiometers, photo-resistors, and more!","SessionType":"Kidz Mash","Tags":["Hardware"],"Category":"Hardware/IoT","Speakers":[{"Id":"6e184f25-e5be-4335-a218-38f1c360683a","FirstName":"Jacob","LastName":"Coulter","GravatarUrl":"//www.gravatar.com/avatar/1bee05494da1a3cf92a477c2182d12c2"}]},{"Id":7423,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Hey, You Got Your TDD in my SQL DB!","Abstract":"When should we test our data? From an application development perspective, a unit test against a database isn't a unit test at all. Which makes sense -- connected systems introduce overhead and dependency, both of which reduce stability and decrease productivity during test-driven development (TDD). But if we wait for integration testing, critical functionality can get missed. In this session, we will discuss strategies for filling the data testing gap, directly within a Microsoft SQL Server environment. If you do a lot of work in T-SQL but aren't familiar with TDD, you'll learn the why and how of test-first development. If you're accomplished with unit tests, but never tried them in your database, you'll learn how to apply familiar concepts like setup, mocking, and assertion. We'll spend most of our time walking through a solution based on a real-world project, specifically using the open source tSQLt database unit testing framework.","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"baa2dd3b-c27f-4f54-b291-d5c78c89b555","FirstName":"Jeff","LastName":"McKenzie","GravatarUrl":"//www.gravatar.com/avatar/b446e10fd837cbe0a0f11af00a01ac60"}]},{"Id":7039,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How Do I Secure My Micro-Services?","Abstract":"Micro-services have become a very popular technique for application development. The paradigm brings significant value for certain types of applications, and the community certainly seems to be trending in this direction over the last few years. As with any architectural style, there are lots of trade-offs. When considering security, there are some unique benefits and challenges associated with micro-services. This talk will look at some of the interesting issues that arise when securing real world services and give some practical advice for those dealing with this task based on the presenters experiences. This talk will cover security-relevant architectural and design changes that arise when migrating to a micro-services architecture, and will provide recommendations on how to leverage the benefits and address the challenges from these changes.\r\n\r\nIn this talk you will learn:\r\n* Security-related architectural and design concerns related to micro-services\r\n* How these architectural changes benefit and challenge security in a system\r\n* Questions you need to address as an architect or developer to ensure appropriate security protections exist in your system\r\n* Provide hard-earned recommendations on how to leverage the benefits and address the challenges from these fundamental architectural changes to better secure your systems (read: I failed so hopefully you don't have to!)\r\n* Pointers to open-source tools that can be applied to benefit from these changes\r\n* How your team, architecture, developers, and operations staff are affected by the fundamental changes: and how to take advantage of the new paradigm to gain greater security\r\n","SessionType":"General Session","Tags":["Security","Java"],"Category":"Security","Speakers":[{"Id":"eb63761e-810d-4549-86bb-2aacf320c936","FirstName":"John","LastName":"Melton","GravatarUrl":"//www.gravatar.com/avatar/1c9918a7a9b1394ec9f25a3d30b5b9df"}]},{"Id":7165,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How does my computer talk to me? Peeling back the hood of your favorite voice assistant","Abstract":"Virtual voice assistants have become a major offering by all the big digital-oriented companies with Siri, Cortana, Ok Google and Alexa becoming common household names. But have you ever wondered how they actually work? We’ll walk through what goes into creating a voice assistant and how they function in the real world. The talk will also delve into future technologies and innovations that might be coming. I’ll also show a demo of my DIY voice assistant using Google Assistant API for Raspberry Pi 3. ","SessionType":"General Session","Tags":["Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"d0a23b1b-a249-43da-a0c1-6b209aaf8bfd","FirstName":"Amber","LastName":"McKenzie","GravatarUrl":"//www.gravatar.com/avatar/718a25b4ce19ee3bfcd3aca8d0354319"}]},{"Id":7220,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How Not to Destroy Data","Abstract":"CRUD apps destroy data.\r\n\r\nDelete is an obviously destructive operation, but Update is no better. Updates overwrite the data that was once present. What would software look like if the only valid operations were Create and Read?\r\n\r\nHistorical Modeling is a technique for designing and building software systems that permit only inserts, no updates, no deletes. The only way to \"modify\" an object is to insert related records. You can then read the state of the object by querying for the presence or absence of those related records. We'll start with the assumption that all records are immutable and indelible. From there, we'll build a set of patterns that yield some surprising benefits.\r\n\r\nWith a historical model, synchronizing disparate nodes is trivial: just insert what you don't yet have. Building offline-first web applications is easy. Viewing a snapshot of the system at any point in the past is a simple query.\r\n\r\nLet's build a historical model together, and see these benefits for ourselves. Let's put aside the assumptions of CRUD applications and discover a whole new set of patterns. Once you master these techniques, you will never destroy data again.\r\n","SessionType":"General Session","Tags":["Events"],"Category":"Architecture","Speakers":[{"Id":"1434dfae-bc8d-4238-b34c-2afb3edab4b3","FirstName":"Michael","LastName":"Perry","GravatarUrl":"//www.gravatar.com/avatar/b46b0b9cd3f4825dd59d911496fa4665"}]},{"Id":6894,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How Pro Wrestling Helped Make Me a World Champion Tester","Abstract":"Have you ever considered that software testing is like a pro wrestling match? Through my pro wrestling fandom, I’ve changed the way I think about delivering high quality software. Wrestlers look to find the perceived vulnerability in their opponent, and exploit it just like a tester would! During this session, you will learn about applying similar techniques to your test strategies, and how to apply them within your team. And just like wrestling there are multiple match types to consider, ways to take down your opponent, and a variety of skills to leverage to your advantage. We’ll discuss… \r\n\r\n* Don’t hurt your opponent- viewing the developer as a partner in executing quality\r\n* The lock up- sizing up the task\r\n* The chair shot- picking the right tool for the job\r\n* The reversal- How to pivot when testing turns you on your head\r\n* The tag match- partnering with automation\r\n* And many more concepts to help make you a 5 tester!\r\n","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"35c9e596-c77d-4b1f-a3e4-c71b5a3df074","FirstName":"Jenna","LastName":"Charlton","GravatarUrl":"//www.gravatar.com/avatar/2aabe0d5b9d18ce29528f7a49b493a35"}]},{"Id":7618,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How to Count Your Chickens After They've Hatched","Abstract":"When you're one of the leading free range chicken farmers in the UK, and you buy your fertilized eggs by the ton, how do you know how many chickens you own after they hatch? How many are in each barn when you lock them in for the night? If someone stole a large quantity, would you even notice?\r\n\r\nIn this session I'll walk you through the IoT and Machine Learning solution I developed to solve this problem. Along the way I'll teach you several machine vision techniques as well as demonstrating to you how I adapted a well known clustering algorithm in order to help me short circuit the machine learning model training phase of the project.","SessionType":"General Session","Tags":[".NET","Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"b357b7ce-91ce-4292-90da-0a6956cd6156","FirstName":"Gary","LastName":"Short","GravatarUrl":"//www.gravatar.com/avatar/00a3da9ae48539cbb8a142c0a8415a20"}]},{"Id":7029,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How to embed security into your process","Abstract":"So you’re interested in security. Maybe you’re looking to get into the field. Maybe you understand the importance of security and want to improve in that area. Most developers want to get security right, but where do you start? This talk will provide actionable advice on embedding security into your current process. I will show you the resources, tools, and activities at your disposal. This will make your application more secure and also more efficient. Security vulnerabilities are ultimately just bugs in an application. Catching issues early saves time and money. \r\n\r\nWe’ll talk about what I see developers are doing right. I’ll share the difference between dynamic and static analyzers and where to use them in your process. We’ll talk about tools such as the Zed Attack Proxy, Fiddler, and useful plugins. We’ll also get into activities that will improve security and the process. Activities like Code review, threat modeling, and patching. I’ll highlight the available resources to developers. The Open Web Application Security Project (OWASP) is a big resource for developers. We’ll also dive into some of the leaders in the application security field. The last few years I’ve had the opportunity to work with development teams and help them embed security into their process. This talk is based on those experiences. Allow me to show you what the wonderful world of security and how to embed it in your process.","SessionType":"General Session","Tags":["Security"],"Category":"Security","Speakers":[{"Id":"4f4210f6-2b35-4483-8062-8cd696421f2e","FirstName":"Timothy","LastName":"DeBlock","GravatarUrl":"//www.gravatar.com/avatar/404a12c848bf9a5453a0ef579b9d29c9"}]},{"Id":7275,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How to get started with robotics and IoT at home","Abstract":"Have you ever wished that there was an automated way to alert you that you left the garage door open? Or create a cool digital badge to wear at Codemash? Or create a small robot with your kids? Anyone can create projects like these but getting started can sometimes seem overwhelming if you have no experience with hardware/sensor integration. \r\n\r\nIn this session, I will introduce a variety of low cost, introductory projects and platforms that you can do at home that cross over between robotics and IoT. Many of which are child friendly so you can do them with your family. Then we will deep dive into two projects I have created; a sensor to alert me to open doors and a digital badge. We will go over the platforms, tools and techniques to create each of these at home. By the end of the session you should feel that you have the resources and knowledge to begin to create some of these project at home.","SessionType":"General Session","Tags":["Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"a2b38879-8e47-4093-bbf8-9644fac04f06","FirstName":"Carla","LastName":"Siler-Maddalena","GravatarUrl":"//www.gravatar.com/avatar/365488b842624ac508ff090dfaacaa8d"}]},{"Id":7580,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How to Make a Dysfunctional Team Functional without Resorting to Death and Dismemberment","Abstract":"Everyone has been there at least once; part of a team or group that has become so dysfunctional there seems to be no way to move forward. This type of behavior often leads to deep frustration and despair, as people in these kinds of environments seem to only respond to negative and often dramatic communication. However, this type of dysfunction is not usually the fault of any one person or group of people on the team but is the result of the team's inability to recognize and deal with a needed change in a positive and healthy way. In this interactive discussion, you will use the latest in behavioral change modeling to learn how to identify the stages of change. You will come to understand and leverage the decisional balance shifts at each stage. You will discover ways to help people move forward in modifying unwanted behaviors in a healthy way. And, most importantly, you will find out how to support people in maintaining those behavior changes into the future. This session will give you the tools you need to help move a team from dysfunctional to functional without having to remove a single head. ","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"c82f8b3b-88f4-46f4-b677-dbb665ac04b4","FirstName":"Kim","LastName":"McGill","GravatarUrl":"//www.gravatar.com/avatar/1203f8dfa9ff94405bdf9bed5484a037"}]},{"Id":6838,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"How To Write Really Bad Tests","Abstract":"Most of the time, when you attend a talk, or even a course, on test-driven development, you're taught how to write good--although frequently simplistic--tests. When you go back to the real world and are faced with real-world code where simplistic principles are hard to apply, there's seldom anyone next to you to show you what's a bad test: you have to learn to to identify bad tests the hard way, by writing them and then\r\ndiscovering that they don't test what you think they test.\r\n\r\nBut in this talk, we'll discuss exactly how to write the world's worst tests, with a number of examples from real life and detailed evaluations of just why those tests are so bad. You'll learn fundamental principles for writing bad tests, so that this time when you go back to the world, you can write bad tests with perfect intention and purpose.\r\n\r\nOr not: your choice.\r\n","SessionType":"General Session","Tags":["Testing","Java"],"Category":"Software Quality","Speakers":[{"Id":"6d3e1d7a-7482-4cb8-b131-55b1483f2e6e","FirstName":"Dan","LastName":"Wiebe","GravatarUrl":"//www.gravatar.com/avatar/ab063581ff6b8cc910a03183e5390ac7"}]},{"Id":7775,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"I have people skills! The Importance of Emotional Intelligence and Your Career!","Abstract":"“Developers don’t have people skills!” It may be a stereotype, but for some, it’s a badge of honor to be the the anti-social, soda-drinking hermit that people are afraid to talk to. Movies, TV shows, and comics make light of it, and so do many of us, but it really is no laughing matter. We strive to the be the absolute best we can be at the technical side of things—we buy books, attend conferences and stay up late hacking on our side projects—but do very little to improve our core skills. Unlike IQ, EQ can actively be developed and improved. In this session, you’ll learn about the components of EQ, why they matter, and some strategies you can use to improve your own EQ!","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"8456deff-e95c-4871-94a5-c826e497f20b","FirstName":"Michael","LastName":"Eaton","GravatarUrl":"//www.gravatar.com/avatar/ba53c3fd24ca6360e93209e43278008f"}]},{"Id":7052,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"I'd Hire more Women if they Would Apply!","Abstract":"Maybe you’re the one that’s not really trying? Are you sending signals that say “Dudes Only”?\r\n\r\nAs a Chapter Leader of Girl Develop It (GDI) I have had numerous companies ask me why can’t they get women to apply to any of their openings. They want to diversify but have a “pipeline” problem. My experience as a woman in tech and helping women enter the tech field through GDI tells me otherwise.\r\n\r\nIn this discussion we’ll consider the some of the common reasons women mightnot apply to certain companies and or job postings, examine some of the “red flags” you might not realise you are waving, explore ways to make the hiring process more inclusive and discuss how to determine where the breakdown may be occurring.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"4a466fad-93df-4b69-8d45-a72483eae891","FirstName":"Ronda","LastName":"Bergman","GravatarUrl":"//www.gravatar.com/avatar/fe43183753a401d3b9b92ca452ffee41"}]},{"Id":6823,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Image Recognition with Convolutional Neural Networks using Keras and CoreML","Abstract":"Machine learning is beginning to have a major impact on software development for all platforms and industries. However a life of developing software in a traditional explicit manner is not the best training for developing machine learning algorithms. Software developers faced with problems like \"What is in this image\", \"Is image a face and is it smiling?\", or \"Is this a hot dog?\" would face much difficulty without a machine learning algorithm approach.\r\n\r\nThis session explains what a neural network is in simple terms. That definition is expanded to include Convolutional Neural Networks and why they are great for image recognition. A sample neural network implemented in Keras and trained with the MNIST dataset will be demostrated to recognize handwritten digits. This session will conclude with an sample iOS application using CoreML to run the neural network directly on a phone and recognize digits in real time.\r\n\r\nYou will leave this session with some ideas on how to begin to approach problems best solved with machine learning algorithms.","SessionType":"General Session","Tags":["Mobile","Cloud/Big Data","Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"4c5bfe3c-98e5-4ea9-9750-d47c4ffc5e02","FirstName":"Tim","LastName":"LeMaster","GravatarUrl":"//www.gravatar.com/avatar/12adeabbe92181292c1d34ccf072e1cc"}]},{"Id":7404,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Imposter Syndrome: Overcoming Self-Doubt in Success","Abstract":"High achievers can run headlong into self-doubt, that can cripple forward progress. This talk approaches the issue scientifically, and presents ways to deal with this phenomenon, eventually moving beyond it. Geared for developers specifically, but most can identify with a crisis of confidence. In this session we will bring this sensitive subject to light by exploring:\r\n\r\n* Why having this mindset is detrimental to your career \r\n* Identifying the differences between healthy concern and illogical doubt \r\n* What it actually means to ‘fake it till you make it’ \r\n* How believing something negative about yourself can make it really happen \r\n* Ways to cope once you experience a sincere failure \r\n* Learning to graciously express confidence","SessionType":"General Session","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"20faec1c-c449-486b-9444-775621995702","FirstName":"Heather","LastName":"Downing","GravatarUrl":"//www.gravatar.com/avatar/8cfde963418a7768439eb436bc5ff66f"}]},{"Id":6808,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Improv for Geeks and Those Who Want to Work with Insanely Great Ensembles","Abstract":"This workshop will teach participants some of the basics of improvisation and ideas on how it can be used in at work. There are studies that suggest improv does help us all to become better team members, learners, innovators, and communicators. Companies are using the improv methods as a way of creating more innovative and collaborative teams, for brain storming, and creating a work environment that says “Yes” before “No”. Improv training can help students become better learners and make learning more enjoyable. Come and learn about improv and why companies such as IDEO, Google, Marriott, and Twitter have embraced this to build a culture that promotes better communication, collaboration, and team building. This workshop is an interactive workshop. Please attend and have fun learning how to be more positive, vulnerable, attentive, and playful in your daily grind.\r\n\r\nUpon completion of this course, attendees will be able to\r\n1. Identify areas where improv can be used in their work.\r\n2. Perform some basis improv components.\r\n3. Use improv games as tool to innovate and ideate.\r\n4. Understand how failure fits into life-long learning.\r\n5. Exemplify the “Yes And” mantra in their work.","SessionType":"Pre-Compiler","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"cb0a2ed3-ba20-4e3d-821c-152b35e8ed1f","FirstName":"Russell","LastName":"McMahon","GravatarUrl":"//www.gravatar.com/avatar/120ef58fff48751a0b80ff6192b5fc89"}]},{"Id":7678,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Infrastructure as Code: Automate all the Things!","Abstract":"This hands-on workshop guides participants through the steps necessary to stand up a Linux environment in AWS using terraform. The often confusing and sometimes complicated steps necessary to build out hosts in AWS are reduced to repeatable recipes which are easily stored and in Github. Further provisioning steps will be accomplished using puppet.\r\n\r\nParticipants are expected to bring their own laptops & have AWS accounts created before the workshop begins.","SessionType":"Pre-Compiler","Tags":["Other"],"Category":"DevOps","Speakers":[{"Id":"0c1b5b7d-3492-489d-b542-39d1e516af7b","FirstName":"Franklin","LastName":"D","GravatarUrl":"//www.gravatar.com/avatar/f833f112124f5df09d75c4c700586055"},{"Id":"fbe2b039-ddd8-43d1-8461-0f6cdf52aefe","FirstName":"Kimber","LastName":"Dowsett","GravatarUrl":"//www.gravatar.com/avatar/0575cc480fbc13d50b2056afe3d1635e"}]},{"Id":6917,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Intellectual Property Fundamentals for the Technologist","Abstract":"Today, more than ever, technologists need to be aware of the basics of intellectual property law and its broad effects on the decisions you make every day. There is a prevalent myth that if something is available on the Internet, it must be free to copy and use as we please. Nothing could be further from the truth. In this session, learn some of the core principles of IP, including copyright, trademark, patent, and trade secrets. Become a better informed technologist and gain the confidence to discuss these topics with your professional advisors and with your own team.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"f08c359f-7686-4cf5-afb6-ed953771c941","FirstName":"Jeff","LastName":"Strauss","GravatarUrl":"//www.gravatar.com/avatar/b06d474fb0c5bb9d62fee08782c75d14"}]},{"Id":7514,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Intro to Blockchain: What Is This For and Why It Matters","Abstract":"In the last few years, cryptocurrency and blockchain have attracted the attention - and investment - of major financial institutions as well as governments.  Many who have studied blockchain consider it a \"foundational technology,\" meaning that which enables progress and applications in a variety of problem domains. There are uses for blockchain in particular that could change the way some things are done for the better - the way we purchase things, create contracts, get paid, prove copyright, etc.  The history of blockchain, the basic mathematical principles underlying it, and some code examples will be presented.  Last, the way blockchain is being used now, and the way it could be used in the future will be discussed.","SessionType":"General Session","Tags":["Cloud/Big Data","Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"0380e26c-9598-4252-a151-dd8eed08e804","FirstName":"Shannon","LastName":"Wells","GravatarUrl":"//www.gravatar.com/avatar/a413581d1e9d7c73cfaed87374e3978f"}]},{"Id":7553,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Introducing Domain-Driven Design","Abstract":"Domain-Driven Design (DDD) provides a set of patterns and practices for tackling complex business problems with software models. Learn the basics of DDD in this session, including several principles and patterns you can start using immediately even if your project hasn’t otherwise embraced DDD.\r\n\r\nExamples will use primarily C#/.NET.","SessionType":"General Session","Tags":[".NET"],"Category":"Software Quality","Speakers":[{"Id":"770b8c56-d751-434c-bd27-b19f7df67da3","FirstName":"Steve","LastName":"Smith","GravatarUrl":"//www.gravatar.com/avatar/4ace570c8e5735cf9d99505e376f2997"}]},{"Id":7559,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Introduction to Concurrent Programming with Elixir","Abstract":"Whether you have experienced the awesomeness of developing with Elixir and Phoenix, or simply want to learn how to take advantage of modern multi-core CPUs, the concurrency that Elixir provides is a great start to amping up the performance of your applications. In this hands-on workshop you’ll be introduced to concurrent programming concepts and the methods for implementing these concepts in Elixir. At the end of the workshop you will have built a fault-tolerant, multi-process communication application.\r\n\r\nTopics covered in this workshop include working with multiple processes, the blackboard software architecture, plus Elixir specifics such as GenServers, Supervisors and Workers.\r\n","SessionType":"Pre-Compiler","Tags":["Functional Programming","Other"],"Category":"Programming Principles","Speakers":[{"Id":"fbcf5f72-1a9c-4f01-a61a-004d091146a7","FirstName":"Rob","LastName":"Keefer","GravatarUrl":"//www.gravatar.com/avatar/c2b1d84a1385e58a6591b06c1aa5f63e"}]},{"Id":7199,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Introduction to Kotlin","Abstract":"What is Kotlin?  Kotlin is a statically typed programming language that is built with a focus on being safe, approachable, and pragmatic.  It was started in 2010 by JetBrains, the company behind Intellij Idea and Android Studio, and has grown exponentially over the last few years.  It's recently gained first class support for Spring and Gradle, and is used in the products of big companies like Pinterest, Evernote, Atlassian, and Netflix.  And, if you had any doubts of whether Kotlin was here to stay, Google announced Kotlin as an official language for Android at Google I/O 2017!\r\n\r\nJoin us for an in depth, interactive introduction to the language.\r\nWe'll cover\r\n* Basic syntax\r\n* Nullability\r\n* Object-oriented programming with Kotlin\r\n* Functional programming with Kotlin\r\n* Java interoperability\r\n* Building DSLs","SessionType":"Pre-Compiler","Tags":["Mobile","JavaScript","Functional Programming","Other","Java"],"Category":"Programming Principles","Speakers":[{"Id":"53f6677c-9f80-421d-9a82-9b1e2714cea8","FirstName":"Andrew","LastName":"Fitzgerald","GravatarUrl":"//www.gravatar.com/avatar/31d683674d539576bdbc65043e8a5b74"},{"Id":"9140b58c-f77c-4104-a329-be499e1601b2","FirstName":"John","LastName":"Keyes","GravatarUrl":"//www.gravatar.com/avatar/72946d231c23284695b904016d73a8a8"}]},{"Id":6950,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Introduction to React + Redux + Redux Observables","Abstract":"React is a popular JavaScript framework written by Facebook to deliver highly responsive views. While smaller in scope than a framework like Angular, it integrats well with tooling wlike Redux to enable highly deterministic state management. In this talk, we will explore the ReactJS ecosystem and show how to implement an app that uses Redux to manage state and explain how use of Netflix's ReduxObservables can bring even more flexibility to the existing Redus state management model.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"6b26eebe-40e5-4bcd-9473-6ce8a90877e7","FirstName":"Jason","LastName":"Farrell","GravatarUrl":"//www.gravatar.com/avatar/901485f55d05c778852321548ff6f21f"}]},{"Id":6825,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Java EE 8! Now what?","Abstract":"Java EE 8 has been finalized a few months ago. In addition, Oracle has announced last summer its intention to open Java EE by moving the complete platform to an open source foundation. A bold move that is welcomed by the community and supported by companies such as as Red Hat, IBM and Tomitribe. So it’s clearly an exiting time for Java Enterprise Development!\r\n\r\nThis session will first cover in details the new enhancements of Java EE 8 like the new reactive JAX-RS Client API, Servlet 4’s HTTP/2 support, Bean Validation 2, CDI 2 Asynchronous capabilities, new APIs such as the Security API and the JSON-B API, etc. \r\n\r\nWe will then conclude the session by looking at how the platform will move forward in the context of an open source foundation.","SessionType":"General Session","Tags":["Java"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"e0cda751-3530-4db1-b884-f86315c0faba","FirstName":"David","LastName":"Delabassee","GravatarUrl":"//www.gravatar.com/avatar/9999629551902f546d4817c9840bb9f6"}]},{"Id":7460,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Jewelbots: How to Get More Girls Coding!","Abstract":"Girls just wanna have fun … coding their own programmable jewelry! Jewelbots are the latest in wearable tech with a great feature - they allow you to write your own code. This live demo of programming with Jewelbots will introduce you to the Jewelbots API, highlight fun projects, and talk through tips on teaching and encouraging young women in tech. Loops are easy to understand when accompanied by color coordinated led lights!","SessionType":"General Session","Tags":[],"Category":"Hardware/IoT","Speakers":[{"Id":"f22b27e2-2a2d-4697-aa92-b3d8c62fdf08","FirstName":"Jennifer","LastName":"Wadella","GravatarUrl":"//www.gravatar.com/avatar/4e474e0aa662fd2d3902bcb7720df9d1"}]},{"Id":6745,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"JSON Web Tokens Suck","Abstract":"JSON Web Tokens (JWTs) are all the rage in the security world. They’re becoming more and more ubiquitous in web authentication libraries, and are commonly used to store a user’s identity information.\r\n\r\nIn this talk Randall Degges, Lead Developer Advocate at Okta, will take you on an extensive tour of the web authentication landscape. You’ll learn how JWTs and Sessions work, and why JWTs are the worst possible solution for solving web authentication problems.\r\n\r\nYou’ll also learn the real reason behind JWTs rise to fame, and better ways to secure your websites that don’t involve misplaced hype.","SessionType":"General Session","Tags":["Security"],"Category":"Security","Speakers":[{"Id":"dfc71197-15a9-4cff-8eb6-973e79d743b9","FirstName":"Randall","LastName":"Degges","GravatarUrl":"//www.gravatar.com/avatar/56badf521701d4f9b3a394d3ef6e90c4"}]},{"Id":6809,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"JSR 375: New Security APIs for Java EE","Abstract":"The Java EE Security API 1.0, JSR 375, is part of the Java EE 8 platform.\r\nNew functionality includes authentication mechanisms, identity store access, and a new security context. This session describes the new APIs, takes a detailed look at each API’s syntax and semantics, and provides examples of how they can be used by applications.","SessionType":"General Session","Tags":["Security","Java"],"Category":"Security","Speakers":[{"Id":"d01e6681-8aa4-4ba2-912a-d6ae7dca2281","FirstName":"Ivar","LastName":"Grimstad","GravatarUrl":"//www.gravatar.com/avatar/b489790e1a844284d7cd1fa2cd6e021f"}]},{"Id":7674,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Kinetic Blast!","Abstract":"Walk sit, run, roll, smash, fly. No matter what you do, energy is making it possible. In this energetic session, participants will learn all about kinetic and potential energy and how to differentiate between the two. Kids will team up to create a number of exciting kinetic demonstrations such as EXPLODING NINJA STARS and a GIANT POPSICLE STICK COBRA SNAKE! Everyone will take home enough supplies to recreate these demos at home over and over again. By the end of the hour, participants will be able to teach and demonstrate how kinetic energy works to friends and family. ","SessionType":"Kidz Mash","Tags":[],"Category":"Architecture","Speakers":[{"Id":"90d50fe1-b71f-4b42-82d1-03c64d8e9421","FirstName":"Kim","LastName":"Barry Detwiller","GravatarUrl":"//www.gravatar.com/avatar/a84b8549a4946ee7e018572ba84576ce"}]},{"Id":7728,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Kitchen Chemistry for Kids of all Ages","Abstract":"Most of the time when people think about chemistry, they don't think\r\nabout the Kitchen. Beside the fact that cooking is chemistry, there\r\nare a lot of different experiments which are non-toxic and safe!\r\n\r\nFrom hot snow and super saturated solutions, to chameleon cabbage and disappearing dyes, we will present experiments which kids and parents can do together for **Science**!\r\n\r\nKitchen Chemistry... it's not *just* volcanos anymore.","SessionType":"Kidz Mash","Tags":[],"Category":"Architecture","Speakers":[{"Id":"47df643a-17fd-4e9a-93bb-dfe1eca215b3","FirstName":"Matt","LastName":"Williams","GravatarUrl":"//www.gravatar.com/avatar/2354a803ebd8fe473f97b7dc854e4d94"}]},{"Id":6735,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Kubernetes Development on Azure made easy with Helm and Draft","Abstract":"Microsoft Azure can be used for container deployment in a variety of ways including support for Orchestrators like Kubernetes, Docker Swarm and Mesos. However, the abstraction for app development that support application self-healing, scaling and so on may not be at the right level. Helm and Draft makes this a lot easier.\r\n\r\nIn this primarily demo-driven session, we will cover Kubernetes deployments on Azure with some simple examples. We will look at Helm and Draft and how they can simplify app development significantly, like app. Scaling, rollback, etc. Helm is a tool that streamlines installing and managing Kubernetes applications, like the apt/yum/homebrew for Kubernetes. Draft works with pre-provided charts to deploy the apps. via Helm.\r\n\r\nAfter attending this session, attendees will be able to walk away with a thorough understanding of Draft and Helm and how they can use these tools for deploying apps into Kubernetes clusters.\r\n","SessionType":"General Session","Tags":["Cloud/Big Data","Other"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"b10c520a-3027-40b9-9002-9ac1f46ea398","FirstName":"Raghavan","LastName":"Srinivas","GravatarUrl":"//www.gravatar.com/avatar/cd200f8b764897abcfeafe2f94ccf30f"}]},{"Id":7651,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Leading in a Complex World","Abstract":"As a leader, be it as a manager, team lead, or individual contributor, how do you know which leadership style is best? And how are decisions best made on the team?\r\n\r\n\r\nWhen, if ever, is command and control appropriate or even a “best practice”? What about collaborative consensus building? Should a single expert make the call or should the team agree on everything?\r\n\r\n\r\nThe answer is probably somewhere in the middle.\r\n\r\n\r\nIn this half-day workshop, you’ll explore the complexity of work and examine how it maps to leadership and decision making. You’ll learn when command and control is actually best versus when collaboration is most effective. Finally, Doc and Diane will teach you tools to improve your collaboration efforts.\r\n\r\n\r\nReturn to the office a more aware leader, prepared to help your team have the highest impact through your effective leadership and decision making.\r\n","SessionType":"Pre-Compiler","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"b492cd3c-4d4c-42bc-9605-136c46f613d0","FirstName":"Doc","LastName":"Norton","GravatarUrl":"//www.gravatar.com/avatar/47d958cda2e4ee2f48153396bf9a4ed4"},{"Id":"1453dc65-8f0b-4a59-a6d4-ad896d376fb2","FirstName":"Diane","LastName":"Zajac-Woodie","GravatarUrl":"//www.gravatar.com/avatar/7a7cc58070c90443e3361f8fb1736b55"}]},{"Id":7487,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Learn to impress with magic","Abstract":"Magic is real. No, really. It is. Take a break from computers and video games, and come learn some magic. Performing magic can be the perfect icebreaker, a great way to improve your confidence, and is just plain fun. No boring card tricks everyone has seen before. Learn a few unique tricks you can do anywhere with every day objects.","SessionType":"Kidz Mash","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"418f3bf8-721a-4503-9a56-08ae6b07125c","FirstName":"Nathan","LastName":"Loding","GravatarUrl":"//www.gravatar.com/avatar/15b1e64932f4c501a333fb51ef03ae32"}]},{"Id":7218,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Lessons in Ethical Development I Learned From Star Wars","Abstract":"Star Wars fans may have been excited about last year's release of Rogue One because of the courageous new rebel characters it introduced, but it also provided a lot more insight into the Empire's Corp of Engineers and how their career paths ended with them working on building the Death Star. Engineers and developers, both in Star Wars and in the real world, have a responsibility to think about the ethics of our work and how it might be repurposed. Talking about good and evil can feel a little abstract, but Star Wars provides a great framework for thinking about morality in the context of our lives and work. This session will discuss ways of deciding for yourself what kinds of projects you are or aren't comfortable working and tips for self-accountability in your career, but all through the lens of characters we know and love from Star Wars - because talking ethics doesn't have to be scary or boring!","SessionType":"General Session","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"3bf2da59-fae1-421b-b526-f6e51e23536b","FirstName":"Jameson","LastName":"Hampton","GravatarUrl":"//www.gravatar.com/avatar/5d974858f91e9707648c8d5165f0d74d"}]},{"Id":7463,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Lessons Learned from Making Resilient Apps with Azure Mobile App Services","Abstract":"Users of mobile apps are just that, mobile. And as such, any mobile app that deals with data needs to work reliably in all environments; from a WiFi connection with a high throughput Internet connection, to an intermittent cell connection that keeps dropping - it even needs to work for prolonged periods of offline use. Not only that, when the device gets back online, your app needs to gracefully handle data synchronization and any data conflicts as well.\r\n\r\nIn this session, I will share with you hard earned lessons on how to solve the problem of online/offline data resiliency and synchronization using Azure Mobile App Services based on using it in multiple Xamarin projects. You will learn how to solve the issues that arise with improper client-side data schemas, pushing data to the server without knowing when the connection will be interrupted, and reconciling conflicting data between the server and the app. At the end of this session you'll be well equipped to have your app ready for anything.","SessionType":"General Session","Tags":["Mobile",".NET","Cloud/Big Data"],"Category":"Mobile","Speakers":[{"Id":"916792e9-3147-423a-a042-89a85cf1049a","FirstName":"Matthew","LastName":"Soucoup","GravatarUrl":"//www.gravatar.com/avatar/f7fc4d38218eac26ba060a18209d0fd7"}]},{"Id":6791,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Let’s learn Android! (Kotlin Edition)","Abstract":"Have you ever wanted to learn how to develop mobile applications for Android? Have you heard of Kotlin, the newest JVM language from JetBrains who Google has officially partnered with for Android development? In this workshop, we’ll cover everything you need to get started on your journey to becoming an Android developer with Kotlin. Even if you’re already an Android developer, this workshop will give you a great foundation in a hot new language! Bring your laptop with Android Studio installed and be ready to learn a lot!","SessionType":"Pre-Compiler","Tags":["Mobile"],"Category":"Mobile","Speakers":[{"Id":"fd77b7e1-b671-479c-ae9c-792eda7c9a6e","FirstName":"Michael","LastName":"Yotive","GravatarUrl":"//www.gravatar.com/avatar/ff69aed8978ab32f6fb20fc8857e5b02"}]},{"Id":6933,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Let's Augment Reality in Unreal Engine","Abstract":"This interactive step-by-step guide for getting started with augmented reality in Unreal Engine will give you the foundational knowledge for taking advantage of  ARKit in your next UE Project. Using one of the built-in templates, we’ll walk through the steps of implementing the ARKit plugin, adding an AR Camera, and allowing users to add objects to the screen with a tap.","SessionType":"General Session","Tags":["Mobile"],"Category":"Mobile","Speakers":[{"Id":"54e15efd-9a59-4064-922b-d87f2f777c9a","FirstName":"Ellen","LastName":"Mey","GravatarUrl":"//www.gravatar.com/avatar/8b80bc97dc13ef43d058cb98e1c6f6c6"}]},{"Id":7392,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Leveraging Spring Cloud Consul for Discovery","Abstract":"Twelve Factor Microservices have needs no matter if you run them in the cloud or on premise.  Externalized configuration, including service location, can be a barrier to entry.  Join this session and \"discover\" how to  leverage Consul and Zuul to achieve several of the 12 factors transparently.  This session will include working code (Java and Kotlin) and exploring Spring Cloud Consul, Configuration, and Zuul.\r\n","SessionType":"General Session","Tags":["Cloud/Big Data","Other","Java"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"3e4b2508-1d6e-46b4-83a1-a5f0e9baaf59","FirstName":"David","LastName":"Lucas","GravatarUrl":"//www.gravatar.com/avatar/0ce4bb9448103f7554520903f53c16bd"}]},{"Id":7614,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Machine Learning at Scale, How to Keep Learning as Your Data Keeps Increasing","Abstract":"Every year at Codemash, there are more sessions, that each keep getting more well attended, with people learning about Machine Learning. In this talk, we're going to address a challenge that's all too easy to encounter, the data you're using keeps growing and gets bigger than what you can handle on a single machine. Learn first about some of the key challenges with scaling machine learning to big data, and then  what tools and techniques you can use to solve it. We’ll cover software such as Spark for data intensive processing, and deep learning frameworks like Tensorflow, Chainer, and Cognitive Toolkit, and then we’ll talk about the latest hardware advances in GPUs for speeding up processing.  This talk will use Azure for processing, but the approach is applicable on-premises and other clouds. ","SessionType":"General Session","Tags":["Cloud/Big Data","Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"89bed929-527c-4a22-9e35-93c3ce0d52c7","FirstName":"Matt ","LastName":"Winkler","GravatarUrl":"//www.gravatar.com/avatar/3982b40e2344317beb285fa63a61f4bc"}]},{"Id":7098,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Machine Learning with R","Abstract":"R is a very popular open-source programming language for machine learning. Its interactive programming environment and powerful data analysis capabilities make R an ideal tool for machine learning. \r\n\r\nThis workshop will provide an introduction to the R programming language using RStudio. In addition, we will demonstrate how we can use R to train a series of machine learning models. We'll cover classification, regression, clustering, anomaly detection. Finally, we’ll learn how to deploy these models to production to make predictions given new data.","SessionType":"Pre-Compiler","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"963d2e51-6196-41bd-a43b-3a026bd8062c","FirstName":"Matthew ","LastName":"Renze","GravatarUrl":"//www.gravatar.com/avatar/e16cd70c4199fb10992a1e26d84249f7"}]},{"Id":7544,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Machine Learning: Taking your ML Models to Android and iOS","Abstract":"Once you've developed a kickass Machine Learning model, you need a way to get that model to your computing devices (phones) to start doing your predictions!  Most Machine Learning projects in production will 'train' the model on cloud servers, then 'deploy' the model to an API server or mobile device.  This session will introduce the attendee on using TensorFlow Serving and Apple CoreML to deploy Machine Learning models to a mobile app.","SessionType":"Pre-Compiler","Tags":["Mobile","Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"177f9509-11a9-4fe5-a5ec-4046c5cd6c4c","FirstName":"Wes","LastName":"Eklund","GravatarUrl":"//www.gravatar.com/avatar/b2f9ca13bfe071043772b08c4725f673"}]},{"Id":7494,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Making Accessibility Testing Suck Less: An Intro to Pa11y. ","Abstract":"Often the hardest part of any problem is simply how to get started. On the ever-evolving web accessibility is a matter of ongoing importance: the brilliance of your code or sleekness of your UI is inconsequential if your app or website is unusable to some of your users. With a million other issues already on your plate how do you find a way to started on accessibility testing? Pa11y to the rescue! Pa11y is a lightweight command-line accessibility testing tool with enough flexibility to integrate results into your current testing process. This talk will explain what pa11y does and does not cover, review examples of both command line and scripted usage, dive into the pa11y webservice and show how to modify output to work in your current testing setup. Bonus content: how to convince the rest of your team and business why accessibility is worth prioritizing and how getting started with low-hanging fruit can vastly improve your product. ","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"f22b27e2-2a2d-4697-aa92-b3d8c62fdf08","FirstName":"Jennifer","LastName":"Wadella","GravatarUrl":"//www.gravatar.com/avatar/4e474e0aa662fd2d3902bcb7720df9d1"}]},{"Id":7667,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Maturing the Enterprise Quality Practice","Abstract":"The two primary contributors to poor quality in an organization are lack of involvement by management and lack of knowledge about quality. Without the right processes and people, quality will be either a cost center or forgotten component by development. To achieve organizational success, enterprise quality must take action to build quality from the top down. Management must accept responsibility for the quality practice within the organization and promote it across the organization. Everyone is responsible for quality, not just QA. The journey is fraught with obstacles -- maturing the quality practice of an organization builds long-term success with robust processes and well-trained employees.","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"3119f670-df4c-429b-921d-89d2162d4586","FirstName":"Sarala","LastName":"Pandey","GravatarUrl":"//www.gravatar.com/avatar/225cf0fa5a076d3d6f56346ad80fee7e"}]},{"Id":7528,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Megahertz, Gigahertz, Registers and Instructions: How does a CPU actually work?","Abstract":"For decades, we’ve been creating ever higher abstractions between ourselves and the computing hardware we’re programming, but in the end whether you’re writing JavaScript, Haskell, or Python it all comes down to 1’s and 0’s running through hardware patterns that were well understood twenty years ago.\r\n\r\nWe’ll walk through the fundamentals of how CPUs “think” in an accessible way (no engineering degree required!) so you can appreciate the marvel that is the modern CPU, be it in a server data center or your fridge at home.  You’ll learn how a CPU turns the code we feed it into actions, what’s the big difference between an ARM and an Intel processor, how CPUs constantly optimize work for us, and where is it all going for the next few years.\r\n","SessionType":"General Session","Tags":["Hardware"],"Category":"Hardware/IoT","Speakers":[{"Id":"7c05528e-9c9e-4643-ae9d-44c2dd0d6ebc","FirstName":"Kendall","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/a87b3e5d0ca534464f3f5d302a3456ce"}]},{"Id":6750,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Mocking .NET Without Hurting Its Feelings","Abstract":"Unit testing has become an accepted part of our lives as .NET programmers. To help focus our tests to only the code we want to validate, Mocking Frameworks are a powerful tool in our toolbox. Like many tools, if you have an understanding of how the tool works under the hood, you can bend it to your will (and also know where it’ll break if you bend too much).\r\n\r\nIn this session, you’ll learn about the two main types of mocking frameworks: constrained frameworks (like RhinoMocks and Moq) and unconstrained frameworks (such as Typemock Isolator and Telerik JustMock). I’ll dig into how the two actually do their magic and we’ll discuss the pros, cons, and limits of both. We’ll look at examples of how to use the frameworks in your tests, mocking out dependencies from your own code and even third-party logic.\r\n\r\nYou’ll get the most out of this session if you’re comfortable reading C# code and have a general understanding of class inheritance in .NET, along with some experience writing and running unit tests. Prior experience using mocking frameworks is not necessary.","SessionType":"General Session","Tags":[".NET","Testing"],"Category":"Software Quality","Speakers":[{"Id":"226902de-b4b9-40fb-8f3f-5ad3443cef3a","FirstName":"John","LastName":"Wright","GravatarUrl":"//www.gravatar.com/avatar/85a588486bf00a2454d026a9bdf16e07"}]},{"Id":7737,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Modern CSS","Abstract":"## Take your CSS skills to new heights with today’s techniques.\r\n\r\nIt’s no joke that things in the web move fast. A few years ago, staying on the forefront of CSS was knowing the vendor prefixes for the latest CSS3 implementations and poking around at Sass or LESS. Now, in addition to the preprocessors, we have postprocessors, build systems, and CSS components—not to mention the latest and future CSS features! In this workshop, we’ll help get you up to speed on these various approaches to writing CSS, their advantages, and how you can start using them. Whether you're a regular CSS practitioner ready to level up or a backend dev expanding your skillset, we’ll cover all you need to organize, manage, and write modern CSS.\r\n\r\n### We’ll cover many of the new tools, practices, and techniques prevalent in CSS today.\r\n* Naming conventions (BEM, SMACSS, etc.)\r\n* CSS processors (Sass, PostCSS, Autoprefixer, etc.)\r\n* Build tools\r\n* Mixins and Functions and Plugins\r\n* New CSS features and how to use them (plus previews of CSS4 features)\r\n* Tips and tricks to common CSS problems\r\n\r\n### What to bring:\r\n* A practical knowledge of CSS—we’ll be diving into some advanced areas in this workshop.\r\n* A CodePen.io account (they’re free!)—we’ll be putting several concepts in practice, utilizing CodePen in some cases.\r\n* Optionally, we have examples of more advanced tools—in which case, it would be helpful to have Node.JS installed beforehand.\r\n* And a computer, of course!","SessionType":"Pre-Compiler","Tags":["Design (UI/UX/CSS)"],"Category":"Web/Front-End","Speakers":[{"Id":"9c0c189c-776e-4e53-8b9a-306273f0baa4","FirstName":"Philip","LastName":"Zastrow","GravatarUrl":"//www.gravatar.com/avatar/3211e2effadaf8881d1a6cb2dcde890a"},{"Id":"4df51560-055e-425d-bf6b-4a0ff3bc9f25","FirstName":"Catherine","LastName":"Meade","GravatarUrl":"//www.gravatar.com/avatar/6a332058cb8888f05fa6a981a55a0219"}]},{"Id":7550,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Most Useful Design Patterns","Abstract":"Design patterns provide common templates for solving similar problems. They also provide a higher-level language for software developers to use to describe approaches they might choose when designing part of an application. This session introduces and applies several patterns useful to web application developers.\r\n\r\nExamples will primarily use C#/.NET.","SessionType":"General Session","Tags":[".NET"],"Category":"Programming Principles","Speakers":[{"Id":"770b8c56-d751-434c-bd27-b19f7df67da3","FirstName":"Steve","LastName":"Smith","GravatarUrl":"//www.gravatar.com/avatar/4ace570c8e5735cf9d99505e376f2997"}]},{"Id":7317,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Movie Making: Script to Magic","Abstract":"Do we not see it every time we watch a movie?  It can be in the form of a cute animated talking mouse, an intricately-designed costume, or a well written line.  You are left in awe of the magic you can only see on screen.  But what if you could produce the things that make you like movies?  Daniel Wood will guide you to write, act, film, and edit a short movie based off \"*The Three Little Pigs*\".  In this session, you and your team mates will make a movie, learn more about the process of movie making, and get an introduction to editing your own videos.  So, if you want to get a career in movie making, or simply want to make better YouTube videos, this session is for you!  (I suggest this session to 6-12-years old.) ","SessionType":"Kidz Mash","Tags":["Other"],"Category":"Design (UI/UX)","Speakers":[{"Id":"11df87c5-0f19-493a-92a7-f8b175c51aee","FirstName":"Daniel","LastName":"Wood","GravatarUrl":"//www.gravatar.com/avatar/ce96486a0a3db2ee45f45d4802d20cc4"}]},{"Id":6972,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"My First Website ","Abstract":"Behind every great web developer is a ‘first website’ of their very own. Come learn the fundamentals of building a webpage by building one! Everyone will get a take home sheet of commands to continue the fun at home. This session is recommended for ages 10+.\r\n\r\nNote: Laptop with a text editor (Notepad for Windows / TextWrangler for Mac) is recommended.\r\n","SessionType":"Kidz Mash","Tags":[],"Category":"Web/Front-End","Speakers":[{"Id":"0b5ab315-3912-45c1-83bc-48f59515e66f","FirstName":"Kim","LastName":"Arnett","GravatarUrl":"//www.gravatar.com/avatar/b75a6021716a4dadf2edce7d882e4796"}]},{"Id":7310,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Next Evolution of Unit Testing: JUnit 5","Abstract":"With recent updates to the Java language specification (most notably lambdas) the JUnit framework has been updated to take advantage of these changes. Have you ever wished you could better partition your tests? Or add metadata to your tests beyond categories, test names, or comments? This talk will explore JUnit 5 with a focus on making unit testing easier, more efficient, and more structured, using test factories, dynamic tests, default interface methods, custom annotations, and more. Finally, we will look at migrating from JUnit 4 and ways that JUnit 5 features can make taming unruly legacy test suites easier.","SessionType":"General Session","Tags":["Testing","Java"],"Category":"Programming Principles","Speakers":[{"Id":"86df42cb-3f25-4235-a0e7-43aa4815d0c8","FirstName":"John","LastName":"Pendexter","GravatarUrl":"//www.gravatar.com/avatar/8c231a92b1adb958d5cb941ca2348de4"}]},{"Id":6960,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"NoSQL Shouldn’t Mean NoSecurity","Abstract":"As NoSQL databases increase in popularity, they also increase in popularity with hackers. NoSQL databases are vulnerable to traditional attacks like SQL injection (yes, really). Further, the rush to productivity leaves some of these databases insecure-by-design. As a result, ransom notes have plagued databases like MongoDB, ElasticSearch, Hadoop, and CouchDB. This session demonstrates security mistakes and prevention. We'll also look at what NoSQL vendors are doing to mitigate future attacks. Both devs and devops should come to this session, because the last thing either of you want to see is \"SEND 0.2 BTC TO THIS ADDRESS 1zaGVjj9NcyvDLyYpCh33Msq TO RECOVER YOUR DATABASE!\"","SessionType":"General Session","Tags":[".NET","Cloud/Big Data","Testing","Security"],"Category":"Security","Speakers":[{"Id":"9427eb51-8f41-40cb-a9b1-37ca192003b9","FirstName":"Matthew","LastName":"Groves","GravatarUrl":"//www.gravatar.com/avatar/4b0eb78ea5852ee0f54bfd6a2252c99e"}]},{"Id":7212,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Of Abstraction and Precision","Abstract":"> The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.\r\n> – Edsger W. Dijkstra\r\n\r\n> The entire history of software engineering is that of the rise in levels of abstraction.\r\n> – Grady Booch\r\n\r\nWe live in a world dominated by a virtual machine (the JVM) and a virtual platform (AWS). These are concrete abstractions, despite the apparent contradiction in terms.\r\n\r\nVirtualization, however, is just one form of abstraction. We'll talk about the evolution of programming languages, networking, hardware, systems orchestration... and while abstraction will undoubtedly be extolled as a good thing™ we'll discuss the sea monsters that dwell hidden behind the curtain, to mix some abstract metaphors. What is a leaky abstraction and what can you do about it?\r\n\r\nThis is, indeed, an abstract discussion; practical applications of this talk are left as an exercise for the attendee.","SessionType":"General Session","Tags":["Hardware","Cloud/Big Data","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"a08c51d6-4ede-454b-b202-0c24d9d2f313","FirstName":"John","LastName":"Daily","GravatarUrl":"//www.gravatar.com/avatar/974cabfa92172620e5011867df9ffffb"}]},{"Id":7619,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"One Million Little Gophers: Building a Concurrent Web Service Using Go","Abstract":"Concurrent programming is in! Delegating work to many running processes at once can increase most programs' performance and scalability. Many languages have libraries or frameworks that provide tools for writing concurrent code, but far fewer bake concurrency right into the language. The Go programming language not only does, but also provides synchronization across processes when needed through messaging. Go's channels and goroutines provide powerful, scalable, and convenient concurrency without having to download countless third-party packages. These features of the language make concurrent Go programs enjoyable to write and doubly efficient--both in developer time and actual program execution. In this session, attendees will discover the advantages of using Go through the creation of a simple, concurrent web service, and will walk away ready to harness the power of goroutines for fun, productive coding and performant programs.","SessionType":"General Session","Tags":["Other"],"Category":"Programming Principles","Speakers":[{"Id":"ccde9c02-dce8-4f79-85cd-b2c07d502f56","FirstName":"Josiah","LastName":"Sleppy","GravatarUrl":"//www.gravatar.com/avatar/1f0a87088840f4706f567d6da674fcc1"}]},{"Id":7743,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Operating Petabyte-Scale Distributed Storage Systems with Human-Scale Humans","Abstract":"When operating a data system every byte is sacred. Trillions of bytes represent a trillion opportunities to ruin somebody's day. It's critical to manage data systems with the greatest of care. Your business depends on it.\r\n\r\nIn this talk you'll learn how we operate a large and growing storage infrastructure at Stripe. We'll talk about the tools and processes that lend us confidence to stay up to date with the latest software versions, migrate databases with billions of entries, and troubleshoot performance issues.\r\n\r\nYou should expect to walk away having learned important patterns that can apply to managing data systems at any scale. Every byte, no matter how small, is important to someone.","SessionType":"General Session","Tags":[],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"6a741768-6401-41f1-b2f7-71a22d36d054","FirstName":"Dusty","LastName":"Burwell","GravatarUrl":"//www.gravatar.com/avatar/6343ef938226f72218388cb8f0eec754"}]},{"Id":6752,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Patterns for Reusable JavaScript Components","Abstract":"Today's popular JavaScript frameworks offer powerful models for creating components. But are you designing your components for reuse?  Whether you're working in Angular, React, Vue, or the long list of alternative libraries, there are universal principles and practices to consider for creating truly reusable components. This session explores  hard lessons learned from publishing a suite of reusable JavaScript-based components at Cox Automotive. It's time to stop reinventing the wheel!\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"1e3a9d81-bd1c-47ad-b068-3c2064f62050","FirstName":"Cory","LastName":"House","GravatarUrl":"//www.gravatar.com/avatar/09e16ce7b4bc21025c9940f5a167cfa9"}]},{"Id":6886,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Plug and Play JavaScript Components with Riot.js","Abstract":"There are many web applications where a full, one page UI doesn't make sense, but we would still like to use self contained JavaScript components to modularize and modernize its functionality. Enter Riot.js, a component-based framework that lets you use regular old HTML, JavaScript and CSS to create reusable UI components and fits into a standard multi-page app. We'll look at how Riot.js fits into a typical web application and we'll build a couple of dynamic UI components and get them to communicate with each other.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"24f0b931-4d91-4671-b399-496c8aa97d8a","FirstName":"Joe","LastName":"Erickson","GravatarUrl":"//www.gravatar.com/avatar/c739f97f8fe7f9a22d3357d658e86ebd"}]},{"Id":7333,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Pony Up To The Bar -- A New Actor Model Language","Abstract":"Pony is an actor based language that is one of the newest on the block.  While the language is still experiencing growing pains, it provides a strongly typed, capabilities secure, actor model language.  While object oriented, it also provides some features found in functional languages today, which we'll explore.  In this session, we'll walk through a number of Pony examples to demonstrate the language and also to get you interested in this new and exciting language.  At the end of this session, you'll have a great understanding of Pony and will be able to take it for a spin right afterwards.","SessionType":"General Session","Tags":["Other"],"Category":"Programming Principles","Speakers":[{"Id":"7557c870-5bdc-46fb-a675-bfa87c3e92cc","FirstName":"David","LastName":"Hoerster","GravatarUrl":"//www.gravatar.com/avatar/a007ab3dc89f80c08655bc626fb37fc7"}]},{"Id":7693,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Ports & Adapters Architecture with Java and Spring Boot","Abstract":"In less than an hour, you'll learn the basics of the Ports & Adapters architecture (also called \"hexagonal\") and how it helps keep your code clean and well-tested. You'll find out how it compares with traditional tiered and horizontally layered architectures and why you might want to move towards Ports & Adapters instead.\r\n\r\n\r\nThis talk will be full of working Java code (using Spring Boot) that implement this architecture, using RESTful APIs, a Web UI, database persistence, and calling out to external APIs. You'll learn how each part fits nicely into place in the Ports & Adapters architecture.","SessionType":"General Session","Tags":["Java"],"Category":"Architecture","Speakers":[{"Id":"eb0a5953-901e-4dde-84fe-fbfe1d6957d8","FirstName":"Ted","LastName":"Young","GravatarUrl":"//www.gravatar.com/avatar/b0715daff24c1c625733473fae5783d8"}]},{"Id":7418,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Practical Functional Java","Abstract":"You've read all about Elixer, Haskell, Clojure, etc. and are really excited by functional programming.  But in your day job, you are a Java programmer.  Can functional concepts be applied in a language like Java that is not a purely functional language?  The answer is a resounding \"yes\"!  If you will embrace functional concepts in your every day work, then your code will be cleaner, smaller, and easier to maintain.\r\n\r\nIn this pre-compiler, we will embark on a successive refinement exercise to refactor a horrible deeply nested looping monstrosity into something more elegant and functional.  Along the way, we'll learn about the features in Java that are moving Java into the modern functional world including:\r\n\r\n- Streams\r\n- Map, Filter, Reduce\r\n- Optionals\r\n\r\nThe code exercises for this session will be in Java, but the concepts are equally applicable for JavaScript and C#.","SessionType":"Pre-Compiler","Tags":["Java"],"Category":"Programming Principles","Speakers":[{"Id":"1c13fb09-cee3-4469-a3a6-6528f54d13df","FirstName":"Jeff","LastName":"Butler","GravatarUrl":"//www.gravatar.com/avatar/9184eddbe33080981979ee567a6a8766"}]},{"Id":7361,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Press Start: Game Development for the Uninitiated ","Abstract":"What inspired you to start programming? I wanted to build games. What was your first program? A game. Are you building games now? No. Why not?\r\n\r\nIt has never been easier to begin building games. The paths to entry are numerous, the resources are abundant, and the benefits are many. A hobby in game development provides an outlet for artistic expression, an opportunity to geek out about math or physics, the chance to make a little money on the side, and, if nothing else, a concrete way to improve your skills as a professional software developer.\r\n\r\nThis session seeks to inspire you to adopt a hobby in game development, and will provide you with a variety of methods and resources for doing so. We will discuss why, as a professional software developer, it may be worth taking a look at game development, and will cover such topics as game jams, fantasy consoles, engines and frameworks, tools for creating graphics and audio, resources for learning, channels for distributing your game, and more.","SessionType":"General Session","Tags":["Soft Skills / Business","Other"],"Category":"Programming Principles","Speakers":[{"Id":"d147d756-164a-43bb-ae5c-944b40166fe0","FirstName":"Shawn","LastName":"Rakowski","GravatarUrl":"//www.gravatar.com/avatar/21d1ff9b3faa8c36d005ab2874974f13"}]},{"Id":7116,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Prod Deployments: What should be the easiest part of your day.","Abstract":"Deployments to production can be a point of fear and tension. We cover strategies that used at Kroger to move new features and fixes to the customer quickly and safely.  Industry techniques increased production releases from once a quarter in the middle of the night to dozens of daytime production releases every day. We cover our use trunk based development, dark environments, blue-green deployments, hot toggles, and QA in production to reduce risk.   We show how advanced metrics and multi-variate testing strategies can advance you to understand the true value of production changes to customers.","SessionType":"General Session","Tags":[],"Category":"DevOps","Speakers":[{"Id":"36e05280-a3a9-4435-82f6-50afbed4a388","FirstName":"Stephen","LastName":"Shary","GravatarUrl":"//www.gravatar.com/avatar/3d322357152119a5b27e61db7dd636c0"}]},{"Id":7581,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Project Vienna: Machine Learning Process For Engineers","Abstract":"Project Vienna is a project that is still NDA, but it will be made public at Microsoft's Ignite conference (last week of Sept 2017).  It involves machine learning.  It is also cross-platform and can be used with multiple languages, like R and Python, so it seems like a good fit for CodeMash.  ","SessionType":"General Session","Tags":["Cloud/Big Data","Other"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"3bae9249-e692-4a7d-867b-0c1330a45db4","FirstName":"Jennifer","LastName":"Marsman","GravatarUrl":"//www.gravatar.com/avatar/36fa3107bdff153bf46f9e80aefc9fbd"}]},{"Id":6859,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Prototype, Collaborate, Innovate","Abstract":"A UX Story from the worlds most used white labeled travel site. How we use Sketches, Prototyping and Innovation Games to collaborate with our customers and experience innovation breakthroughs. If a picture is worth a 1000 words, then a prototype is worth 1000 meetings! Come learn keys to better prototypes and to working across business boundaries.\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Soft Skills / Business"],"Category":"Design (UI/UX)","Speakers":[{"Id":"65993fe1-3960-4d31-acbb-0fbd6e635cc6","FirstName":"Caleb","LastName":"Jenkins","GravatarUrl":"//www.gravatar.com/avatar/185b331beb8118f6de5a2e9d53017907"}]},{"Id":6909,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Psychology Behind Compelling Apps","Abstract":"An unfortunate truth about software is that most users don't stick with new apps very long. Sadly, there is no one secret, but addressing human psychology can make your code more compelling for users. This session examines the human psychology behind what makes some software stick and become part of our daily routine. As a developer, you need to employ these ideas when designing features you plan to implement or products you plan to launch. This session covers three separate techniques rooted in psychology you can implement to make your user's experience awesome and keep them coming back.\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Mobile"],"Category":"Design (UI/UX)","Speakers":[{"Id":"c709db38-9d29-493c-bdeb-445543a17cdd","FirstName":"David","LastName":"Truxall","GravatarUrl":"//www.gravatar.com/avatar/a7079b43c1fd0285cb7d9f363069382a"}]},{"Id":7145,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Public Speaking without Barfing on Your Shoes","Abstract":"Sooner or later, we are called on to speak. Out loud. In front of an audience. We may have to present something to our team, our leadership, or even a larger group of (--gulp--) mostly strangers. Public speaking strikes fear into the hearts of nearly everyone... especially those of us who are very shy. Imagining people in their underwear does not help.\r\n\r\nI have been speaking at conferences, user groups, and meetups for many years. However, as a shy introvert, this is not something that comes natural to me! If I can do it, so can you! In this fun and light-hearted talk, I want to share with you what I have learned from my hard-won experience. Introverts and extroverts alike will walk away with practical tips on preparing and giving effective presentations.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"6ae477dc-60fc-4e91-9b11-8c2bebca4885","FirstName":"David","LastName":"Neal","GravatarUrl":"//www.gravatar.com/avatar/3ab1249be442027903e1180025340b3f"}]},{"Id":7276,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Pumping up Python modules using Rust","Abstract":"If you’ve spent much time writing (or debugging) Python performance problems, you’ve probably had a hard time managing memory with its limited language support. \r\n\r\nIn this talk we venture deep into the belly of the Rust Language to uncover the secret incantations for building high performance and memory safe Python extensions using Rust. \r\n\r\nRust has a lot to offer in terms of safety and performance for high level programming languages such Python, Ruby, Js and more with its easy Foreign Function Interface capabilities which enables developers to easily develop bindings for foreign code. \r\n\r\nKeywords: Python, Rust,  System programming, Language, Rust FFI \r\n","SessionType":"General Session","Tags":["Functional Programming"],"Category":"Software Quality","Speakers":[{"Id":"2fddfe7c-17f5-4ad6-bb9d-fa62465ddd1c","FirstName":"Vigneshwer","LastName":"Dhinakaran","GravatarUrl":"//www.gravatar.com/avatar/5937108d7f8720d6e441e3c74e5fe517"}]},{"Id":6783,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Putting the Visual into the Visual Studio Debugger","Abstract":"You've hit your Visual Studio breakpoint, opened the watch window and you're looking at a wall of nested collections and object graphs.  You know the data you want is in there, but digging it out of the built-in data table UI feels like the \"doing it the hard way\" part of an infomercial.  \r\n\r\nNow, imagine being able to shape your data the way that makes it easiest to understand and debug, limited only by your imagination (and time, of course).\r\n\r\nIn this session, we'll take a look at the Visual Studio Debugger Visualizer feature, available in all version of Visual Studio (even the free one!) that lets you create your own graphical display of your .NET data structures while debugging. Shape the data the way you want to make it easier to digest -- hide unimportant info, quickly expose deeply nested elements, compare large object graphs, or even instantly search Stack Overflow for help with an Exception.  Display it in whatever way is best for your data and your understanding of it, act on the data and even modify the it from your custom view. We'll talk through the options available to you, some of the limitations, and security risks/considerations involved.\r\n\r\nThis session doesn't require much deep knowledge of .NET, but the examples will primarily be in C#, WinForms and WPF.  You don't need to know any of those beyond what you can Google or find on Stack Overflow, though the results will be useful to novices and well-weathered developers alike. (Note: While there is support for C++ visualizers, that won't be covered in this session.)\r\n","SessionType":"General Session","Tags":[".NET"],"Category":"Software Quality","Speakers":[{"Id":"226902de-b4b9-40fb-8f3f-5ad3443cef3a","FirstName":"John","LastName":"Wright","GravatarUrl":"//www.gravatar.com/avatar/85a588486bf00a2454d026a9bdf16e07"}]},{"Id":6954,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Querying NoSQL with SQL: HAVING Your JSON Cake and SELECTing it too","Abstract":"Until recently, agile business had to choose between the benefits of JSON-based NoSQL databases and the benefits of SQL-based querying. NoSQL provides schema flexibility, high performance, and elastic scaling, while SQL provides expressive, independent data access. Recent convergence allows developers and organizations to have the best of both worlds.\r\n\r\nDevelopers need to deliver apps that readily evolve, perform, and scale, all to match changing business needs. Organizations need rapid access to their operational data, using standard analytical tools, for insight into their business. In this session, you will learn the ways that SQL can be applied to NoSQL databases, and what additional features are needed to deal with JSON documents. SQL for JSON, JSON data modeling, indexing, and tool integration will be covered. This session will focus mainly on CosmosDb and Couchbase, but it will also touch on emerging relational approaches to JSON data.\r\n","SessionType":"General Session","Tags":[".NET","Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"9427eb51-8f41-40cb-a9b1-37ca192003b9","FirstName":"Matthew","LastName":"Groves","GravatarUrl":"//www.gravatar.com/avatar/4b0eb78ea5852ee0f54bfd6a2252c99e"}]},{"Id":7156,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"R Performance (It’s not R, it’s You)","Abstract":"Maybe another language has caught your eye because “it deals with big data better”. Or you just think R is slow and showing its age. But perhaps these aren’t irreconcilable differences. In fact, its ability to do operations on entire vectors or frames of data is relatively rare among languages. There are a number of techniques for dealing with common performance issues in R. Come explore some of the options available to speed up your code and deal with larger data sets.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"afdd2428-10c7-4392-af03-ae467a114a50","FirstName":"Tim","LastName":"Hoolihan","GravatarUrl":"//www.gravatar.com/avatar/55bad7184ad0cf4c6331d15b9a54e10f"}]},{"Id":6786,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Real time traffic visualization in a microservices world ","Abstract":"It's been a few years since people started to move into microservices architectures. By now, we've learned that we require several things in order to be production-ready for them. \r\n\r\n\r\nYou probably already have a lot of tooling such as externalized configuration, service discovery, distributed tracing, logging and others but...  How do you know that everything is fine after you roll out a new deployment? Or... How do you start diagnosing an incident in production in the middle of the night? \r\n\r\n\r\nWouldn't be nice to have a tool that allows you to see how real traffic flows within your microservices and external dependencies?\r\n\r\n\r\nThis talk will have a live demo that goes through all the steps  to use Hystrix in a JVM-based app and expose those metrics via Turbine for Vizceral. \r\n\r\n\r\nVizceral is a tool from Netflix to visualize traffic between components. This data needs to be fed from somewhere however. Hystrix provides fault tolerance, and a nice stream of all metrics. Turbine aggregates the hystrix streams per cluster.","SessionType":"General Session","Tags":["Java"],"Category":"Architecture","Speakers":[{"Id":"ffaf3bab-ca87-4519-bcaf-204928666552","FirstName":"Roberto","LastName":"Perez Alcolea","GravatarUrl":"//www.gravatar.com/avatar/ae03f5244dfbbd216864590baacfd130"}]},{"Id":7504,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Real-world React from the ground up","Abstract":"Learning React can get awfully complicated. Flux, Redux, server side rendering, React Native, higher order components, functions as child components, CSS in JS, and more. Let's simplify the equation: build a real world application using React and Redux, learning patterns and practices to make reusable, composable components as we go. Whether you are brand new to React or have some experience with it, you should walk away with a solid understanding of how to compose React applications.","SessionType":"Pre-Compiler","Tags":["Design (UI/UX/CSS)","JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"418f3bf8-721a-4503-9a56-08ae6b07125c","FirstName":"Nathan","LastName":"Loding","GravatarUrl":"//www.gravatar.com/avatar/15b1e64932f4c501a333fb51ef03ae32"}]},{"Id":6934,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Rediscovering XP: Extreme Programming.  Retro? or Resurgent?   ","Abstract":"In the late 1990's and early 20-aughts **XP: Extreme Programming** was disrupting software processes everywhere.  The Values, Principles, and Practices have guided many software teams to success.   Since then the term \"Agile\" was coined and has come to represent a variety of practices.   In talking to team members, I discovered that many people no longer know what the original XP was about.   Still today, successful teams are using some or all of what XP introduced.   If your team is struggling, maybe you are missing an important part of the puzzle.  This talk will be the story of XP and a review of the Values, Principles, and Practices.  We will talk about how the Practices fit together and reinforce each other.  And how some teams are missing either the Buisiness Practices or the Engineering Practices of XP.  ","SessionType":"General Session","Tags":["Testing","Soft Skills / Business"],"Category":"Programming Principles","Speakers":[{"Id":"178fc3e6-7b62-41f4-92a9-59287d742709","FirstName":"Mark","LastName":"Windholtz","GravatarUrl":"//www.gravatar.com/avatar/838857ba38a377b39d1b5693bd0b8021"}]},{"Id":7294,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Refactoring a Legacy Application with ReactJS","Abstract":"Testability, UI consistency, code reuse, maintainability. These are the properties of a healthy codebase… and what most legacy applications are lacking. If you’re struggling with an application on life support, ReactJS can breathe new life into your front-end. Attendees will learn a proven approach for implementing ReactJS in a jQuery application and the problems you are likely to face along the way. This session covers why you would consider a refactor, setting goals for your desired outcome, an approach to adding ReactJS incrementally, and managing application state.","SessionType":"General Session","Tags":["JavaScript"],"Category":"Web/Front-End","Speakers":[{"Id":"aa10f034-61fe-4460-9f95-7e802a8ba08a","FirstName":"Ali","LastName":"Orlando","GravatarUrl":"//www.gravatar.com/avatar/ee817eab87e44ee3ff93013a7da3774d"}]},{"Id":6885,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Restful Services with the Play Framework, MySQL, and a Security Level with JWT","Abstract":"The Play Framework, based on a lightweight, stateless, web-friendly architecture, is a great framework for easier, faster, complex web development, including RESTful services, and is reactive. Based on Scala, you can choose between using Java or Scala for development. This session explores Play framework characteristics, how to create a RESTful service, connecting Play to a MySQL database, and adding a security level with JWT (JSON Web Token).","SessionType":"General Session","Tags":["Security","Other","Java"],"Category":"Web/Front-End","Speakers":[{"Id":"5ee1cae5-780c-46e0-bead-b99b2a5b10c6","FirstName":"Mercedes","LastName":"Wyss","GravatarUrl":"//www.gravatar.com/avatar/0fac397e41664ef81b0204da3d978c8e"}]},{"Id":7708,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Ride the rails:  Handling errors the functional way","Abstract":"Invalid email addresses.  Malformed JSON.  Database timeouts.  Though we frequently focus on the happy path of a given use case, sooner or later we have to account for everything that can (and will) go wrong.  Learn a powerful, functional approach to error and exception handling that will allow you to compose your workflow cleanly and simply.  This session will focus on Railway Oriented Programming (ROP), otherwise known as the Either monad.  We’ll dive into the nuts and bolts of the pattern, and then use it to simplify some real-world F# code examples.  No functional programming experience required – just an interest in learning a functional solution to a ubiquitous coding problem. \r\n\r\n","SessionType":"General Session","Tags":[".NET","Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"76250657-3133-4819-9e4f-3e873c7f6ab2","FirstName":"Sam","LastName":"Hanes","GravatarUrl":"//www.gravatar.com/avatar/90e884201a02ced7bc38bcde1b1ba784"}]},{"Id":7234,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Risk Adaptive Application Security Using Machine Learning","Abstract":"Policy-based authorization allows developers to implement rules-based authorization that extends far beyond role validation. This pattern is an important part of an approach called **Risk Adaptive Access Control (RADAC)**. One RADAC strategy that is enabled by policy-based authorization is leveraging machine learning to authorize actions based on behavior patterns as well as environmental factors. This allows developers to implement non-functional security features such as recognizing when critical data is being scraped by a script or a user manipulating data in a suspicious manner. In this session, we will review the concepts behind RADAC, and show real-world scenarios where it can be applied using Azure Machine Learning and policy-based authorization in ASP.Net Core MVC.","SessionType":"General Session","Tags":[".NET","Cloud/Big Data","Security"],"Category":"Security","Speakers":[{"Id":"6f11f422-0558-4b6b-9d4d-a7e99522a21b","FirstName":"Michael","LastName":"Meadows","GravatarUrl":"//www.gravatar.com/avatar/954765ec98d01561285873097362e3ee"}]},{"Id":7712,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Scala for the Java Developer: It’s Easier Than You Think","Abstract":"Scala is arguably the de facto language of choice for the big data world but with a dauntingly steep learning curve. This session will immediately dispel that concern by exposing the minimal syntactic differences between Java and Scala. Participants will then learn how to use Scala for writing cleaner, more readable code. Once you've seen how easy the switch can be, you'll get hooked by its expressive features. Expression-based coding can return a value directly from an if statement and pattern matching can create clear, type checked code paths. This and more allows you to write less boilerplate and more maintainable, business code. You'll leave this session with enough of the basics to be able to make the switch. But be warned, once you go Scala it's hard to go back.","SessionType":"General Session","Tags":["Functional Programming","Java"],"Category":"Programming Principles","Speakers":[{"Id":"6f679f83-990f-4f9a-9c2c-7daf866915d6","FirstName":"Justin","LastName":"Pihony","GravatarUrl":"//www.gravatar.com/avatar/2ee8ffcc3449741a2f296a9ff9ce6968"}]},{"Id":6899,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Science of Great UI, part 2 (Design Like a Pro)","Abstract":"Get a big boost on your UI skills. Regardless of whether you’re building interfaces for watches, phones, tablets, desktops, elevators, automobiles, or interplanetary spaceships; you’ll learn how to expertly apply tools from the designer's palette to your designs. We'll discuss contrast, color, shadow, size, opacity, layout, proximity, borders, information dimension, symbols, and graphic languages. Part 2 of 3.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Mobile","JavaScript",".NET","Java"],"Category":"Design (UI/UX)","Speakers":[{"Id":"9d113a83-30ff-41df-b093-7b44f852b7ce","FirstName":"Mark","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/16cc1eea9cb56905335600fc60f6c052"}]},{"Id":7384,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Secure Applications, By Design ","Abstract":"There is a lot of good security advice in the world, but checklists like the OWASP Top 10 do not tell you how to design security into your application. Where should a developer even begin? You'll leave this session with a process for building security in depth into your application architecture, using a human-centered user experience design, threat modeling, partitioning, defense in depth, and static analysis in continuous integration. Not yet another checklist, you'll learn how to make security the foundation on which the rest of your application is built.","SessionType":"General Session","Tags":[".NET","Security","Java"],"Category":"Security","Speakers":[{"Id":"a01d978d-3330-4384-b5c0-6b39d9b28d95","FirstName":"Craig","LastName":"Stuntz","GravatarUrl":"//www.gravatar.com/avatar/a45302e072f5c7cfd34d18328139ff66"}]},{"Id":7125,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Securing the last mile of IoT solutions","Abstract":"Security is a top concern for IoT implementers. IoT platforms have great security stories and track records around the cloud, but IoT security is much more than just the back-end. The server and desktop security knowledge does not apply directly to small less capable devices or $5 sensors deployed in the field.\r\n\r\nMake sure your webcam, electronic door lock or toaster does not take down Netflix, Twitter and Amazon like the IoT devices controlled by the Mirai botnet in 2016.\r\n\r\nThis session will discuss IoT security fundamentals and show the importance of applying security best practices, including how to implement connectivity and device security.\r\n\r\nObjectives:\r\n* Understand the IoT security challenges\r\n* Learn the fundamentals of device design security\r\n* Discuss device security and provisioning from birth to grave\r\n* Provide a solid overview of the Microsoft Azure security patterns","SessionType":"General Session","Tags":["Cloud/Big Data","Security"],"Category":"Hardware/IoT","Speakers":[{"Id":"fb21be70-1467-4103-bd2b-44c86c2c3490","FirstName":"Anders","LastName":"Lybecker","GravatarUrl":"//www.gravatar.com/avatar/aa1e6dca4bdc279d3ea374eef37ed394"}]},{"Id":6896,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Securing without Slowing: DevOps ","Abstract":"We turn to DevOps for speed. We turn to Cloud for flexibility. We adopt faster, leaner, more collaborative processes to drive change. And then? We turn to information security for protection. But can we secure the technology without slowing the pace? This session presents an entirely fictional development organization adopting DevOps. We will discuss which traditional software security processes work, and which ones fail entirely. Awareness training, muscle memory, culture shifts, all will be brought together.  The presentation will conclude with take-aways for applying security to your DevOps team without slowing down.","SessionType":"General Session","Tags":["Security"],"Category":"DevOps","Speakers":[{"Id":"b57674a1-6007-4330-a825-71636045914e","FirstName":"Wolfgang","LastName":"Goerlich","GravatarUrl":"//www.gravatar.com/avatar/68114a196412d9ed87a7cc452cae0627"}]},{"Id":7732,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Securing Your API Endpoints","Abstract":"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 overview of API security without deep dives into cryptography or complex authentication frameworks. 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. ","SessionType":"General Session","Tags":["JavaScript",".NET","Security"],"Category":"Security","Speakers":[{"Id":"7f2c76d2-b751-4fd7-ab7c-151fbbe09770","FirstName":"Seth","LastName":"Petry-Johnson","GravatarUrl":"//www.gravatar.com/avatar/592ce06e300c7947559cff31295ee0bd"}]},{"Id":7201,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Service Brokers For Mortals","Abstract":"Need to spin up a new database instance, message queue, or search index for your application?  Not a problem using service brokers!\r\n\r\nWhat started out as a useful feature in Cloud Foundry has now been standardized into the Open Service Broker API, and has support incoming for Kubernetes and OpenShift (and of course Cloud Foundry!).  We'll learn how service brokers can make your developers self-sufficient by giving them tools to easily provision their own infrastructure, improve security by keeping humans out of the loop, and free up your infrastructure people to find new and exciting things to devops!\r\n\r\nFinally, we'll see how easy it is to implement your own service broker if you can't find something pre-existing to scratch your infrastructure automation itch.","SessionType":"General Session","Tags":["Cloud/Big Data","Java"],"Category":"DevOps","Speakers":[{"Id":"53f6677c-9f80-421d-9a82-9b1e2714cea8","FirstName":"Andrew","LastName":"Fitzgerald","GravatarUrl":"//www.gravatar.com/avatar/31d683674d539576bdbc65043e8a5b74"}]},{"Id":6779,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Services Assemble! Apply MVP Principles to Create Cutting-Edge Microservices Without Chaos with Spring Cloud/Netflix OSS","Abstract":"In this session, learn how to use proven patterns & open source software to rapidly build a robust portfolio of microservices that provide a solid foundation for your dynamic and growing microservice architecture. This session addresses vital points such as:\r\n\r\n* Configuration services\r\n* Microservice registration and discovery\r\n* Circuit breakers for graceful degradation\r\n* Load balancing and intelligent routing\r\n* Asynchronous messaging\r\n* Reactive services, events, & backpressure\r\n\r\nThe presenter will demonstrate how to develop & effectively manage microservices using OSS tools employed by Netflix to keep movies streaming globally 24x7.","SessionType":"General Session","Tags":["Cloud/Big Data","Other","Java"],"Category":"Architecture","Speakers":[{"Id":"412f4dda-3ac0-4af8-93a7-82f9ee1935a3","FirstName":"Mark","LastName":"Heckler","GravatarUrl":"//www.gravatar.com/avatar/394797f95420c4da4c84379f0d0b11c9"}]},{"Id":7734,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Software is Not Hardware – Why the test rack is not the place to find a software defect.","Abstract":"Don’t get me wrong, testing on the rack is important, but shouldn’t be your only strategy… or your starting point.   In this talk we will discuss effective ways of testing embedded software and hardware utilizing modern software practices, minimizing errors, testing time and budget.\r\n \r\nDefects are expensive and undetected defects can be devastating.  The earlier a defect can be identified and eliminated, the cheaper the cost.  If a developer can find issues while writing unit-tests, the developer can easily fix the issue because they have all of the information available.  Integration testing provides the next level of protection… detecting specification and architectural problems.  \r\n\r\nTesting your hardware shouldn’t be any different than testing your software.\r\n","SessionType":"General Session","Tags":["Testing","Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"02e49716-a556-45b4-918d-01034f49721c","FirstName":"DJ","LastName":"Daugherty","GravatarUrl":"//www.gravatar.com/avatar/5b94381f39bad8b12cf18e07ef43bea2"}]},{"Id":7003,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Sondheim, Seurat and Software: finding art in code","Abstract":"White. A blank page or canvas. The challenge: bring order to the whole. Through design. Composition. Tension. Balance. Light. And harmony.\r\n\r\nThe opening lines of Sondheim's \"Sunday in the Park with George\"\r\nwere written with fine art and paintings in mind, but ring true for\r\nsoftware engineer as well. As Seurat created grand visions from tiny\r\ndots, so software solves huge problems one line at a time.\r\n\r\nSome parallels are obvious - the suggestion of \"favor composition\r\nover inheritance springs to mind\" - but others take more reflection.\r\nThis talk offers musings on each element, and links each back to the\r\ncornerstone so often neglected in the midst of design docs,\r\nspecifications and linters: our shared humanity.\r\n\r\nWhat turns \"good\" code into \"great\" code? How subjective is this?\r\nHow does it affect how libraries connect with their consumers, and\r\nhow applications connect with their users?\r\n\r\nAt the end of this talk, you'll be left with more questions than\r\nanswers - catalysts for your own thoughts on the nature of code and\r\nart, and for further discussion.\r\n","SessionType":"General Session","Tags":["Other"],"Category":"Programming Principles","Speakers":[{"Id":"bb2ee690-e6b6-4031-8acb-956754a8a6e8","FirstName":"Jon","LastName":"Skeet","GravatarUrl":"//www.gravatar.com/avatar/6d8ebb117e8d83d74ea95fbdd0f87e13"}]},{"Id":6756,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Spelling like a Pilot","Abstract":"When speaking over the radio, pilots need to be able to say who they are so that they can get the correct directions from a controller. Since it’s hard to understand letters sometimes, they use a special alphabet called the phonetic alphabet for spelling.\r\n\r\nIn this session learn how to use the phonetic alphabet to clearly communicate over the radio or phone. Then, talk with a friend over the radio to relay a message.\r\n\r\nExpect to spend most of the session playing spelling games with a group.  You will leave the session with a set of cards to help you remember the phonetic alphabet so you can use it at home too!\r\n\r\nAges 5+","SessionType":"Kidz Mash","Tags":["Soft Skills / Business","Other"],"Category":"Hardware/IoT","Speakers":[{"Id":"a5b9d365-c3f6-42d7-b176-18e2fe232cd3","FirstName":"Craig","LastName":"Hills","GravatarUrl":"//www.gravatar.com/avatar/9199ea46a9d8c69e8a20d994aa1baa76"}]},{"Id":6780,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Springing into Kotlin: How to Make the Magic even more Magical","Abstract":"Developing applications with Spring Boot is already a pretty magical experience, but could it be better? Can the magic get any more powerful than it already is?\r\n\r\nIn this talk, we'll look at how Kotlin can be used to reduce boilerplate, increase code quality, and elevate your wizardry. The presenter will demonstrate how to begin incorporating Kotlin into your existing Spring applications and, once you start your journey, where it can lead. Come to this session to level up on Spring+Kotlin! (Robes optional)","SessionType":"General Session","Tags":["Cloud/Big Data","Testing","Other","Java"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"412f4dda-3ac0-4af8-93a7-82f9ee1935a3","FirstName":"Mark","LastName":"Heckler","GravatarUrl":"//www.gravatar.com/avatar/394797f95420c4da4c84379f0d0b11c9"}]},{"Id":7459,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"SQL Server on Linux? Wait ... What?","Abstract":"SQL Server on Linux.\r\n\r\nJust let that sink in. What universe are we living in? What is SQL Server on Linux? Is it the same? How does it differ? What is the learning curve? Is this a sign of the Apocalypse?\r\n\r\nWell, this session has the answers. Follow along as we explore our favorite RDMBS running on Linux, including a demonstration of SQL Server running in a Linux container. You’ll see a website running in a container that uses SQL Server running on Windows, and then -- using an Availability Group -- we’ll switch over to SQL Server running on Linux without missing a beat.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"57e8f811-ebe9-4d7f-9677-49ca0f027940","FirstName":"Don","LastName":"Schenck","GravatarUrl":"//www.gravatar.com/avatar/f54aa14aef60a23e27147afdedf0501d"}]},{"Id":7632,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Start a UX Revolution at Your Workplace","Abstract":"Are you ready to start a UX revolution at your workplace? Usability meetings are great way to start the movement. Usability meetings promote team building, cross-functional collaboration, networking, learning, sharing experiences, and having fun! There are a multitude of usability topics you can discuss with your co-workers, like paper prototyping, low-fidelity and high-fidelity mockups, usability testing, accessibility, interviewing users, field observations, form design, lean UX and agile, and so many more!\r\n \r\nIn this session, you’ll learn how to get started (it’s easy!), tips for running usability meetings, where to find content, and ways to get people involved. The best part is you don’t have to be a UX expert, and you don’t have to have “manager” or “lead” in your title either. Everyone has a role in user experience. Start the revolution!","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Soft Skills / Business"],"Category":"Design (UI/UX)","Speakers":[{"Id":"cbbc20f2-ea67-4efb-b0e3-533cd1feb0a8","FirstName":"Rhonda","LastName":"Grimm","GravatarUrl":"//www.gravatar.com/avatar/f1a80b07a8778451ac4038cbcb048051"}]},{"Id":6918,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Starting Over","Abstract":"Adversity. A necessary component of life. Inevitably, we all reach professional and personal moments that require us to take a deep breath and a giant step back. Moving forward again often feels difficult, even impossible. We suffer, immobilized by fear.\r\n\r\nBut fear is more than some pesky roadblock. It is a rational response to adversity. Whether facing a major code refactoring, the changing technology landscape, a new role, or even a fresh career, we can learn to leverage fear and uncertainty to move beyond our hurdles and get the job done! Key life skills exist that can be developed to conquer adversity. Learn to assess risks, build relationships, and recognize opportunities for growth.\r\n\r\nStarting over may seem insurmountable. Armed with the right skills, perspective, and a little patience, nothing truly is.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"f08c359f-7686-4cf5-afb6-ed953771c941","FirstName":"Jeff","LastName":"Strauss","GravatarUrl":"//www.gravatar.com/avatar/b06d474fb0c5bb9d62fee08782c75d14"}]},{"Id":7561,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Super Mario UX Designer","Abstract":"You jump into that next level! You presented with a game mechanic you have never seen before. And without a big popup window or a bunch of arrows pointing at the screen you are taught how to use that mechanic within the flow of the game. All while cosplaying as a racoon. In the end you feel rewarded and ready for the next challenge. It’s like every level is a little onboarding experience. In this talk Brad breaks down some of his favorite levels in Nintendo’s Mario games, talks about what makes them work and how we can apply these lessons to our designs in the real world.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)"],"Category":"Design (UI/UX)","Speakers":[{"Id":"556bff6c-5f9e-4a6e-b727-a656a5d164a8","FirstName":"Brad","LastName":"Colbow","GravatarUrl":"//www.gravatar.com/avatar/f4fdcefcbe9f42663935e7c56c4c76a4"}]},{"Id":7202,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Take the Toxic Out of Your Team and Up the Efficiency With the Power of Google","Abstract":"We all want our teams to be ultra efficient, but even a touch of the cowboy coder, the hero programmer, or the freeloader can be toxic to your team. Google’s Project Aristotle ([https://rework.withgoogle.com/guides/understanding-team-effectiveness](https://rework.withgoogle.com/guides/understanding-team-effectiveness)) found that the efficiency of a team is driven by 5 factors: \r\n* Psychological Safety\r\n* Dependability\r\n* Structure and Clarity\r\n* Meaning of work\r\n* Impact of work\r\n\r\nCome and learn how to use these factors to identify and eliminate the toxicity killing the effectiveness of your team. Using stereotypically terrible teams, having members like the ones mentioned above, you’ll learn why it’s so important to provide transparency, set goals, and have the necessary conversations you’ve been putting off.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"5c8aa8b0-b9a7-48e1-a842-f2514ef6c1aa","FirstName":"Jason","LastName":"Blackhurst","GravatarUrl":"//www.gravatar.com/avatar/a8121d1ec7e51335a986ec61c0a82dda"}]},{"Id":7447,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Tales from the Front Lines: Modernizing a Legacy System","Abstract":"Monoliths! Working with legacy software applications can be a harrowing experience for any developer. In this talk, hear some ideas for how to improve and migrate away from a monolithic software project to a more modern setup. \r\n\r\nLearn about moving libraries out of a existing application while preserving the file history in git and how to continually migrate changes as they are in flight during the transition, setting up packaging workflows using git and a continuous integration server like jenkins or teamcity. Walk through an automated deployment pipeline for an applications. \r\n\r\nLean from experiences managing and unraveling codebases in both Java and C#, as well as techniques that would apply to any legacy system. ","SessionType":"General Session","Tags":[".NET","Java"],"Category":"Enterprise/Large-Shop Development","Speakers":[{"Id":"bed8df0f-3af4-40b8-bcf9-61844e9266c6","FirstName":"Mark","LastName":"Ryan","GravatarUrl":"//www.gravatar.com/avatar/4e91c88466b039ad03e0ac56c4678a05"}]},{"Id":7428,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Taming the SVG Beast - What, When, How","Abstract":"TL; DR: You can programmatically edit images in the browser! Stop building 30 versions of the same image, and embrace SVG.\r\n\r\nYou’ve probably heard of SVG before, and you’re probably not using it in your everyday web development.\r\nSVG is a standard that is frequently overlooked—the web community most likely just isn’t familiar enough with SVG for widespread adoption.  This presentation aims to change that!\r\nThe goal of the presentation is to show you why you should be using SVG, and how to use it. SVG is always responsive. SVG files are significantly smaller and simpler than raster images (jpg, png, gif). SVG allows for extensive animation.\r\nMost importantly, you can programmatically edit images in the browser! Do you have a green logo that you need to be white in certain places? This use case happens frequently, and is very easy to handle using SVG.\r\nBy the end of the presentation, you will know more about SVG than 99.999% of the planet. Wow! And knowing is half the battle.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)"],"Category":"Web/Front-End","Speakers":[{"Id":"20c6cdd0-f7c3-4b25-a53a-5dd9dd9e158c","FirstName":"Mike","LastName":"Earley","GravatarUrl":"//www.gravatar.com/avatar/297b1e62951220c7fa9b0e232a1c8f9a"}]},{"Id":6926,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Teaching kids how to code with Sphero robotics","Abstract":"\"You teach what you know but you replicate who you are.\"\r\n\r\nOne of the most radical and rewarding things in life is experiencing kids learning something new. As a homeschool parent of five kids, I've had this opportunity over and over and it never gets old. It's about spending time with them and helping them solve problems.\r\n \r\nSphero provides a really great robotic software development platform lab with a robust community geared toward educating kids on robotic software development with an array of sphero devices and accessories.\r\n \r\nPersonally, I've used Sphero in homeschool co-op and youth code camp settings and every time it's a blast for the kids and me.\r\n \r\nLearn how to take advantage of this platform to help kids quickly grow from learning programming basics to building complex games with Sphero.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Hardware","Testing","Soft Skills / Business","Other","Events"],"Category":"Hardware/IoT","Speakers":[{"Id":"dd240822-f8e8-4d7d-b51a-81c59f128a21","FirstName":"BJ","LastName":"Allmon","GravatarUrl":"//www.gravatar.com/avatar/d462bb249067c6cad0ad8e0a53d63cfa"}]},{"Id":7783,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Test Driven Development for DevOps","Abstract":"Infrastructure as Code has been a DevOps mantra for several years, but there are still a lot of areas where operations can learn from\r\nDevelopment. Test Driven Development aids creating stable\r\napplications; it can also be used for developing and testing\r\ninfrastructures, systems, and architectures. \r\n\r\nTools such as Ansible, Chef, and Puppet are part of the solution, but there is more to do than to define an ideal state and let the tool figure it out. This session provides a pragmatic guide for using tests to drive Infrastructure and system development with real life examples of what to do and what *not* to do.\r\n","SessionType":"General Session","Tags":["Cloud/Big Data","Testing","Security","Other"],"Category":"DevOps","Speakers":[{"Id":"47df643a-17fd-4e9a-93bb-dfe1eca215b3","FirstName":"Matt","LastName":"Williams","GravatarUrl":"//www.gravatar.com/avatar/2354a803ebd8fe473f97b7dc854e4d94"}]},{"Id":7231,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Testing Layers in a Distributed Architecture","Abstract":"Modern web applications often rely on internal APIs, multiple frontend applications, several third-party services, and dozens of vendor libraries. With complex distributed systems like this, how can we create a comprehensive test plan that covers everything without slowing development down to a crawl?\r\n\r\nIn this talk we'll discuss creating test plans for complex, service-oriented applications as well as some best practices for testing across a distributed architecture. We'll see how layers of unit, integration, acceptance, and end-to-end tests can greatly improve the reliability of our applications and make maintaining them much easier in the long-run.","SessionType":"General Session","Tags":["JavaScript","Testing"],"Category":"Software Quality","Speakers":[{"Id":"2a3e0b9a-8cf2-4515-a7d1-0e022d3505be","FirstName":"Karl","LastName":"Hughes","GravatarUrl":"//www.gravatar.com/avatar/972cd1bf439680cd8845b3d13ca8326e"}]},{"Id":7068,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Business Case for Blockchain: It Ain't Just CryptoCurrency","Abstract":"\"This changes everything.\"\r\n\r\nBitcoin’s blockchain technology has triggered a new wave of innovation. Payments, websites, file storage, software, and even social networks will all change. \r\n\r\nSir Tim Berners Lee himself has expressed interest in blockchains recently. \r\n\r\nAttend this session and prepare for how these technologies will affect your business and how developing with them can prepare you for the future.","SessionType":"General Session","Tags":["Functional Programming","Security","Other"],"Category":"Security","Speakers":[{"Id":"a313d88c-b561-4686-b5cf-d43d39ac09cc","FirstName":"Heather","LastName":"Wilde","GravatarUrl":"//www.gravatar.com/avatar/7183fa8195c454bef33f3ffbf2c44c40"}]},{"Id":6817,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Hidden Requirements: Exploring Emotions with Placebos","Abstract":"The way we feel is important!\r\n\r\nAll that we think, do, or say is influenced, to some degree, by emotions. Many successful businesses and people recognize the importance of emotional considerations.\r\n\r\nThe way we feel is important and should be considered!\r\n\r\nAll software is intended to help solve some problem, and both problems and solutions evoke emotions. Software requirements are simply wants or needs, which often stem from core emotions. Research shows that emotions can affect the acceptance or rejection of software. \r\n\r\nThe way we feel about software is important and should be considered!\r\n\r\nA placebo is designed and used primarily to evoke emotions. Things like sugar pills, false elevator door close buttons, and fake office thermostats aim “to please”, rather than have any other physical effects. Placebo requirements focus on emotions. And so, considering software through the lens of a placebo can help emphasize emotional considerations, and provide a valuable perspective on bugs, ethical design, and much more.\r\n\r\nIn this workshop, I support the claims above, suggest some methods to elicit and test emotional requirements, and finally, use placebos as a lens to view software design and testing. Using presentations, demonstrations, and interactive discussions and exercises, we collaboratively explore why “The way we feel about software is important and should be considered!”\r\n\r\nWorkshop Takeaways:\r\n* Practical methods to get and measure emotional requirements \r\n* A different and deeper understanding of emotions and requirements\r\n* An introduction to the fascinating and spooky world of placebos\r\n","SessionType":"Pre-Compiler","Tags":["Testing","Soft Skills / Business"],"Category":"Software Quality","Speakers":[{"Id":"0de90b5d-4192-4952-9f3c-c0d20bdc54ce","FirstName":"damian","LastName":"synadinos","GravatarUrl":"//www.gravatar.com/avatar/c7e3b73442aea846855f81760e982fb7"}]},{"Id":7738,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Magic of Magnets","Abstract":"In This fun filled hour, kids will be able to manipulate a wide array of magnetic materials and learn about magnetic fields through several demonstrations involving powders, liquids and even a pinch of electricity. The youngest scientists in the group can team up with the oldest, making this session fun for kids from 4 to 104. Participants will be able to make their own magnetic putty to take home. Some small parts may be a choking hazard and are not suitable for children under 3.","SessionType":"Kidz Mash","Tags":[],"Category":"Architecture","Speakers":[{"Id":"86c3cef0-c5b0-4948-934e-d59619c1c4af","FirstName":"Colin","LastName":"Detwiller","GravatarUrl":"//www.gravatar.com/avatar/2ddf3c20f8456f786ea3af75ffeb1dfb"}]},{"Id":7802,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Polyglot Data Scientist - Adventures with R, Python, and SQL","Abstract":"In a world where data is continuously flowing, we need to be able to analyze it with the best of our abilities.  Sometimes, we have to use our programming languages with our data platforms for making these decisions in a timely manner.  In this session, we will explore some problems in data analysis and how we can use R or Python in combination with SQL Server to solve these problems.  Examples will show the difference between approaching the problem with purely one of those technologies and why combining them may be a better idea.","SessionType":"General Session","Tags":["Cloud/Big Data"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"5fbd101a-6962-499d-a733-37f9cfd14c00","FirstName":"Sarah","LastName":"Dutkiewicz","GravatarUrl":"//www.gravatar.com/avatar/63ff8127b010498c1a8a729f800d38f6"}]},{"Id":6898,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Science of Great UI, part 1 (Efficiency in Thought & Motion)","Abstract":"Explore the how and why of great UI. If you believe you’re not an artist, that UI is subjective, or that Great UI takes too much effort, then this session is for you. Learn how to enhance clarity, reduce visual noise, lower barriers to entry, and make your interfaces discoverable, responsive, and a pleasure to use. It’s all about making customers satisfied, and this entertaining and information-packed workshop will show you how. Part 1 of 3.","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Mobile","JavaScript",".NET","Java"],"Category":"Design (UI/UX)","Speakers":[{"Id":"9d113a83-30ff-41df-b093-7b44f852b7ce","FirstName":"Mark","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/16cc1eea9cb56905335600fc60f6c052"}]},{"Id":6901,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Science of Great UI, part 3 (Metrics and Business Case)","Abstract":"Think great UI/design is subjective? Is your organization reluctant to invest in improving user experience? See definitive methods, ranging from brain-dead simple to mind-blowingly high-tech to help you measure design quality. Learn how to find and use freely-available tools to analyze design quality. Mark will also show how to present a compelling business case to justify investment in great design. Part 3 of 3.\r\n","SessionType":"General Session","Tags":["Design (UI/UX/CSS)","Hardware","JavaScript",".NET","Soft Skills / Business","Java"],"Category":"Design (UI/UX)","Speakers":[{"Id":"9d113a83-30ff-41df-b093-7b44f852b7ce","FirstName":"Mark","LastName":"Miller","GravatarUrl":"//www.gravatar.com/avatar/16cc1eea9cb56905335600fc60f6c052"}]},{"Id":6767,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"The Wonderful World of Recursion","Abstract":"Recursion is an indispensable tool in the functional programmer’s toolbox, but when used improperly it can be the source of disastrous errors. The world’s most popular programming Q&A site is even named after the dreaded stack overflow error that is the result of misuse of recursion! How can we take advantage of this fundamental tool without falling victim to its pitfalls?\r\n\r\nJoin me as we journey through the wonderful world of recursion where we will discover a treasure trove of recursive techniques, including tail recursion, mutual recursion, and trampolines. We will also learn how tail call optimization is achieved (or not) in various languages. Example code and discussion is presented in various functional languages including Clojure, Scala, Elixir, Haskell, and F#.","SessionType":"General Session","Tags":["Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"074ed5bc-1de7-49c7-a438-f0301ab38d20","FirstName":"Jason","LastName":"Voegele","GravatarUrl":"//www.gravatar.com/avatar/1737d9dc718b50b0c000f8b3b1a3b191"}]},{"Id":7137,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"There Is No Spoon? Understanding ‘Spoon Theory’ and Preventing Burnout","Abstract":"Spoon theory is a metaphor about the finite energy we each have to do things in a day. While a healthy, advantaged person may not have to worry about running out of ‘spoons,’ people with chronic illnesses or disabilities and members of marginalized communities often have to consider how they must ration their energy in order to get through the day. Understanding how 'spoons' can affect the lives of your developers and teammates can help companies lessen the everyday burdens on their underrepresented employees, leaving them more spoons to do their best work, avoid burnout and lead fulfilling lives.\r\nThis session will go over examples of how different people spend spoons in different ways and why empathy is so important! It will cover coping techniques for developers who are struggling to manage their spoons as well as suggestions for managers and leads to better accomodate their employees.","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"3bf2da59-fae1-421b-b526-f6e51e23536b","FirstName":"Jameson","LastName":"Hampton","GravatarUrl":"//www.gravatar.com/avatar/5d974858f91e9707648c8d5165f0d74d"}]},{"Id":7184,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Threat Modeling for Secure Software Design","Abstract":"Threat modeling is a way of thinking about what could go wrong and how to prevent it. Instinctively, we all think this way in regards to our own personal security and safety. When it comes to building software, some software shops either skip the important step of threat modeling in secure software design or they have tried threat modeling before but haven't quite figured out how to connect the threat models to real world software development and its priorities. \r\n\r\nIn this session, you will learn practical strategies in using threat modeling in secure software architecture design and how to apply risk management in dealing with the threats.","SessionType":"General Session","Tags":["Soft Skills / Business","Security"],"Category":"Security","Speakers":[{"Id":"a0d9d587-2518-4152-9f77-a3710b63abfb","FirstName":"Robert","LastName":"Hurlbut","GravatarUrl":"//www.gravatar.com/avatar/db95ea3afe5e33bc0cbe6c61633d0c81"}]},{"Id":7223,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Unbreakable. Perfect: The Craft of Code","Abstract":"The best welders create seams so perfect that flaws cannot be detected even by an X-ray. Most welders will never get there. Code is no different. Do you write code that ‘works’ or code that is crafted so perfectly it will never show a flaw? We will explore timeless principles that make great code: recognizing code smells, writing for testability, keeping things simple and clear. Many of these ideas were written down decades ago, but are still ignored. The most important first step is viewing code as a craft, something that is done for its own sake rather than something hacked out to solve a problem. In this session, you’ll learn how to create a plan for steady improvements. Syntax, languages, frameworks all fade away. A mindset that is focused on craft will never fail.","SessionType":"General Session","Tags":["JavaScript","Soft Skills / Business","Other"],"Category":"Software Quality","Speakers":[{"Id":"64f52f4f-3d83-459e-980d-007a4546220d","FirstName":"Joe","LastName":"Morgan","GravatarUrl":"//www.gravatar.com/avatar/7ace5b8f56fc673dbaab2069dcc6d536"}]},{"Id":6739,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Understanding Your Application with Application Insights","Abstract":"Stop flying blind and use Azure Application Insights to monitor availability, performance, feature usage, and exceptions.  In this sessions, you will learn how to add Application Insights to any application, how to use it to make debugging production problems a breeze.kind of information it can provide and how to use metrics to make your application better for your users.\r\n\r\n","SessionType":"General Session","Tags":["JavaScript",".NET"],"Category":"DevOps","Speakers":[{"Id":"1c924856-367e-49b4-bc85-dfbc20ee32d8","FirstName":"Jeremy","LastName":"Hutchinson","GravatarUrl":"//www.gravatar.com/avatar/dfce1c9d20ff9d50a3421c93aa2e0daa"}]},{"Id":7099,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Unit Testing Your React App","Abstract":"Congratulations! You're building a sweet new web application with React. But what are you doing for unit testing?\r\n\r\nSetting your environment up for JavaScript unit testing can be intimidating. React tooling is phenomenal, though, and makes setup a breeze. In this session, we'll look at how to get started writing tests for your React app. We'll dig into the features of Jest as a test-runner and test framework. Then we'll take a look at Enzyme, a framework for testing your React components directly. Finally, we'll look at guidance and best practices. What should you test? When should you test it? How can you keep your React code friendly to unit tests?\r\n\r\nYou will leave this session ready to cover your React app with tests. ","SessionType":"General Session","Tags":["JavaScript","Testing"],"Category":"Web/Front-End","Speakers":[{"Id":"3f7421fe-ab14-4ede-9331-89ac85e0fa08","FirstName":"Steven","LastName":"Hicks","GravatarUrl":"//www.gravatar.com/avatar/08d448885e5be364b0489167d5285fd6"}]},{"Id":7796,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Unleashing Your Creativity","Abstract":"For innovation to flourish, organizations must create an environment that fosters creativity; bringing together multi-talented groups of people who work in close collaboration together— exchanging knowledge, ideas and shaping the direction of the future. Creativity is a skill you can develop with practice and a process you can manage.\r\nIn this creativity workshop, you will:\r\n• Understand the dynamics of creative work, the most common pitfalls, and how they affect teams\r\n• Learn to identify and eliminate the things that stop creativity\r\n• Discover specific, everyday practices that lead to long-term effectiveness\r\n• Understand the pillars of effective collaboration and creative leadership\r\n• Develop the mindset, skillsets, and toolsets of highly creative people in business, arts and science.\r\n• Discover your natural capacity for creativity through a range of hands-on activities that will appeal to both sides of your brain\r\n• Explore some of the thinking strategies of innovators in business, art and science, and how you can apply these strategies to your everyday work\r\n• Experiment with ideation tools that supersede traditional brainstorming in a fun, inspiring action-filled environment\r\n• Find the business case to bring creativity into your organization","SessionType":"Pre-Compiler","Tags":["Soft Skills / Business","Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"84f4d5b5-4e54-4f13-8939-1434551b46be","FirstName":"Christina","LastName":"Aldan","GravatarUrl":"//www.gravatar.com/avatar/ce9356a177df8b59c28d72c7dc2d64be"}]},{"Id":7078,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Using Artificial Intelligence to Protect User-Generated Content","Abstract":"**What It's About**\r\nUser-generated content is great for engagement, but internet trolls can use it as a vector to ruining everyone's experience. Furthermore, inappropriate content can create a PR nightmare. Thankfully, both Amazon and Microsoft provide AI solutions that significantly reduce the burden of content moderation.\r\n\r\n**Topics Covered**\r\n* AI Content Moderation offerings from Amazon and Microsoft\r\n* Demonstration of Content Moderation APIs, with code!\r\n* Combining APIs for robust content protection\r\n\r\n**Target Audience**\r\nAnyone who loves the idea of user-generated content, but is worried what will happen once the floodgates are opened. Web API and AWS experience are helpful, but not required. ","SessionType":"General Session","Tags":[".NET","Cloud/Big Data","Soft Skills / Business","Security"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"8f4e9ee9-9288-4010-9ba3-416211a2c8be","FirstName":"Adam","LastName":"Kerr","GravatarUrl":"//www.gravatar.com/avatar/bb7124718bbe0d8ec4ffca37c8fe2c4b"}]},{"Id":7684,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Using Neural Networks to Generate \"Game of Thrones\" Scripts","Abstract":"Machine learning enables us to make future predictions based on patterns learned from historical data.  If we apply these principles to a large body of text, we can predict what the next word or character in a document will be and generate writing in a similar style.  This will help us solve a major #firstworldproblem: let's build our own George R.R. Martin to generate GoT scripts (yes, I know, he didn't write the TV scripts).  In this session, I will teach the basics of neural networks, the different types, and where each excels.  Then I will demonstrate how to generate text using machine learning by training a model on the scripts of the \"Game of Thrones\" television series, and having it output new text in the same style of writing.  You will walk away with an enhanced understanding of machine learning and neural networks, and maybe even some predictions for season 8!  ","SessionType":"General Session","Tags":["Cloud/Big Data","Other"],"Category":"Data (big/small/otherwise)","Speakers":[{"Id":"3bae9249-e692-4a7d-867b-0c1330a45db4","FirstName":"Jennifer","LastName":"Marsman","GravatarUrl":"//www.gravatar.com/avatar/36fa3107bdff153bf46f9e80aefc9fbd"}]},{"Id":7475,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Walking the High Wire: Patching Erlang Live","Abstract":"Two years ago at CodeMash we discussed how Erlang was a paradigm shift masquerading as a programming language. Last year we illustrated how fun it is to write. This year we show off one of its most powerful aspects: maintaining a production system.\r\n\r\nErlang (and Elixir, its younger sibling) allow you to not only trace the behavior of a production system, but also to query the data in memory, replace your code on the fly once you've found the problem, and *fix* the data that the old code mishandled, so the system keeps plugging away. Look, ma, no reboots.\r\n\r\nAlso discussed will be other criminally under-appreciated languages with similar features, because really, can you ever have enough magic tricks in your repertoire?\r\n","SessionType":"General Session","Tags":["Functional Programming"],"Category":"Programming Principles","Speakers":[{"Id":"a08c51d6-4ede-454b-b202-0c24d9d2f313","FirstName":"John","LastName":"Daily","GravatarUrl":"//www.gravatar.com/avatar/974cabfa92172620e5011867df9ffffb"}]},{"Id":7348,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Webapp Pentesting for Developers and QA Persons","Abstract":"Penetration testing is just QA testing, with a different focus. Where QA is about making sure your app actually does what it should do, reliably and smoothly, pentesting is about making sure your app doesn't also let people do other things - things they shouldn't be allowed to do, like steal your database - and that when it has to fail, it fails cleanly and safely. The tools are similar, and the objective is similar, but the mindset is a little different.\r\n\r\nIn this precompiler, you will spin up a VM you can keep, with some webapps you can test, and tools you can use to test them. You'll learn how to use these free tools to find some vulnerabilities, and - more importantly - understand why they happen. What you learn will make you a more versatile and confident developer or tester, and just might chop a couple of pages off your next pentest report.\r\n","SessionType":"Pre-Compiler","Tags":["Testing","Security"],"Category":"Security","Speakers":[{"Id":"cd8432f9-b39d-46f5-bfa4-ad3e647df338","FirstName":"Brian","LastName":"King","GravatarUrl":"//www.gravatar.com/avatar/e3f0fcb44b63c303bb9565c22084139e"}]},{"Id":7661,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Where have all the Cukes gone?","Abstract":"So you can sling some code and automate a web browser, and even work on a team that has a fair bit of UI automation around your \"favorite\" web application.  No doubt you have found yourself spending to much time fixing an inconsistent suite of tests. You might even be asking yourself \"are these tests even worth it?\". (the answer is yes!)\r\n\r\nLets explore where things typically break down in the acceptance testing process. Starting with breaking  user stories into acceptance criteria, and how the words the team chooses can affect the software that is built. Then taking a deep dive into best patterns and practices in automating the scenarios with cucumber and other ruby modules.\r\nAlong the way answering questions such as how should I manage my test data? Should I ever delete tests?  And, how do I keep my test pyramid from becoming a test cupcake?\r\n\r\nAttendees will walk away from this session armed with information to help them write better acceptance criteria, and tips to keep their test suites clean and less brittle.\r\n","SessionType":"Pre-Compiler","Tags":["Ruby/Rails","Testing"],"Category":"Software Quality","Speakers":[{"Id":"c79ded73-996c-4393-9785-d8dae8dd2394","FirstName":"Doug","LastName":"Morgan","GravatarUrl":"//www.gravatar.com/avatar/92bacac7fc45524d4d826e72824ec3c1"}]},{"Id":7240,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Workshop on Autonomous Vehicle Embedded System Development, Integration and Validation Techniques","Abstract":"Ever see a cobweb and wonder how the spider can create something so complex? Similar to that cobweb, embedded systems and the associated software are growing in complexity. Advancements in hardware are pushing the boundaries of software development techniques. \r\n\r\n\r\nThe development of autonomous vehicles is challenged with system integration and validation techniques. Traditional product development starts from a physical hardware point of view and then adds software. As hardware complexity increases, companies must drive product development with software. Companies with software at their core are able to accomplish speed to market faster than the spider can spin its web. This is done by driving development with modern software practices such as test driven development and continuous integration.\r\n\r\n\r\nExperience an interactive workshop on how to develop an embedded system while using modern software practices. \r\n\r\n\r\nLearn how to:\r\n- Test drive an embedded component.\r\n- Mock an unavailable component.\r\n- Apply Test Driven Development (TDD), Continuous Integration (CI) and Mocking to achieve a scalable software process on an embedded project.\r\n","SessionType":"Pre-Compiler","Tags":["Hardware","Testing","Security"],"Category":"Software Quality","Speakers":[{"Id":"02e49716-a556-45b4-918d-01034f49721c","FirstName":"DJ","LastName":"Daugherty","GravatarUrl":"//www.gravatar.com/avatar/5b94381f39bad8b12cf18e07ef43bea2"}]},{"Id":7558,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Writing Code Like a Poet","Abstract":"Writing quality poetry means crafting words that evoke emotions in your readers. It’s a way of telling a story that creates a bond. Writing quality code means crafting logic that evokes understanding in other developers. It’s a way of creating a story of how your app should function. Both serve as a creative and therapeutic outlet. In this session you will learn how to utilize steps for writing poetry to improve your code quality, including the value of brainstorming, how to write tests that edit your code for you, and how to name your methods and variables like Amir Baraka.","SessionType":"General Session","Tags":["Testing"],"Category":"Software Quality","Speakers":[{"Id":"4eb6c55a-a1e2-40fa-a673-acaff756a0c0","FirstName":"Brandy","LastName":"Foster","GravatarUrl":"//www.gravatar.com/avatar/370a94dfa3bf6684e954a24c8ec8afca"}]},{"Id":6895,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Writing Scalable JavaScript at Cox","Abstract":"Scalable JavaScript involves much more than script tags. Today, package managers, modules, transpiling, bundling, dynamic loading, reusable component libraries, automated testing, and much more are attainable. In this code-oriented session, I’ll share our unique approach for writing scalable JavaScript at Cox.","SessionType":"General Session","Tags":["JavaScript","Testing"],"Category":"Web/Front-End","Speakers":[{"Id":"1e3a9d81-bd1c-47ad-b068-3c2064f62050","FirstName":"Cory","LastName":"House","GravatarUrl":"//www.gravatar.com/avatar/09e16ce7b4bc21025c9940f5a167cfa9"}]},{"Id":6770,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Yoga & Mindfulness for People Who Stare at Computers All Day","Abstract":"In this increasingly busy world we live in, office and tech workers often find themselves hunched over computers, pushing to meet deadlines, to clear out todo lists, and to keep up with our ever-changing, high-speed, information economy. If left unchecked, this drive to keep up - and the work habits we develop to do so, can start to build tension, stress, and even illness. All of this can impact overall happiness, health, and ability to perform at work. \r\n\r\nJoin me for a look at how crafting a personal yoga and mindfulness routine can help to reduce the negative effects of our digital-based lives. We’ll walk through some quick and simple mindfulness techniques to help better your day. We’ll discuss some of the reasons you might want to introduce yoga and mindfulness practices in your workplace.  And finally, we’ll end our session with a short, chair-based yoga sequence that you can practice just about anywhere.","SessionType":"General Session","Tags":["Other"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"af664e16-f793-41a2-b4b0-faee1f1b7243","FirstName":"Julie","LastName":"Cameron","GravatarUrl":"//www.gravatar.com/avatar/f49c5780805d9e50bdc348069a7db59d"}]},{"Id":7047,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"You Will F**k up & that's Ok (How to be a Male Ally in Tech)","Abstract":"Men, you have it easier than women when it comes to working in tech.\r\n\r\nIf this statement makes you angry good! Hopefully it makes you angry because you want to be a part of an industry that works for everyone. Do you read all the news reports about the diversity problems in tech and think someone should do something about that? Maybe that someone should be you!\r\n\r\nYou might be thinking how can I help fix this problem as a guy? Will the women around me think I'm sincere? Yes, you can be a big part of the solution. And, yes they might question your sincerity at first, but with time and effort you can show everyone that diversity is important to you too!\r\n\r\nThere will be mistakes along the way and that’s ok. We make mistakes too. But by learning from those mistakes and continuing to try, we can make tech a better place for everyone.\r\n\r\nSome of the topics we'll cover are:\r\n* Why diversity should be important to everyone\r\n* The difference between being an ally and being a knight in shining armor\r\n* What to do if you see inappropriate behavior\r\n* How to make your workplace more inclusive\r\n* Actions matter even when it’s just the guys","SessionType":"General Session","Tags":["Soft Skills / Business"],"Category":"Project Leadership/Soft Skills","Speakers":[{"Id":"4a466fad-93df-4b69-8d45-a72483eae891","FirstName":"Ronda","LastName":"Bergman","GravatarUrl":"//www.gravatar.com/avatar/fe43183753a401d3b9b92ca452ffee41"}]},{"Id":7209,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"ZAPping Security Vulnerabilities in Your Development Pipeline","Abstract":"When your application has a security vulnerability, will you or an attacker find it first? Reviewing code and tracking down hidden flaws can be tedious and difficult. Let the free and open source OWASP Zed Attack Proxy (ZAP) help. This session walks through four ways to use ZAP: UI, command line, scripts, and automated development pipeline. You will learn how to attack a live application in all four ways, how to target specific areas of your application for heavier scrutiny, test for specific vulnerabilities, and incorporate ZAP with your development pipeline to automate the whole process including regression testing and report generation, so that vulnerabilities are discovered the moment they are introduced.","SessionType":"General Session","Tags":["Testing","Security"],"Category":"Security","Speakers":[{"Id":"a1dcad3d-2268-4ed8-99e9-f9d12fce2a26","FirstName":"Matthew","LastName":"Smith","GravatarUrl":"//www.gravatar.com/avatar/210458140b94a614f78e388b2f68d201"}]},{"Id":6758,"SessionTime":"0001-01-01T00:00:00","SessionStartTime":"0001-01-01T00:00:00","SessionEndTime":"0001-01-01T00:00:00","Room":null,"Rooms":null,"Title":"Zero to DevOps in Under an Hour with Kubernetes","Abstract":"The benefits of containerization cannot be overstated. Tools like Docker have made working with containers easy, efficient, and even enjoyable. However, management at scale is still a considerable task. That's why there's Kubernetes. Come see how easy it is to create a manageable container environment. Live on stage (demo gods willing) you'll witness a full Kubernetes configuration. In less than an hour, we'll build an environment capable of: Automatic Binpacking, Instant Scalability, Self-healing, Rolling Deployments, and Service Discovery/Load Balancing.","SessionType":"General Session","Tags":["Other"],"Category":"DevOps","Speakers":[{"Id":"118b44db-ead1-4021-81c9-26e76e665444","FirstName":"Dale","LastName":"Alleshouse","GravatarUrl":"//www.gravatar.com/avatar/8649e5e74ec8588fb59b913ac01f2ade"}]}]