Tuesday
Build your first full-stack Blazor app
Presented by: Ed Charbeneau
Time: Tuesday 8:00 AM - 12:00 PMThe arrival of WebAssembly begins a new era for .NET web developers, allowing client-side applications written in C# to run directly in the browser. Blazor is a newly emerging client-side UI platform from the ASP.NET Core team, offering a productive and powerful way to construct large-scale...
Room: ZambeziTrack: Web/Front-EndFormat: PreCompilerLevel: Introductory and overviewFunctional F# Programming in .NET – A success story
Presented by: Riccardo Terrell
Time: Tuesday 8:00 AM - 12:00 PMDo you want to learn F# and Functional Programming? Well, you better start coding! Learning a new programming language is not easy, on top of reading a lot you need to practice even more. This workshop is designed to teach you some of the basics of F# and Functional Programming by combining theory...
Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: Introductory and overviewHacking Your Emotional API: Emotional Intelligence in Practice
Presented by: John Sawers, Aaron Aldrich
Time: Tuesday 8:00 AM - 12:00 PMBeing a good developer isn’t just about slinging code; we’re part of a community. Interacting with others in a community means feelings are involved. But feelings are messy and uncomfortable, so why can’t you just ignore them? Because emotional skills are critical for working well on a team....
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: Introductory and overviewBringing ML to Mobile Apps - Let's build an app to perform Face Recognition using Flutter
Presented by: Don Ward
Time: Tuesday 8:00 AM - 12:00 PMThe Background Flutter is Google’s cross-platform development framework for quickly crafting high-quality native apps on Web, iOS, Android, and ChromeOS in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source....
Room: NileTrack: MobileFormat: PreCompilerLevel: Introductory and overviewIntroduction to Kubernetes
Presented by: James Strong
Time: Tuesday 8:00 AM - 12:00 PMIntroduction to Kubernetes is a hands-on, interactive workshop giving attendees a thorough understanding of the fundamentals of Kubernetes. As part of this workshop, you will learn how Kubernetes works, deploy microservices to that cluster & also hear about some war stories.
Room: OrangeTrack: ArchitectureFormat: PreCompilerLevel: Introductory and overviewHands On Threat Modeling Workshop
Presented by: Robert Hurlbut
Time: Tuesday 8:00 AM - 12:00 PMThreat 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...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediatePutting the D&D in TDD
Presented by: George Walters II, Guy Royse
Time: Tuesday 8:00 AM - 12:00 PMAre you tired of TDD workshops that make you do boring things like calculating bowling scores and prime factors or demonstrate how to win the game of life? If so, this is the session for you! In this TDD workshop, we will be building the domain model for EverCraft -- a new MMORPG from Blizzards of...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: Introductory and overviewArts & Crafts with AWS Glue Workshop
Presented by: Lydia White, James Zhang
Time: Tuesday 8:00 AM - 12:00 PMConstructing and administering a big data scale Extract, Transform & Load (ETL) and Business Intelligence (BI) pipeline can be expensive and complicated. Fortunately, Amazon Web Services (AWS) simplifies this with Glue and QuickSight services. Glue, a fully managed, serverless and cloud-optimized...
Room: Salon HTrack: DataFormat: PreCompilerLevel: Introductory and overviewDesign & Research Fundamentals for Developers
Presented by: Alex White
Time: Tuesday 8:00 AM - 12:00 PMHow do you know what you’re building is important to your customers? As a developer, it’s easy for you to jump right into the code when given a problem to solve, but what if you build something that nobody wants? Taking the time to design and research your product can help you better meet the...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: Introductory and overviewBadge My IoT Life, Part 1
Presented by: Paul Pagel
Time: Tuesday 8:00 AM - 12:00 PMWhat can play games on the go, show your best face to the world, establish your geek creds way better than any iPhone, and potentially do some useful work too? Why, the "official" CodeMash 2020 IoT Badge of course! In this workshop, you will construct your very own battery-powered WiFi-enabled...
Room: MangroveTrack: HardwareFormat: PreCompilerLevel: Introductory and overviewGet Up and Running Quickly With Vue.js
Presented by: Burton Smith
Time: Tuesday 1:00 PM - 5:00 PMWhether you are enhancing a legacy application or starting a greenfield project, Vue.js can help reduce your development time. Vue.js a very lightweight and fast JavaScript framework that makes it ideal for modern applications - from using it as a library to create some enhanced features in your...
Room: ZambeziTrack: Web/Front-EndFormat: PreCompilerLevel: Introductory and overviewGIT: From beginner to Fearless
Presented by: Brian Gorman
Time: Tuesday 1:00 PM - 5:00 PMThis training is an introduction to GIT for source control. We'll take a look at getting started with GIT on our own machines, as well as working with GIT at public/private repositories on GitHub and/or BitBucket. Tools we'll use include BASH and VSCode GIT can scare people. It shouldn't. GIT is...
Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: IntermediateLet's play!
Presented by: Jean Lange, Remy Porter
Time: Tuesday 1:00 PM - 5:00 PMImprov games ~ZIP!~ build skills like paying attention ~ZAP!~, switching roles ~ZOP!~, negotiating uncertainty ~...zzZIP?~, and celebrating failure ~ZOP! HURRAH!~ … and these skills build up to real world benefits like understanding the people around you better, working well in a group, and not...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: Introductory and overviewXamarin Forms Workshop
Presented by: Jason Awbrey
Time: Tuesday 1:00 PM - 5:00 PMInterested in learning more about Xamarin, but not sure where to start? This workshop will give you a guerrilla introduction to the Xamarin platform, including live coding exercises in building a cross platform app with Xamarin Forms. We'll discuss the overall Xamarin ecosystem and the sometimes...
Room: NileTrack: MobileFormat: PreCompilerLevel: Introductory and overviewReactive Extensions Without Marbles
Presented by: Eric Smith
Time: Tuesday 1:00 PM - 5:00 PMReactiveX is an exciting technology that's rapidly becoming pervasive, with implementations in Java, Swift, JavaScript and more. It has use cases from asynchronous calls to UI development, but unfortunately most tutorials and explanations are filled with theory and marble diagrams. Trying to get...
Room: OrangeTrack: ArchitectureFormat: PreCompilerLevel: IntermediateiOS Application Security Testing
Presented by: Hans Weisheimer
Time: Tuesday 1:00 PM - 5:00 PMThis hands-on session is aimed at mobile app developers, QA testers, aspiring security testers, and other suspicious persons. Modern mobile app development abstracts away most low-level interaction with the operating system. It is common to rely on third-party modules to handle sensitive data or...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateTech Debt Be Gone! Time to Refactor JavaScript
Presented by: Joe Morgan, Laurie Barth
Time: Tuesday 1:00 PM - 5:00 PMIt’s been a battle, but the code is finally working. It’s time to clean it up, but not so fast, something else is on fire and the code has to be pushed as it is. Whenever there is time to refactor something else comes up. Of course, this doesn’t just happen once. A quick change here. A little...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: IntermediateCodemash VoiceHack 2020
Presented by: Jeff Blankenburg
Time: Tuesday 1:00 PM - 5:00 PMThis is a pre-compiler for learning how to build voice applications using Alexa. We will cover things like intents, sample utterances, handlers, and voice design principles. You'll learn how to use AWS Lambda functions, talk to APIs, and even how to make some money. But this is also a kickoff to...
Room: Salon ATrack: HardwareFormat: PreCompilerLevel: IntermediateHadoop Essentials
Presented by: Eric Richardson
Time: Tuesday 1:00 PM - 5:00 PMBig Data and Cloud platforms have their origins in Hadoop. Learn the fundamentals of HDFS, Map Reduce and Yarn the three core components of Apache Hadoop. You will start a sandbox cluster, interact with HDFS, learn how HDFS saves data and why it does it that way. MapReduce is an important...
Room: Salon HTrack: DataFormat: PreCompilerLevel: IntermediateKubernetes hands-on (Workshop)
Presented by: Rob Richardson
Time: Tuesday 1:00 PM - 5:00 PMKubernetes is how you run Docker in production. Bring your laptop with Docker for Windows or Docker for Mac edge version installed. We'll walk through getting a K8s cluster fired up on Docker-Desktop, minikube, and on Azure. You'll be hosting Docker containers in development and production in no...
Room: Salon DTrack: DevOpsFormat: PreCompilerLevel: Introductory and overviewBuilding a Full CRUD Application in Excel with VBA and SQL Integration
Presented by: Derek Mulhausen
Time: Tuesday 1:00 PM - 5:00 PMIn this talk, we will build a full application from scratch in Excel to store customer discounts in Excel. We will start with recording a macro to quickly prototype some of our actions and then dig into the underlying code to polish the formatting and produce a product that can be put into...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: IntermediateBadge My IoT Life, Part 2
Presented by: Paul Pagel
Time: Tuesday 1:00 PM - 5:00 PMWhat can play games on the go, show your best face to the world, establish your geek creds way better than any iPhone, and potentially do some useful work too? Why, the "official" CodeMash 2020 IoT Badge of course! This session will use the badge created in Part 1 and take a closer look at...
Room: MangroveTrack: HardwareFormat: PreCompilerLevel: Introductory and overviewFrom idea to physical series: A basic overview of the world of CAD and 3D printing
Time: Tuesday 1:00 PM - 2:00 PMThis session will talk about the exciting world of 3D printing with a bit of the history of the technology. We will look at the lab’s printers as well as models made on them. We’ll then cover choosing a CAD app and will briefly cover using curated 3D printer object libraries and different CAD...
Room: Guava / TamarindFrom idea to physical: A demo of how to make CAD models in Rhino3d
Time: Tuesday 2:00 PM - 4:00 PMThis lab is intended to be a fast-paced technology walk-through of the process of creating a 3D printed object. We will focus in on the process of using CAD to create our model with a NURBS modeler called Rhino3D and will walk through the UI and how Rhino uses basic curves and shapes to create more...
Room: Guava / TamarindFrom idea to physical series: Additional Castle project walk-through Rhino project
Time: Tuesday 4:00 PM - 5:00 PMCan’t get enough model building? Want to make something more advanced than your basic cups/keychains/challenge coins? We’ve noticed we have some repeat students each year on our kids track that just love to build models, and we’ve also run several years of our introductory track for adults. We...
Room: Guava / TamarindWednesday
Building an educational game with .NET Core and Unity3D (Workshop)
Presented by: Johnny Hooyberghs
Time: Wednesday 8:00 AM - 12:00 PMIf you are waiting for a deep dive into .NET Core, the Microsoft Compiler Platform and Unity3D this workshop is for you! No high-level tech demos, but a real-life application that is used in schools. Building an educational game, with robots fighting to the death, from scratch, will be a blast. This...
Room: ZambeziTrack: ArchitectureFormat: PreCompilerLevel: IntermediateThe Demystifying Docker and Kubernetes DOJO
Presented by: Barry Tarlton, Michael Frayer
Time: Wednesday 8:00 AM - 12:00 PMWant to be able to able to go from code to containers and then to a fully resilient, cluster managed environment like Kubernetes? Then this session is for you! This session will start with your code (or ours if you don't want to bring your own) and take you through the steps of packaging it as a...
Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: IntermediateDecision Making in the Face of Uncertainty
Presented by: Gary Short
Time: Wednesday 8:00 AM - 12:00 PMDecision making in the face of uncertainty is one of the hardest things to do. In this pre-compiler session, we'll borrow methods from machine learning, statistics, trading and computer science to compose a methodology which will allow you to make the best decision possible given the evidence you...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: IntermediateBuilding Declarative UI with SwiftUI
Presented by: Jeff Kelley
Time: Wednesday 8:00 AM - 12:00 PMAt WWDC 2019, Apple shocked its developer community with the announcement of SwiftUI—a brand-new, declarative UI framework for all of their platforms. In this workshop, we’ll build a brand new app from scratch with SwiftUI that can run on all of Apple’s platforms: iOS, macOS, watchOS, and...
Room: NileTrack: MobileFormat: PreCompilerLevel: Introductory and overviewGet Progressive with it
Presented by: Matthew LaForest
Time: Wednesday 8:00 AM - 12:00 PMResponsive web design! Mobile first! Hybrid apps! We are continuously bombarded with new ideas about the best way to develop a new application. For a small team, effectively delivering across many platforms can be a problem, but delivering a hybrid app frequently falls into an uncanny valley...
Room: OrangeTrack: Web/Front-EndFormat: PreCompilerLevel: IntermediateApplication Security, Basic, Intermediate, Advanced
Presented by: Bill Sempf
Time: Wednesday 8:00 AM - 12:00 PMBill will be joining us to teach a dynamic course to help us think like an attacker and give us all the coding tips we need to stop them cold in their tracks. Even the most experienced developers are sure to pick up some new tips and tricks. This hands-on half-day workshop will have something for...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateBuilding Quality JavaScript With Test-Driven Development
Presented by: Steven Hicks
Time: Wednesday 8:00 AM - 12:00 PMLearning Test-Driven Development (TDD) is frustrating. The first couple tests feel strange - you wonder why you're writing tests that fail on purpose. Before long, you find yourself behind schedule from spending so much time on tests. You abandon unit testing completely. You'll write them...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: Introductory and overviewFrom Particle to Alexa
Presented by: Brandon Satrom, Jeff Blankenburg
Time: Wednesday 8:00 AM - 12:00 PMIn this 4-hour workshop, you will get to work with the two teams behind Particle IoT hardware and Amazon Alexa to build and code your own IoT device, which you can then command with your own Alexa skill. Come learn about how to command IoT devices, add and measure sensors, and use Particle’s rich...
Room: Salon ATrack: HardwareFormat: PreCompilerLevel: Introductory and overviewKafka: Build, Deploy, and Monitor Your First Real-World Application
Presented by: Justin Pihony
Time: Wednesday 8:00 AM - 12:00 PMCompanies nowadays are finding it critical to be able to gather and analyze massive amounts of disparately-sourced data, quickly and reliably. By diving into the fundamentals of Apache Kafka, you will learn how it can be more than a superior, distributed messaging system, but also a platform to...
Room: Salon HTrack: DataFormat: PreCompilerLevel: IntermediateWorkshop: JVM Application Monitoring with Micrometer, Prometheus, and Grafana
Presented by: Andrew Fitzgerald, Nathan Zender
Time: Wednesday 8:00 AM - 12:00 PMTired of waiting for reports from users to let you know your application is having performance issues? If you’re looking for a way to increase visibility into your application beyond plain text logs, this is the pre-compiler for you! In this half-day, hands-on workshop you will receive an in...
Room: Salon DTrack: DevOpsFormat: PreCompilerLevel: AdvancedMaking Reality Virtual: Simulating Experiences with VR Prototyping
Presented by: Scott Showalter
Time: Wednesday 8:00 AM - 12:00 PMTake the Red Pill, and let's dive into the mind-bending Matrix that is Virtual Reality prototyping. Not just for gaming (though that's cool too), a new dimension of experience simulation is now open to designers of software as well as physical products, to observe customer interaction and gather...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: IntermediatePractical Microservices: Get Hands-on with Event Sourcing and CQRS
Presented by: Ethan Garofolo
Time: Wednesday 1:00 PM - 5:00 PMHave you attempted a microservices architecture and struggled? Have you read about event sourcing and CQRS, but are disappointed to only find high-level descriptions? Want to get hands-on and actually learn these concepts in the context of a functioning system? This workshop does just that. This...
Room: ZambeziTrack: ArchitectureFormat: PreCompilerLevel: AdvancedJava 9, 10 & 11 Workshop
Presented by: Christopher Judd
Time: Wednesday 1:00 PM - 5:00 PMWith the quick moving 6-month Java train releases, you like many Java developers and organizations may have remained on Java 8 waiting for the next Long-Term-Support (LTS) release. Well, Java 11 is here so it is time to begin the adoption and upgrading. Java 9 was a HUGE release with many impactful...
Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: IntermediateCoaching Katas - In Search of The Answer to the Agile Kobayashi Maru
Presented by: Faye Thompson, Charles Husemann
Time: Wednesday 1:00 PM - 5:00 PMThese virtues are formed in man by his doing the actions. -- Aristotle A code kata is an exercise in which developers hone their programming skills through practice and repetition. This workshop is intended to do the same thing for agilists by providing them with difficult real-world scenarios to...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: PreCompilerLevel: IntermediateServer Side Swift Saves CodeMash: Breaking free of the phone
Presented by: Anne Cahalan
Time: Wednesday 1:00 PM - 5:00 PMCodeMash is a whirlwind of great workshops, talks, and experiences. If only you could capture these insights and save them forever... Swift can help -- but we're NOT going to build an iOS app! Server Side Swift has gone from a fun idea to a robust, mature platform for moving data from the backend...
Room: NileTrack: MobileFormat: PreCompilerLevel: IntermediateCreating a Cohesive Collection of Components with React
Presented by: Russell Skaggs
Time: Wednesday 1:00 PM - 5:00 PMComponent libraries enable teams to do more work quicker. It frees up our designers and developers to work on big issues, while allowing them to make updates with surgical precision. Building components within React has never been easier. During this presentation we will: create a set of React...
Room: OrangeTrack: Web/Front-EndFormat: PreCompilerLevel: AdvancedBuilding a DevSecOps Pipeline
Presented by: Gene Gotimer
Time: Wednesday 1:00 PM - 5:00 PMThe release date is a week away. Development is complete. The code works, and everything looks good. Marketing is ready with the media blitz. Our customers are waiting to get their hands on the new features and are sure to give us good feedback. The only step left is to get the security group to...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: PreCompilerLevel: IntermediateEnsure Your Users Experience - A Trip Around User Validation Tools
Presented by: Rick Clymer, Aaron Glass
Time: Wednesday 1:00 PM - 5:00 PMIn today’s fast feedback world, getting our product in front of users often is incredibly important. But how do we know our product is ready to go in front of our users. Sure, we have 1,000’s of unit and integration tests on each of our microservices, but what happens when we put them all...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: PreCompilerLevel: IntermediateHands-on Infrastructure as Code
Presented by: Andrew May
Time: Wednesday 1:00 PM - 5:00 PMLearn the benefits of Infrastructure as Code (IaC) in this workshop where you'll provision resources in AWS using both CloudFormation and Terraform. Learn the joy of creating Infrastructure in a repeatable manner with a single command line replacing a hundred clicks in the web console.
Room: Salon ATrack: DevOpsFormat: PreCompilerLevel: IntermediateHelp Cure the #1 Leading Cause of Death in America
Presented by: Luther Hill
Time: Wednesday 1:00 PM - 5:00 PMThe number one leading cause of death in America is Cardiovascular Disease. Doctors often spend years researching cures for this disease without any results. In this highly interactive 4-hour tutorial attendees will build an image recognition model and then use it to build and deploy a web app to...
Room: Salon HTrack: DataFormat: PreCompilerLevel: AdvancedMicro Frontends: Breaking up the Frontend Monolith
Presented by: Kito Mann
Time: Wednesday 1:00 PM - 5:00 PMOver the past several years we have embraced microservices as a way to “break up the monolith” and reduce complexity, allowing teams to focus on specific areas of functionality, while providing more flexible scaling and better fault isolation. However, for most of us, the front-end has remained...
Room: Salon DTrack: Web/Front-EndFormat: PreCompilerLevel: IntermediateWhat to expect when you’re concepting - Product Learning Lab
Presented by: Saad Kamal
Time: Wednesday 1:00 PM - 5:00 PMYou have a great idea for a digital product and have committed to making your vision a reality. What now? Product Learning Lab will walk you through the basics of how to communicate that great idea to the rest of the world - and more importantly - the rest of your eventual product team. Learn to...
Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: AdvancedAnalysis and Defense of Automotive Networks
Presented by: Samuel Hollifield
Time: Wednesday 1:00 PM - 5:00 PMNote: This precompiler will require an additional ticket purchase in order to retain the Arduino hardware featured in the presentation. Modern vehicles are critically vulnerable. They rely on many electronic computers and sensors which communicate by broadcasting critical information over many...
Room: MangroveTrack: HardwareFormat: PreCompilerLevel: Introductory and overviewFrom idea to physical series: A basic overview of the world of CAD and 3D printing
Time: Wednesday 1:00 PM - 2:00 PMThis session will talk about the exciting world of 3D printing with a bit of the history of the technology. We will look at the lab’s printers as well as models made on them. We’ll then cover choosing a CAD app and will briefly cover using curated 3D printer object libraries and different CAD...
Room: Guava / TamarindFrom idea to physical: A demo of how to make CAD models in Rhino3d
Time: Wednesday 2:00 PM - 4:00 PMThis lab is intended to be a fast-paced technology walk-through of the process of creating a 3D printed object. We will focus in on the process of using CAD to create our model with a NURBS modeler called Rhino3D and will walk through the UI and how Rhino uses basic curves and shapes to create more...
Room: Guava / TamarindFrom idea to physical series: Additional Castle project walk-through Rhino project
Time: Wednesday 4:00 PM - 5:00 PMCan’t get enough model building? Want to make something more advanced than your basic cups/keychains/challenge coins? We’ve noticed we have some repeat students each year on our kids track that just love to build models, and we’ve also run several years of our introductory track for adults. We...
Room: Guava / Tamarind“How would you print that?” interactive panel
Time: Wednesday 5:00 PM - 6:00 PMWe have a wealth of different perspectives reflected with our 3D printing room staff- including tinkering hobbyists, hardcore makers, and even that of using multiple printer types repeatably in a small business setting. We thought it would be fun to share these various perspectives on how we...
Room: Guava / TamarindLightning Talks
Time: Wednesday 7:00 PM - 9:00 PMThese are a series of (usually) really interesting talks, all of which are only 6 minutes each!
Room: Suite 1 / Suite 6Welcome Reception
Time: Wednesday 8:00 PM - 10:30 PMThe Welcome Reception is in and around Marrakesh (the bar/restaurant area in the Convention Center). It will sprawl into the hallway as well
Room: Grand HallThursday
Technical debt must die - Communicating code to business stakeholders
Presented by: Matt Eland
Time: Thursday 8:00 AM - 9:00 AMOur software sucks. We're up to our necks in bugs and technical debt, yet we often seem to hit roadblocks explaining things in ways that bring about meaningful change. In this session you'll learn to gather, analyze, and interpret data in order to create effective presentations to communicate...
Room: ZambeziTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediatePython, the world beyond scripting
Presented by: Charles Yost
Time: Thursday 8:00 AM - 9:00 AMPython is a wonderful language for writing simple scripts. But have you ever wondered how to go to the next level? What does it take to create a library, a desktop application, or a web application in Python? How does documentation, testing, packaging, and deployment work? What are all these crazy...
Room: Indigo BayTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewBuilding Mobile Applications with the Ionic Framework
Presented by: Robert Lair
Time: Thursday 8:00 AM - 9:00 AMHave you wanted to start developing mobile applications, but have found that selecting the right technology, framework, and language is overwhelming? Ionic provides a framework that allows developers to build applications using familiar web technologies in order to produce a native application...
Room: CypressTrack: MobileFormat: General SessionLevel: Introductory and overviewOpen Source XAML Takes You Places!
Presented by: Sam Basu
Time: Thursday 8:00 AM - 9:00 AMXAML started life as a simple thin UI markup layer, but has had a surprisingly eventful history over years – from phenomenal rise to teetering on life support. Today, XAML powers a lot of app platforms and seems poised for success going forward. And almost all of XAML application stacks are now...
Room: NileTrack: MobileFormat: General SessionLevel: IntermediateEnd to End Testing with Cypress
Presented by: Avindra Fernando
Time: Thursday 8:00 AM - 9:00 AMLots of companies are investing in end to end testing to release high quality software and remain competitive in today’s market. But, end to end testing also come with a set of challenges that we have to overcome. Setting up, writing, running, and debugging these tests could be challenging and...
Room: OrangeTrack: Software QualityFormat: General SessionLevel: Introductory and overviewThreat Modeling on the Family Road Trip and Other Strategies for Delivering Secure Applications
Presented by: Angela Pinney
Time: Thursday 8:00 AM - 9:00 AMGene Spafford said: “The only truly secure system is one that is powered off...” Everyone wants secure applications, but creating them is hard, and we don't all have security certifications. How do you know where to start when "security" is not your full-time job? And how do you get the rest of...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewThe UX of Configuration Files
Presented by: Eemeli Aro
Time: Thursday 8:00 AM - 9:00 AMDevelopers are people too, and should be your primary concern when designing an interface for them to configure your tools and libraries. In other words, there are better options than JSON available, but they each come with associated costs and limitations. How well do JSON5, YAML and TOML play with...
Room: Sagewood / ZebrawoodTrack: UI/DesignFormat: General SessionLevel: IntermediateWhat Architecture (The Building Kind) Can Teach Us About Architecture (The Software Kind)
Presented by: Wes Delp
Time: Thursday 8:00 AM - 9:00 AMArchitecture has existed for the better part of human history. Over 2000 years ago, the Roman architect Vitruvius claimed that a good building must be durable, functional, and bring delight. Sounds familiar, right? This session will explore how architectural design concepts such as 'less is more',...
Room: Salon ATrack: ArchitectureFormat: General SessionLevel: Introductory and overviewHow I overcame my fear of JavaScript
Presented by: Kim DelSenno
Time: Thursday 8:00 AM - 9:00 AMAs a front- end developer, my current job has me using HTML, CSS, and a little bit of JavaScript. In this talk, I am going to walk you through exactly how I got over a major career slump and overcame my fear of going deeper into the world of JavaScript. I will walk you through how I learned to use...
Room: Salon HTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewMaking Faces: Image Reduction and Recognition
Presented by: Steve Crow
Time: Thursday 8:00 AM - 9:00 AMA 350px by 300px image contains 105,000 individual pixels. Comparing each pixel to tell whether or not two images are the same is not efficient. What if we could reduce the number of features, while still maintaining patterns and trends? What if we could perform this recognition by only comparing 25...
Room: Salon DTrack: DataFormat: General SessionLevel: Introductory and overviewTDD Designer Style: Styleguide Driven Development
Presented by: Matthew LaForest
Time: Thursday 8:00 AM - 9:00 AMDevelopers have adopted a number of techniques to help speed development of their products. Leveraging tests to help them design the interfaces to their underlying pieces (classes, functions, components, etc.). For a long time the interface between designers and developers has been a continual rough...
Room: Salon ETrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewQuantity vs. Quality: Is less (code) really more?
Presented by: Anne Cahalan
Time: Thursday 8:00 AM - 9:00 AMWe all strive to write clean, concise, reusable code. Everyone's had a moment of looking at a 500-line file or a 50-line method and thinking, "This is just too much code!" There can be real joy in breaking a giant mess into small, tidy bits. But when does the quest for brevity lead us into a swamp...
Room: MangroveTrack: Programming PrinciplesFormat: General SessionLevel: IntermediateFull Total World Global Domination: Creating a Geographically Redundant Website.
Presented by: Ryan Miller
Time: Thursday 8:00 AM - 9:00 AMWho doesn't want to dominate the world with a geo-redundant website that is actively served from multiple regions simultaneously and can seamlessly fail over when problems occur? Haven't we been hearing about this for years? The cloud is everywhere now. It's just button clicks, 5 minutes, easy...
Room: Portia/WisteriaTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewKM: Alexa Scavenger Hunt
Time: Thursday 9:00 AM - 12:00 AMReady for a digital adventure? There is an Alexa Scavenger Hunt throughout the Kalahari that you can play using your phone or tablet, and your voice! The hunt starts at the giant bronze gorilla (at the entrance to the convention center). You can do it entirely at your own pace or schedule, and there...
Room: Giant Bronze GorillaA .NET Data Access Layer You're Proud of (Without Entity Framework)
Presented by: Jonathan "J." Tower
Time: Thursday 9:15 AM - 10:15 AMIf you're a .NET developer, it almost goes without saying that you use Entity Framework as part of the data access code on your software projects. Sometimes, EF is just right for the job, but other times you want something more simple, with better control of the generated SQL queries, and more...
Room: ZambeziTrack: DataFormat: General SessionLevel: IntermediateKotlin for C# Developers
Presented by: Alex Dunn
Time: Thursday 9:15 AM - 10:15 AMDive into the latest craze in languages and platforms - Kotlin. This time we will be looking at it from the perspective of a .NET C# developer, draw comparisons between the languages, and bridge the gap between these 2 amazing languages. We'll look at: - Kotlin as a language - Platforms Kotlin is...
Room: Indigo BayTrack: MobileFormat: General SessionLevel: Introductory and overviewIntro to Machine Learning on the cheap and without a PhD in math: Overview
Presented by: Jim Wilson
Time: Thursday 9:15 AM - 10:15 AMMachine learning has traditionally required a command of advanced mathematics, years of university training, and expensive hardware to implement. Now with better open source tools and online resources it’s easier than ever to create your own robust neural networks. Be it image recognition,...
Room: CypressTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewDocument Yourself: A framework for career advancement
Presented by: Michelle Brenner
Time: Thursday 9:15 AM - 10:15 AMThe goal of this workshop is to document yourself the way you would document code. You wouldn’t expect someone who wants to use the program you built to read every line of code. Instead, they’re relying on the design documents and doc strings to know how it works. The same is true with your...
Room: NileTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewAngular and The Case for RxJS
Presented by: Sandi Barr
Time: Thursday 9:15 AM - 10:15 AMWhen choosing Angular to build a front end app, it can seem like RxJS is just one more thing to learn, and there’s no easy transition coming from another framework. But RxJS is efficient and expressive! We declare relationships between entities, describing the what not the how. The basic sequence...
Room: OrangeTrack: Web/Front-EndFormat: General SessionLevel: IntermediateCapture That Flag : How CTF Competitions Make You a Better Developer
Presented by: John Koerner
Time: Thursday 9:15 AM - 10:15 AMHave you ever been asked to "think like a hacker?" Do your eyes glaze over when you have to sit through a security audit of your application? Do you want to avoid having an incident like Target, Capital One, or Equifax? If any of these apply to you, consider participating in a Capture the Flag (CTF)...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewGoing crazy with CQRS
Presented by: Seth Kraut
Time: Thursday 9:15 AM - 10:15 AMCQRS stands for Command Query Responsibility Segregation, which doesn’t clarify that much. CQRS is a high performance, event oriented flavor of Domain Driven Design. CQRS challenges our normal conception of design. By separating read and write logic, this architecture unlocks unique possibilities....
Room: Sagewood / ZebrawoodTrack: ArchitectureFormat: General SessionLevel: IntermediateSuper Sleuth Testers: Unlocking the Power of Browser Developer Tools
Presented by: Hilary Weaver-Robb
Time: Thursday 9:15 AM - 10:15 AMThere’s a tool to aid our testing that we all have access to all the time. It’s hidden in plain sight, you just have to know the secret code to get to it. This secret tool? The browser’s developer tools, of course! Learn how the developer tools in your browser can give you insight into what...
Room: Salon ATrack: Software QualityFormat: General SessionLevel: Introductory and overviewUsability Starts With Accessibility
Presented by: Patrick McSweeny
Time: Thursday 9:15 AM - 10:15 AMFor many web developers, accessibility is an afterthought, if they even think about it at all. What they fail to realize is that planning for accessibility from the beginning can actually enhance the design process rather than hindering it, with the end result being more usable by everyone. This...
Room: Salon HTrack: UI/DesignFormat: General SessionLevel: IntermediateProject Zero or Removing barriers for creating OSS libraries
Presented by: Jimmy Byrd
Time: Thursday 9:15 AM - 10:15 AMYou have a brilliant idea for an open source library. You start this new repository thinking of how bright the future is with your code being use by others. Then reality then sets in. You realize to make all this possible you have to do a lot of non-feature work. You need a project structure, a test...
Room: Salon DTrack: Software QualityFormat: General SessionLevel: Introductory and overviewBeware of dark clouds on the horizon
Presented by: Andrew May
Time: Thursday 9:15 AM - 10:15 AMThere are many benefits to be gained in moving your infrastructure to the cloud, but many more ways in which it can go horribly wrong. Will yours be the next company to expose confidential information in a public S3 bucket? Will your cloud account become unmanageable and expensive because all the...
Room: Salon ETrack: DevOpsFormat: General SessionLevel: IntermediateGoing Loonie: Rebuilding the tape deck experience with Elixir, Nerves and RFID
Presented by: Ole Michaelis
Time: Thursday 9:15 AM - 10:15 AMMy wife and I built an Open Source, RFID based, WIFI enabled cassette-style recorder, powered by Elixir and the Nerves Framework. We call it the Looniebox, and it’s a wonderful way to share the old “fumble with scissors in the cassette to fix it” experience with our kids. In this talk,...
Room: MangroveTrack: HardwareFormat: General SessionLevel: Introductory and overviewTaking a byte of Java Bytecode
Presented by: Magnus Stahre
Time: Thursday 9:15 AM - 10:15 AMJava, Scala, Groovy, Kotlin, JRuby, Jython, Clojure. What do all these languages have in common? They are all powered by Java Bytecode. With the current ecosystem of languages running on the JVM, it is becoming important to learn more about the least common denominator. This talk gives an...
Room: Portia/WisteriaTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewSupport Emoji 💁♀️ and Go Worldwide 🌐 with Unicode
Presented by: Joe Sewell
Time: Thursday 9:15 AM - 10:15 AMAs the world becomes more and more connected, the way people communicate becomes more and more important. A prominent example is emoji: those little icons that are popular in text messages 📱 and on social media 🤝. Proposals for new emoji will often make the news. But did you know that emoji...
Room: RosewoodTrack: DataFormat: General SessionLevel: Introductory and overviewKM: Sponsor Scavenger Hunt
Time: Thursday 10:00 AM - 2:00 PMPick up a Scavenger Hunt Sheet In Hangoutz / Crown Palm and walk through the sponsor booths to find the answers. Remember this is not a race! Once completed return to check your answers. All of the answers are names of Sponsors. All of the Answer Sponsors who participated volunteered to be a part of...
Room: HangoutzAPI Design - The Right Way
Presented by: Jit Krishnamurthy
Time: Thursday 10:30 AM - 11:30 AMAPIs are at the core of how applications interact with each other. The first step in developing an API is to design it and ever since Eric Evans introduced Domain Driven Design (DDD) in his book ‘Domain Driven Design: Tackling Complexity in the Heart of Software’, it has been the go-to tool for...
Room: ZambeziTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewCosmic Full-Stack a Blazor, ML.NET, and CosmosDB Mashup
Presented by: Ed Charbeneau
Time: Thursday 10:30 AM - 11:30 AMAre you ready to count down to liftoff? In this session, we test the limits of the .NET stack in an incredible mission to build BlazePort, a futuristic ride share app for space travel. We'll use a mashup of the latest in .NET technologies: leveraging CosmosDB for data persistence, model travel...
Room: Indigo BayTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewVue 3.0 Smaller, Faster & Stronger
Presented by: Dan Vega
Time: Thursday 10:30 AM - 11:30 AMVue.JS has quickly become one of the most popular JavaScript frameworks around. The Vue Core Team is getting ready to release the third major version of the framework and it's packed with new features and performance updates. In this presentation, I will show off some of those new features such...
Room: CypressTrack: Web/Front-EndFormat: General SessionLevel: IntermediateBuilding a Custom CSS Framework Was Easier Than I Thought
Presented by: Nate Taylor
Time: Thursday 10:30 AM - 11:30 AMIf you're like me, you've used several different front end frameworks such as Bootstrap, SemanticUI and others. You've enjoyed that they give you consistent components and layout. But perhaps you've been frustrated by those same tools. It could be that every site you have created with them looks...
Room: NileTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewAntifragile Teams
Presented by: Charlie Sweet
Time: Thursday 10:30 AM - 11:30 AMSoftware development is an activity that’s fraught with complexity, ambiguity, and therefore risk. Many organizations attempt to mitigate that risk through stringent processes, but there is a better way. In nature, there are three types of systems. 1. Fragile systems that break under stress,...
Room: OrangeTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediatePractical Cryptography for Developers
Presented by: Anthony Eden
Time: Thursday 10:30 AM - 11:30 AMUnderstanding the building blocks for cryptography is important for every software developer, especially as the quantity and value of data stored and sent over networks continues to grow. In this talk I will introduce you to the fundamentals of cryptography, demonstrating concepts such as symmetric...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overview[CANCELLED] Adding Search Capabilities to your Applications with Elastic Search
Presented by: Rod Paddock
Time: Thursday 10:30 AM - 11:30 AMThis session has been cancelled. We apologize for any trouble this causes.
Room: Sagewood / ZebrawoodTrack: DataFormat: General SessionLevel: IntermediateIntro to Hacking with the Raspberry Pi
Presented by: Sarah Withee
Time: Thursday 10:30 AM - 11:30 AMYou've heard lots of hype about the Raspberry Pi, the credit-card sized computer available for under $40. This (updated) talk will introduce some of the Pi's features, explore some sample projects you can create, and show you how to write code to control hardware through it's IO pins. After this...
Room: Salon ATrack: HardwareFormat: General SessionLevel: Introductory and overview+5, Insightful: Azure Application Insights to improve your code
Presented by: Tim Jarzombek
Time: Thursday 10:30 AM - 11:30 AMYou've worked hard on your app and are excited to finally release it. However, you start seeing reports of slowness, and it seems to crash once every 7 hours. Learn how to use Azure Application Insights to identify application issues like slow performance and crashes down to the line of code running...
Room: Salon HTrack: Software QualityFormat: General SessionLevel: Introductory and overviewWhat can Structured Logging do for you?
Presented by: Charles Yost
Time: Thursday 10:30 AM - 11:30 AMStructured logging is a way to bring order and value to your logging. Gone are the days where print debugging was the only option. Now as logs become more complex, developers struggle to pack more information into a single line. The modern solution has emerged: Structured Logging. But this is not...
Room: Salon DTrack: DevOpsFormat: General SessionLevel: Introductory and overviewThe Integration Game: How to Pick a Winning Integration Pattern
Presented by: Branden Bellanca
Time: Thursday 10:30 AM - 11:30 AMPoint-to-Point, Hub-and-Spoke, ESB, Remote Process Invocation, batching... so many terms fly around when talking about enterprise integration. How can we best decide which of these is the "right tool for the job"? How can we develop an integration architecture that supports the business's needs,...
Room: Salon ETrack: ArchitectureFormat: General SessionLevel: Introductory and overviewMake More 💰 Money with Less 🛠 Effort: 🧪 Experimentation Before Implementation
Presented by: Scott Showalter
Time: Thursday 10:30 AM - 11:30 AMDeveloping apps is time consuming, with little guarantee of success. The Web, App Store, Google Play and beyond are littered with apps making low or no revenue because they don't solve problems people actually care about. Before you build your “killer” ap, how can you truly know beyond the...
Room: Portia/WisteriaTrack: MobileFormat: General SessionLevel: IntermediateAn Introduction to WebAssembly
Presented by: Guy Royse
Time: Thursday 11:45 AM - 12:45 PMWant to write a web application? Better get familiar with JavaScript JavaScript has long been the king of front-end. While there have been various attempts to dethrone it, they have typically involved treating JavaScript as an assembly-language analog that you transpile your code to. This has lead...
Room: ZambeziTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewA Mobile App Success Starter Pack
Presented by: Jeff Kelley
Time: Thursday 11:45 AM - 12:45 PMWhen you’re pitching a mobile app to a prospective client, it’s easy to focus on the app’s raison d’être. A pizza-ordering app should order pizza, a messaging app should send messages, and a game should be fun. For an app to succeed, there are countless other hidden tasks to consider: does...
Room: Indigo BayTrack: MobileFormat: General SessionLevel: Introductory and overviewConducting Humane Code Reviews
Presented by: Adrienne Tacke
Time: Thursday 11:45 AM - 12:45 PMCode reviews are a must in a proper development workflow, but what happens when performing or receiving one becomes as fun as getting a root canal? Instead of contributing meaningful suggestions, developers often use these reviews as an opportunity to rehash old arguments or show their...
Room: CypressTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateBringing Order to Chaos
Presented by: Scott Connerly
Time: Thursday 11:45 AM - 12:45 PMSo, you find yourself coding in a code base that has some warts. OK, let's be honest, its a steaming pile of gum and toothpicks you're afraid to touch lest it might fall apart. How do you get from there to ... anywhere, let alone viable, architecturally useful, and stable? In this talk, we'll...
Room: NileTrack: ArchitectureFormat: General SessionLevel: IntermediateHobby Projects Are Awesome!
Presented by: Joel Byler
Time: Thursday 11:45 AM - 12:45 PMThere you are, enjoying a hobby that you love. One that gets you away from your screens and keyboard. Then out of nowhere an idea comes to mind, maybe its spurred by a problem that you encountered or a way that you could improve on a technique, you pull from your experiences and decide to start a...
Room: OrangeTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewSecuring Your API Endpoints - A Practical Authentication Guide
Presented by: Seth Petry-Johnson
Time: Thursday 11:45 AM - 12:45 PMIt'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 getting into the weeds of cryptography...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateLet's talk about documentation (but more fun than that sounds)
Presented by: Mike Hand
Time: Thursday 11:45 AM - 12:45 PMStreet signs. Clothing tags. LEGO instructions. Furniture assembly... "instructions." Every field requires documentation, but some are far better at it than others. We'll take a tour through the highlights and lowlights, hits and misses -- and then see what we can apply back to the field of software...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: General SessionLevel: Introductory and overviewGraphing Your Way Through the Cosmos: Common Data Problems Solved with Graphs
Presented by: Chad Green
Time: Thursday 11:45 AM - 12:45 PMData as it appears in the real world is naturally connected, but traditional data modeling focuses on entities which can cause for complicated joins of these naturally connected data. That is where graph databases come in as they store data more like what happens naturally in the real world. Sure,...
Room: Salon ATrack: DataFormat: General SessionLevel: Introductory and overviewAutomating Your Automation: The Care and Feeding of Jenkins
Presented by: Jeff McKenzie
Time: Thursday 11:45 AM - 12:45 PMIf you're like 70% of continuous integration and delivery users out there, you're using Jenkins, the powerful and popular automation server. But how do you know you're doing it right? Are you getting the most out of the strategies you've chosen? In this session you'll learn how best to manage your...
Room: Salon HTrack: DevOpsFormat: General SessionLevel: IntermediateImpress Your Boss with Interactive Visualizations
Presented by: Tim Garvin
Time: Thursday 11:45 AM - 12:45 PMWe all have little troves of data lying around, begging to be analyzed. In this session, we’ll talk about how to visualize your data to tell the story you want. Whether you’re trying to decide what support ticket to work on next, convincing your team it’s safe to let you rewrite a module, or...
Room: Salon DTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewWhy You Fail to Make Good Predictions and What You Can Do About it.
Presented by: Sho Fola
Time: Thursday 11:45 AM - 12:45 PMWhat sets good predictors apart from others? Is good judgment innate or something you can nurture? As a knowledge worker, your ability to make good decisions will set you apart from your peers. Whether you’re planning out a work project or playing fantasy football good predictions are essential...
Room: Salon ETrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewTests Your Pipeline Might Be Missing
Presented by: Gene Gotimer
Time: Thursday 11:45 AM - 12:45 PMDeveloping a delivery pipeline means more than just adding automated deploys to the development cycle. It’s about gaining confidence that your builds are viable candidates for release or production. For development to be successful, tests of all types must be incorporated throughout the process to...
Room: MangroveTrack: Software QualityFormat: General SessionLevel: Introductory and overviewModular Monolith: the Best of Both Worlds
Presented by: Seth Kraut
Time: Thursday 11:45 AM - 12:45 PMFirst, everyone wrote monoliths, but monoliths invariably become a big ball of mud. Now, microservices are all the rage, but they come with significant complexity. Modular monoliths combine the simple development and deployment of monoliths with much of the decoupling of microservices. This session...
Room: Portia/WisteriaTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewHelp! My Client Needs a VPAT and other Accessibility Questions
Presented by: Courtney Heitman
Time: Thursday 11:45 AM - 12:45 PMWhat is a VPAT? Why do my clients keep asking about them? These questions are becoming more and more common with the rise of accessibility lawsuits. VPATs (Voluntary Product Accessibility Template) are the common ask for companies to make sure they are buying software that is accessible. This talk...
Room: RosewoodTrack: Web/Front-EndFormat: General SessionLevel: AdvancedAPI Gateways and Microservices: 2 peas in a pod
Presented by: Santosh Hari
Time: Thursday 1:00 PM - 2:00 PMChances are you’ve already gone through the tedious process of decomposing your monolith into microservices, or at the very least, want to use microservices in the near future. Nowadays, microservices connect to various APIs. These APIs could differ in protocols (REST/SOAP), where they’re hosted...
Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewGoing Fast: The Art of Delivering Quality Software Quickly
Presented by: Josh Carroll
Time: Thursday 1:00 PM - 2:00 PMBuilding software is tricky business and the demands are higher than ever. Agile was meant to free us from the confines of red-tape driven software, but most of us can't help but feel something is off in our software process. Do you wonder why startups can launch an entire product in a few months,...
Room: Indigo BayTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewHold Up, Wait a Minute, Let Me Put Some Async In It
Presented by: Matthew Jones
Time: Thursday 1:00 PM - 2:00 PMThe introduction of async/await to C# has irrevocably changed how .NET developers created their applications. But what about older applications? How can they get the async goodness? In this code-heavy session, we'll take a "older" .NET web app which has no asynchronous code and slowly refactor it...
Room: CypressTrack: Programming PrinciplesFormat: General SessionLevel: IntermediateHOW TO HACK AN ELECTION
Presented by: Gary Short
Time: Thursday 1:00 PM - 2:00 PMThink your democracy is safe? Better think again. In this session I'll demonstrate the techniques that the 'black hat data scientists' use to get the result they want from any election or referenda. In this entertaining talk, I'll demonstrate techniques, both at the macro level - how to attack an...
Room: NileTrack: DataFormat: General SessionLevel: Introductory and overviewPostman Delivers! A Deep Dive into API Testing.
Presented by: Bob Crowley
Time: Thursday 1:00 PM - 2:00 PMWhether you are a tester or a developer of HTTP API’s, chances are you are already using Postman to some degree. Chances are also that you are missing out on some of the advanced goodness. Using only features of the free version, this session introduces you to effective use of these features to...
Room: OrangeTrack: Software QualityFormat: General SessionLevel: IntermediateWhat's in Your Docker? Open Source Security Vulnerabilities in Containers
Presented by: Matt Williams
Time: Thursday 1:00 PM - 2:00 PMSo you stay on top of operating system vulnerabilities and patch regularly, but did you ever consider that there may be vulnerabilities in your containers? In March of 2015, a report that over 30% of the "official" images in the Docker Hub contained high priority security vulnerabilities was issued...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewHow to Get Started with Swift in 2020
Presented by: Leo Dion
Time: Thursday 1:00 PM - 2:00 PMSwift is now a half decade old since its introduction at WWDC 2014. With Swift 5 and ABI stability, Swift has matured into a language ready for new adopters. In this talk, Leo gives an introduction to Swift development as well as Swift’s journey from the iPhone to the Watch to servers. Leo also...
Room: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: Introductory and overviewThe Agile Designer: Aligning Dual-track UX and Development to Balance the Tactical and Strategic, Mi
Presented by: Jenna Chamra
Time: Thursday 1:00 PM - 2:00 PMProduct teams everywhere are embracing Agile. It’s no wonder why: Agile creates better transparency, alignment and speed to market. The problem is, Agile was originally created for software developers. Design teams which try to adopt Agile often find themselves falling into “Faux-gile” or...
Room: Salon HTrack: UI/DesignFormat: General SessionLevel: IntermediateUnclogging Your Code: Linting 101
Presented by: Hannah Stannard
Time: Thursday 1:00 PM - 2:00 PMConsider your code base to be the dryer and the lint to be the stuff you really shouldn't be doing. Without a linter, all that fuzz is going to be trapped in your code! If you don't take care of this lint, your dryer will catch fire, much like your code base (also known as a dumpster fire). Join me...
Room: Salon DTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewSell Yourself With a Software Quality Portfolio
Presented by: Aaron Glass
Time: Thursday 1:00 PM - 2:00 PMFinding new job opportunities can be stressful and intimidating. Talking about yourself might not be in your domain. Questions of uncertainty may arise. How do I make myself more marketable? How do I separate myself from the rest of the pack? How do I keep myself fresh? The goal of this talk is...
Room: Salon ETrack: Software QualityFormat: General SessionLevel: IntermediateHacking Radiowaves for fun (but not profit)
Presented by: Craig Hills
Time: Thursday 1:00 PM - 2:00 PMAs 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? Capture that feeling again, except this time learn some science behind it and how to use the same technology to contact...
Room: MangroveTrack: HardwareFormat: General SessionLevel: Introductory and overviewBy Our Powers Combined: Observability for Developers
Presented by: Aaron Aldrich
Time: Thursday 1:00 PM - 2:00 PMThe world of maintaining applications is shifting. Our Systems Administrators aren't monitoring our application servers, it's the SREs determining SLIs and SLOs for our Micro-Services and making sure our Cloud-Distributed systems are Observable in near-real time. It's enough for buzzword burnout....
Room: Portia/WisteriaTrack: DevOpsFormat: General SessionLevel: IntermediateFrom idea to physical series: A basic overview of the world of CAD and 3D printing
Time: Thursday 1:00 PM - 2:00 PMThis session will talk about the exciting world of 3D printing with a bit of the history of the technology. We will look at the lab’s printers as well as models made on them. We’ll then cover choosing a CAD app and will briefly cover using curated 3D printer object libraries and different CAD...
Room: Guava / TamarindFrom idea to physical: A demo of how to make CAD models in Rhino3d
Time: Thursday 2:00 PM - 4:00 PMThis lab is intended to be a fast-paced technology walk-through of the process of creating a 3D printed object. We will focus in on the process of using CAD to create our model with a NURBS modeler called Rhino3D and will walk through the UI and how Rhino uses basic curves and shapes to create more...
Room: Guava / TamarindOwn Your Career (an owner’s guide for techies)
Presented by: Nexient (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Dan Broekhuizen) So it’s 2020 and you’re working in the #1 ranked job in the country, software development. Sweet, right? Truth is, having a great job is not the same thing as having a great career. How do you climb into the driver’s seat? Dan Broekhuizen — organizational...
Room: ZambeziTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewThrow Away Your Resume
Presented by: Rocket Mortgage by Quicken Loans (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Keith Elder) I threw away my resume 13 years ago, and haven't looked back. Why? I'm all-in on my workplace culture. What would it take for you to plant your roots and be all-in? Research shows, for most technologists, the key is an outstanding workplace environment and a culture that...
Room: Indigo BayTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewHow Couchbase added ACID transactions to NoSQL
Presented by: Couchbase (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Justin Simpson) Couchbase has always supported single-document ACID transactions. Why are multi-document transactions important? This is a question to which we already know the answer. The real question is how Couchbase was able to make multi-document transactions both scalable and...
Room: CypressTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewTech Startups | Do's, Don'ts and Things to Consider
Presented by: Bold Penguin (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Ilya Bodner & Frank Lamantia) This duo has influenced the success of 5 tech-enabled startups, participated in 14 venture rounds, and experienced dozens of failed products. They've seen everything. Ideation, investment, launch, growth, selling... everything. Their current venture is...
Room: NileTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewUpdate Strategies for IoT
Presented by: JFrog (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Kat Cosgrove) Devices on the edge are hard to update. The process is often clunky, slow, and inconvenient. So what’s making them harder to deal with than other machines, and how do we design a system that mitigates the problem when we’re dealing with such a wide range of hardware...
Room: OrangeTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewPractical Data Modeling with MongoDB
Presented by: MongoDB (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Austin Zellner, Principal Solutions Architect) Developers who are new to NoSQL often wonder, "how do we approach data modeling in a non-relational world". In this talk, we will dive into the fundamental elements of models supported by MongoDB, and how to combine the powerful...
Room: Aloeswood / LeopardwoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewTMW Systems Sponsor Session
Presented by: TMW Systems (Sponsor)
Time: Thursday 2:15 PM - 3:00 PMNo information submitted yet. Stay tuned!
Room: Sagewood / ZebrawoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewElastic Application Performance Monitoring, Observing the Mystical Unicorn
Presented by: Elastic (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by George Kobar) No matter what you call it, Observability or Monitoring, there is a fair share of buzzwords around this topic. The role for monitoring these applications on container or micro-services infrastructure both on-premises and in cloud is equally not clear and buzzword bloated....
Room: Salon ATrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewSo, You Think Consulting Might Be For You?
Presented by: Leading EDJE (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Larry Rickard, Chad Young, TBA) Being an IT consultant either independently or with a reputable firm can be very rewarding. It offers exposure to diverse and often leading-edge technology, the opportunity to work with a wide variety of clients, really smart people and a career path...
Room: Salon HTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewUX Journey from a Developer
Presented by: Progress Software (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Sam Basu) Many of us have strived to bridge the designer-developer mindset gap – this is easier said than done. Turns out, shiny UI does not always mean good UX. We need to have user personas in mind, as well as a few core UX principles, throughout the software development lifecycle....
Room: Salon DTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewSo You Know How To Code? A Gameshow For Geeks...
Presented by: HMB (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Presented by HMB Consultants) Now in its fifth year at CodeMash, come to play, come for the prizes! Join the HMB team in a fast-paced pub-style team trivia that will test your programming know-how or at least provide you with bizarre and hilarious fun facts. Prizes are up for grabs and...
Room: Salon ETrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewInclusion at the Workplace: You are more than an Awesome Coder
Presented by: Beam Dental (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Alejandro Vélez-Calderón) Ever wonder what inclusion really means? If you are an average American worker you will spend about ninety thousand hours of your life at work. If you can't be yourself while at work, that means you are spending about one third of your life repressing your...
Room: MangroveTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewAutomate those APIs: Integrate Services Faster with DreamFactory
Presented by: Dream Factory (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Jason Gilmore, CTO, DreamFactory) DreamFactory is an iPaaS that can dramatically reduce the amount of time and effort required to build and integrate APIs for a wide variety of data sources, including Microsoft SQL Server, MySQL, Oracle, Salesforce, AWS S3, and IoT devices. In this...
Room: Portia/WisteriaTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewThink Like an Attacker to Protect Your App
Presented by: PreEmptive (Sponsor)
Time: Thursday 2:15 PM - 3:00 PM(Presented by Peter Tefft) Applications running in untrusted environments are especially susceptible to attack. Threats include reverse engineering, probing, and tampering. These attacks can result in your intellectual property being stolen, or in compromised versions of your app being distributed,...
Room: RosewoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewThe Immutable Laws of Software and Life: Code Accordingly
Presented by: Cory House
Time: Thursday 3:30 PM - 4:30 PMThe first Law of Ecology: you can never merely do one thing. Actions have side-effects. In this session, we'll explore how changes in software design can have unexpected, profound impacts. In this story-based session, I'll reference both popular and little-known "laws" of computing and life. I'll...
Room: ZambeziTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewJavaScript the Grumpy Parts
Presented by: Rob Richardson
Time: Thursday 3:30 PM - 4:30 PMWe love JavaScript, but we must admit: it's weird. Why does `this` behave as it does? How does variable scope work? Why do we have such comical behavior when comparing mixed types? Let's pull back the covers of these scenarios, and learn how it truely works. You may find a new reason to fall in...
Room: Indigo BayTrack: Web/Front-EndFormat: General SessionLevel: AdvancedWhat's New in Xamarin Forms 4.0
Presented by: Jason Awbrey
Time: Thursday 3:30 PM - 4:30 PMXamarin Forms has evolved significantly since it's debug almost 5 years ago. The recently released v4 includes many awesome new features. In this session we'll look at the latest and greatest, including Shell, Visual Design, CollectionView and CarosuelView. We'll demonstrate hands-on examples of...
Room: CypressTrack: MobileFormat: General SessionLevel: IntermediateDigging In: Getting Familiar With The Code To Be A Better Tester
Presented by: Hilary Weaver-Robb
Time: Thursday 3:30 PM - 4:30 PMMaybe you’ve been testing the same application for a while, and your rate of finding new bugs has slowed. Or you’re trying to find more ways to figure out what your devs are doing day to day. You have the tools at your disposal, you just need to dig in! In this talk, Hilary Weaver-Robb shares...
Room: NileTrack: Software QualityFormat: General SessionLevel: Introductory and overviewUser Interviews: More than Just a Conversation
Presented by: Ash Banaszek
Time: Thursday 3:30 PM - 4:30 PMAnyone who can carry a conversation can interview users, right? Not so. Gaining insight into user requirements, needs, and frustrations is a nuanced process. Without the proper training, even well-meaning researchers can lead, bias, and manipulate users into getting the answers researchers...
Room: OrangeTrack: UI/DesignFormat: General SessionLevel: IntermediateA Series of Unfortunate Events - What Happens When Your App is Hacked.
Presented by: Joe Kuemerle
Time: Thursday 3:30 PM - 4:30 PMMany of us know about the various security checklists and how we should write more secure code. In this session we will move beyond top 10 lists and dive into the world of how attackers compromise systems and how they use those compromises to exploit both individuals and companies. You will see...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediatePublic Speaking For Engineers
Presented by: Robby Millsap
Time: Thursday 3:30 PM - 4:30 PMHave you ever wanted to deliver a session or keynote at your favorite conference? Have you ever attended a really boring session and thought, "I could do better than that!" Are you terrified of getting in front of your peers? Have you ever wondered how to effectively use humor to get your point...
Room: Sagewood / ZebrawoodTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewCoaching & Communicating with Diverse Teams
Presented by: Kiera Prioleau
Time: Thursday 3:30 PM - 4:30 PMDon’t worry; this isn’t the standard lecture on what diversity means and why it matters. Research shows that diverse teams are more innovative, productive, and just darn interesting. Diversity encompasses more than gender and race, which creates challenges for development team members and...
Room: Salon ATrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateLearning R through sports, or learning sports through R
Presented by: Mike Roznik
Time: Thursday 3:30 PM - 4:30 PMBig data has been a buzzword for years, but it’s only recently been hitting the world of professional sports. How do sports teams use this big data? Why with R! Together we’ll learn what kind of data they look for and how they present it. Along the way we’ll look at real world examples of R...
Room: Salon HTrack: DataFormat: General SessionLevel: Introductory and overviewMicroservice Patterns - Implemented by Eclipse MicroProfile
Presented by: Ivar Grimstad
Time: Thursday 3:30 PM - 4:30 PMArchitectures based on microservices introduce new challenges for architects and developers. New patterns emerge and existing are updated to be aligned to this relatively new architectural style. This session presents a group of patterns commonly used in microservice-based architectures. Each...
Room: Salon DTrack: ArchitectureFormat: General SessionLevel: AdvancedFun, Friendly Computer Science
Presented by: Mercedes Bernard
Time: Thursday 3:30 PM - 4:30 PMComputer science concepts like Big O Notation, set theory, data structures, and principles of object-oriented programming sound intimidating, but they don’t have to be! This talk will dive into some fundamental computer science topics and debunk the myth that only ‘real’ programmers know...
Room: Salon ETrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewFast, Reliable, Powerful IoT Projects Built on Elixir With Nerves
Presented by: Joel Byler
Time: Thursday 3:30 PM - 4:30 PMElixir was built to deliver low-latency, distributed and fault-tolerant systems, this is great for large enterprise applications but can also be leveraged to build impressive IoT applications on small single board linux machines like (but not limited to) a Raspberry Pi. Nerves was built to give...
Room: MangroveTrack: HardwareFormat: General SessionLevel: IntermediateSay No To Accidental Architecture! Code Your Design Systems Instead
Presented by: Burton Smith
Time: Thursday 3:30 PM - 4:30 PMAre you still rockin' a single "styles.css" file in or project or have styles scattered throughout your project? Do you find yourself fighting to override styles or throw the "!important" property around a lot? Does your project have 20 different kinds of buttons and you don't know why or even where...
Room: Portia/WisteriaTrack: ArchitectureFormat: General SessionLevel: IntermediateTerseScript: JavaScript with 6 characters or less
Presented by: Mike Hand
Time: Thursday 3:30 PM - 4:30 PMLet's explore the unique properties of JavaScript and learn how to write ANYTHING using only brackets, parentheses, plus, and bang. When you go back to using your full keyboard, you'll do it with a better understanding of JavaScript and some of it's, um, "features." Some of these hacks should NOT be...
Room: RosewoodTrack: Programming PrinciplesFormat: General SessionLevel: IntermediateFrom idea to physical series: Additional Castle project walk-through Rhino project.
Time: Thursday 4:00 PM - 5:00 PMCan’t get enough model building? Want to make something more advanced than your basic cups/keychains/challenge coins? We’ve noticed we have some repeat students each year on our kids track that just love to build models, and we’ve also run several years of our introductory track for adults. We...
Room: Guava / TamarindVertical Slice Architecture
Presented by: Jimmy Bogard
Time: Thursday 4:45 PM - 5:45 PMMoving from a layered architecture to a vertical slice architecture can be a bit daunting. We remove abstractions, complex structures, and focus building on the axis of change, then what's next? What new structures, patterns, and policies will need to be introduced in this style of architecture? How...
Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: IntermediateBuilding Scalable, Cloud-Ready Aplications with RESTier
Presented by: Chris Woodruff
Time: Thursday 4:45 PM - 5:45 PMIn this advanced session, RESTier project leader Chris Woodruff will show you how to use RESTier to build high-quality cloud-ready applications. We'll use different code generation techniques to build out the infrastructure to maximize code reuse across tiers. We'll spin up Angular and Xamarin...
Room: Indigo BayTrack: MobileFormat: General SessionLevel: AdvancedTwelve Spins on User Experience
Presented by: Keith Instone
Time: Thursday 4:45 PM - 5:45 PMWhat is “user experience,” really? Sure, it’s that feeling people get when they interact with your software, but the term UX is being used for more than that, in confusing ways. “We need some UX magic before we launch” “The UX team just gave us the designs, so let’s start...
Room: CypressTrack: UI/DesignFormat: General SessionLevel: IntermediateDevOps as a Force Multiplier for Agile
Presented by: Nate Berent-Spillson
Time: Thursday 4:45 PM - 5:45 PMSo your development team uses Agile, but you keep running into process constraints because the rest of the organization is wedded to the status quo? In retros, you’re constantly coming up against inefficient, manual operations? Every step of building a software product eats away at your...
Room: NileTrack: DevOpsFormat: General SessionLevel: IntermediateMutation Testing to the rescue of your Tests
Presented by: Nicolas Fränkel
Time: Thursday 4:45 PM - 5:45 PMUnit testing ensures your production code is relevant. But what does ensure your testing code is relevant? Come discover mutation testing and make sure your never forget another assert again. In the realm of testing, the code coverage metrics is the most often talked about. However, it doesn’t...
Room: OrangeTrack: Software QualityFormat: General SessionLevel: Introductory and overviewApp Deco - Applied Design Thinking for Secure Development
Presented by: Wolfgang Goerlich
Time: Thursday 4:45 PM - 5:45 PMUsability versus security is stupid. It forces us to choose one or the other. It excuses security breaches under the guise of usability. It automatically pits us against them, builders against breakers, developers against defenders. A better approach is to view security like usability: they happen...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateHuman Readable JavaScript: Using ES2015+ to Craft Better Code
Presented by: Laurie Barth
Time: Thursday 4:45 PM - 5:45 PMLove JavaScript? Awesome! Hate JavaScript? That's ok! In the past, JavaScript hasn’t always been easy to read; lots of dollar signs and slick one-liners do not a sustainable, high-longevity language make. The good news is that things have gotten better! Lots of ECMAScript 2015 (and beyond)...
Room: Sagewood / ZebrawoodTrack: Web/Front-EndFormat: General SessionLevel: IntermediateEverything I Needed to Know About Debugging I Learned in Elementary Physics
Presented by: Nate Taylor
Time: Thursday 4:45 PM - 5:45 PMHas there ever been a time where you got a bug report and you didn’t even know where to start? Have you ever felt overwhelmed with how code is behaving? You’re expecting one thing and it does the exact opposite? Situations like these can be some of the more frustrating aspects of software...
Room: Salon ATrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewThe Definitive Guide to Organizing Community Events
Presented by: Jennifer Wadella
Time: Thursday 4:45 PM - 5:45 PMCommunity organizing is no small feat and is VITAL to sustaining a technical workforce of learning, growth, and diversity. Since its foundation in 2013, Kansas City Women in Technology has grown to a volunteer team of more than 60 leaders running 6 technical/coding programs and several events per...
Room: Salon HTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewDeep Learning on the Edge
Presented by: Dan Kacenjar
Time: Thursday 4:45 PM - 5:45 PMMachine learning on microcontrollers? You bet! With the introduction of TensorFlow Lite, machine learning inferencing has moved to the edge... as in edge computing! Cloud-based servers or internet connections are no longer required. Machine learning can occur on the microcontroller, directly on the...
Room: Salon DTrack: HardwareFormat: General SessionLevel: Introductory and overviewHorizontal Scaling of Graph Databases
Presented by: Ryan Hendrickson
Time: Thursday 4:45 PM - 5:45 PMA very real problem is choosing what data to prioritize when storing it in a graph database. Most graph databases, including Neo4J, the number 1 graph database according to db-engines.com, do not scale horizontally. This leaves the size of the database constrained to how much disk space and ram is...
Room: Salon ETrack: DataFormat: General SessionLevel: IntermediateBlockchain from the Firehose
Presented by: Jacob Coulter
Time: Thursday 4:45 PM - 5:45 PMTake an in-depth look at Bitcoin, the blockchain that started it all. This session will cover all the pieces required to build a trustless distributed ledger. Learn from the most fundamental building blocks like hashing algorithms, transactions, and blocks, to the more advanced concepts such as...
Room: MangroveTrack: ArchitectureFormat: General SessionLevel: Introductory and overview[CANCELLED] Usability Testing and User Acceptance Testing: Do You Really Need Both?
Presented by: Trent Nguyen
Time: Thursday 4:45 PM - 5:45 PMThis session has been cancelled. We apologize for any trouble this causes.
Room: Portia/WisteriaTrack: Software QualityFormat: General SessionLevel: Introductory and overviewTesting your UI Components
Presented by: Avindra Fernando
Time: Thursday 4:45 PM - 5:45 PMWhen our clients give us kudos for releasing high quality applications, it makes us happy. To achieve great levels of quality, we need to thoroughly test our applications. But we know that some forms of testing can be expensive and tedious at times. Unit and integration tests help overcome some of...
Room: RosewoodTrack: Web/Front-EndFormat: General SessionLevel: Intermediate“How would you print that?” interactive panel
Time: Thursday 5:00 PM - 6:00 PMWe have a wealth of different perspectives reflected with our 3D printing room staff- including tinkering hobbyists, hardcore makers, and even that of using multiple printer types repeatably in a small business setting. We thought it would be fun to share these various perspectives on how we...
Room: Guava / TamarindSuper Smash Bros Ultimate Tournament
Time: Thursday 7:00 PM - 11:00 PMA tournament... where folks play Super Smash Bros
Room: IronwoodDessert Bar, Karaoke, and Photo Booth
Time: Thursday 8:00 PM - 11:00 PMDessert Bar is only until 9PM
Room: Grand HallWaterpark Party
Time: Thursday 10:00 PM - 1:00 AMIf you still have energy, come on down to the Waterpark Party! Swimming is optional. Having fun is mandatory. Sherwin-Williams is hosting a Waterpark Cabana, located near the wave pool! Late night snacks and drinks will be available while they last. Come by and grab a slice or two and meet some new...
Room: WaterparkFriday
KM: Alexa Scavenger Hunt
Time: Friday 7:00 AM - 1:00 PMReady for a digital adventure? There is an Alexa Scavenger Hunt throughout the Kalahari that you can play using your phone or tablet, and your voice! The hunt starts at the giant bronze gorilla (at the entrance to the convention center). You can do it entirely at your own pace or schedule, and there...
Room: Giant Bronze GorillaTechnical Leadership 101
Presented by: John Rouda
Time: Friday 8:30 AM - 9:30 AMWe all have potential to be technical leaders. What is a leader? My daughter says it’s the person in front of you in line. She’s right… in a way. A leader is just someone we follow. This talk will explore how we can lead those to our right and to our left. How to lead from any level, not...
Room: ZambeziTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewSolving the Boolean Identity Crisis
Presented by: Jeremy Fairbank
Time: Friday 8:30 AM - 9:30 AMWhile powerful in its simplicity and important to computation, the boolean can be limiting in applications. In this talk, briefly explore the history of boolean logic in computation and look at how booleans can become misused in programming languages. Explore examples where booleans obscure the...
Room: CypressTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewFrom Manual Testing to Automation Suite: A Guide For Everyone
Presented by: Mike Roznik
Time: Friday 8:30 AM - 9:30 AMDo you start with automation? Manual tests? Should you always consider both? What about working with developers, can they help? Learn some easy stepping stones to go from manual testing to getting your feet wet with automation to writing full automation suites. In this talk you can expect lots of...
Room: NileTrack: Software QualityFormat: General SessionLevel: Introductory and overviewEvent processing without breaking production
Presented by: Nathan Zender
Time: Friday 8:30 AM - 9:30 AMTransactional systems are built with the primary focus of processing many concurrent events, only keeping the current state of data. What if I told you there was a way to capture all the events that led to that current state? Capturing all events would allow for deeper analytics/machine learning,...
Room: OrangeTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewHack Your App - Intro to Mobile Security Testing
Presented by: Hans Weisheimer
Time: Friday 8:30 AM - 9:30 AMYour phone really doesn’t want you to see what’s going on under the hood - it’s a feature. Many of the introspection capabilities that exist for web development are absent by default on mobile platforms. This is particularly frustrating when you need to validate assumptions or security...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewStencilJS and Universal Components
Presented by: Mike Hartington
Time: Friday 8:30 AM - 9:30 AMHave you ever found an awesome component online, but couldn’t use it because it’s written for a different framework? For too long now, frameworks have gotten in the way of developers sharing code that they’ve written. With different APIs to work with, developers would have to rewrite a...
Room: Sagewood / ZebrawoodTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewThe best code, is the code never written.
Presented by: Daniel Davis
Time: Friday 8:30 AM - 9:30 AMIn the modern realms of software where getting to market fast and with minimal issues is a must in order to stay competitive, we need all the advantages we can get. One such advantage is to limit the amount of actual code produced and shipped. During this session we'll explore some of the practices,...
Room: Salon ATrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewSpeed, security and simplicity: Creating Container Images with Cloud Native Buildpacks
Presented by: Daniel Mikusa
Time: Friday 8:30 AM - 9:30 AMBuildpacks are a pluggable, modular, language-agnostic tool that takes application source code and in turn give you an OCI (Open Container Initiative) image which you can run using Docker, Kubernetes or your OCI Runtime of choice. Developers: You no longer need to worry about tedious tasks like...
Room: Salon HTrack: DevOpsFormat: General SessionLevel: Introductory and overviewPeople Networking 1100101
Presented by: Debbie Ryan
Time: Friday 8:30 AM - 9:30 AMWhile Networking can be scary, it is a SKILL which can be learned and honed and has a wide array of positive impacts. Job postings are incapable of giving the full picture of the job, but through networking with an existing team member it can provide great insights. Finding a new colleague that...
Room: Salon ETrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewAzure Kinect DK: Artificial Intelligence + Computer Vision = Your Next Generation Development Today!
Presented by: Lance Larsen
Time: Friday 8:30 AM - 9:30 AMAzure Kinect DK is most advanced Computer Vision device available for developers today! Combining advanced depth sensor, spatial microphone array, video cameras with sophisticated computer vision and speech AI models, the Kinect is gives us an unparalleled tool for building cutting edge computer...
Room: MangroveTrack: HardwareFormat: General SessionLevel: Introductory and overviewThe Creative Process of Coding
Presented by: Charlie Sweet
Time: Friday 8:30 AM - 9:30 AMThe process of writing software is often misunderstood. When you write business software you are not doing science, but rather art. Your job is not to build, but rather to design. Designing good software is about more than writing code. Knowing what code to write requires empathy and good...
Room: Portia/WisteriaTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewWell.. that's ONNX-pected
Presented by: Ron Dagdag
Time: Friday 8:30 AM - 9:30 AMThe world of machine learning frameworks is complex. What if we can use the lightest framework for inferencing on edge devices? That’s the idea behind ONNX format. Attend this session and find out how to train models using the framework of your choice, save or convert models into ONNX, and deploy...
Room: RosewoodTrack: DataFormat: General SessionLevel: IntermediateBurn It Down and Start Again: Principles of Modern JavaScript
Presented by: Joe Morgan
Time: Friday 9:45 AM - 10:45 AMHeard about the latest JavaScript syntax? Seems like a day doesn’t pass without a language update. And with all the focus on syntax changes, it’s easy to miss the subtle principles driving JavaScript. Modern JavaScript doesn’t just have new tools, it’s composed differently. Don’t use a...
Room: ZambeziTrack: Web/Front-EndFormat: General SessionLevel: IntermediateDealing with Disagreement
Presented by: Tommy Graves
Time: Friday 9:45 AM - 10:45 AMVirtually everyone extols the virtues of getting multiple and diverse perspectives on almost anything. In practice, however, multiple perspectives often just lead to heated disagreements that leave technology teams feeling divided and defeated. Creating mechanisms to resolve disagreements in a...
Room: Indigo BayTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewUnit Testing Strategies & Patterns in C#
Presented by: Bill Dinger
Time: Friday 9:45 AM - 10:45 AMLearn common patterns and strategies to effectively unit test your code in C#. We’ll go over design principles and ways to effectively ensure your code can be easily tested as well as how to use common testing tools such as Moq, Autofixture, & MsTest to help remove some of the drudgery of testing....
Room: CypressTrack: Programming PrinciplesFormat: General SessionLevel: AdvancedContext is King: Finding Service Boundaries
Presented by: Derek Comartin
Time: Friday 9:45 AM - 10:45 AMAre you having trouble defining service boundaries? We know there are benefits in splitting up a complex system, such as more focused models and modular deployments. Defining the correct service boundaries is incredibly important but can be pretty tricky. When defined correctly, the model feels...
Room: NileTrack: ArchitectureFormat: General SessionLevel: IntermediateBeyond Alt-Text: Trends in Online Accessibility
Presented by: Ian Forrest
Time: Friday 9:45 AM - 10:45 AMIf you're like the 2016 version of me, then you think you have a decent handle on web accessibility. You put alt attributes on all your images (though you don't give much thought to the actual text) and you make sure your sites can be used with a keyboard (except for overlays sometimes). Then the...
Room: OrangeTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewContinuous Security
Presented by: Craig Hills
Time: Friday 9:45 AM - 10:45 AMA presentation on how to build security testing into your CI/CD pipeline. The primary goal is to think about what the appropriate level of testing is for your project, and determine how to make the most significant improvements to your security, while being cost effective.
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewAPI Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild
Presented by: Dan Mosora
Time: Friday 9:45 AM - 10:45 AMIn the API Economy, users increasingly want to analyze and connect more of their business data, from small startup shops to multinational corporations. Thinking about making data available through an API? There are innumerable ways to slice the problem. How do you implement pagination? What data...
Room: Sagewood / ZebrawoodTrack: DataFormat: General SessionLevel: IntermediateFrom Punchcards to Git: A Brief History of Version Control
Presented by: Brian Meeker
Time: Friday 9:45 AM - 10:45 AMBelieve it or not, there was a time before Git! And even longer ago there was a time before version control itself! Come learn all about the version control systems of yesteryear, such as SCSS and RCS. Stick around to learn the horrors of file locking and versioning. Gaze into the madness that is...
Room: Salon ATrack: Software QualityFormat: General SessionLevel: Introductory and overviewBuilding a super performant GossipGirl.com in Gatsby in under 50 Minutes
Presented by: Jennifer Wadella
Time: Friday 9:45 AM - 10:45 AMHey, Upper East Siders, Gossip Girl here bringing you the scoop on rapidly building static websites in React. I don’t know about you, but my site is in a major need of an overhaul, so we’re going to rebuild it in under 50 minutes using GatsbyJS. We’ll make SEO look hot and blow some minds with...
Room: Salon HTrack: Web/Front-EndFormat: General SessionLevel: IntermediateOwning Your Experience: Talking about Mental Health In the Workplace
Presented by: Arthur Doler
Time: Friday 9:45 AM - 10:45 AMYour thoughts and your emotions affect your work, no matter how much you pretend that you can leave them at the door of your workplace. It's easy to deny your own experience the importance it deserves, especially if it's only inside your own head. But boxing it all away because you have "work to do"...
Room: Salon DTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateSerialization for the new micro service landscape
Presented by: Leonardo de Moura Rocha Lima
Time: Friday 9:45 AM - 10:45 AMSerialization is often overlooked when developing backend systems, and this wasn’t (and still isn’t) a problem inside a monolith. But with the developing scene moving towards micro services, serialization becomes really important - how to serialize your data? What aspects do you need to...
Room: Salon ETrack: ArchitectureFormat: General SessionLevel: Introductory and overviewHow Exploding Birthday Cakes and Other CRAZY Projects Come to Life
Presented by: Barry Tarlton
Time: Friday 9:45 AM - 10:45 AMHave an amazingly crazy idea for an Arduino or RaspberryPi project, but can't find a tutorial to help bring it to life? Do even the Googles seem unable to help you get started on the road less traveled? This session will prepare you to go beyond the average maker tutorials found online and help...
Room: MangroveTrack: HardwareFormat: General SessionLevel: IntermediateEnvironment Configuration for JavaScript Apps
Presented by: David Truxall
Time: Friday 9:45 AM - 10:45 AMFor traditional server-side web apps, environment-specific configuration is handled in a variety of ways, including environment variables, configuration files or password stores. But a front-end web app running in a framework like React or Vue can’t really use these same techniques since they...
Room: RosewoodTrack: DevOpsFormat: General SessionLevel: IntermediateAn Introduction to Quantum Programming
Presented by: Matt Norby
Time: Friday 11:00 AM - 12:00 PMQuantum computers can solve some classes of problems much faster than conventional computers. But the terminology can be confusing. What are qubits, superposition, and entanglement? And how can you harness them to write programs? In this session, you will learn the language and concepts of...
Room: ZambeziTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewREST in Peace: Killing REST and adopting RPC.
Presented by: Steven Swenson
Time: Friday 11:00 AM - 12:00 PMREST has been the de facto architecture for web APIs for 15 years, and its deficiencies are starting to become quite apparent. It is difficult to document, poor standardization, and lacks common tooling. For developers, this results in extra work when creating or consuming an API. The time has come...
Room: CypressTrack: ArchitectureFormat: General SessionLevel: IntermediateHiring and Inspiring an Exceptional Team
Presented by: Seth Petry-Johnson
Time: Friday 11:00 AM - 12:00 PMManagement gets a bad rap in technical circles, and for good reason: many managers are terrible, and it shows! Rising above the pointy-haired-boss stereotypes is easier than you might think. By grounding your leadership style in management science, and adding a touch of emotional intelligence, you...
Room: NileTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: IntermediateYou Version Your Code, Why Not Your Database?
Presented by: Derek Binkley
Time: Friday 11:00 AM - 12:00 PMCode versioning is an integral part of any developers daily workflow. However, database changes are often handled manually making automatic code deploys a challenge. If something goes wrong, rolling back a deployment requires either complex and possibly untested scripts or a database...
Room: OrangeTrack: DataFormat: General SessionLevel: Introductory and overviewExplain it to me like I'm 5: Oauth2 & OpenID
Presented by: Daniel Mikusa
Time: Friday 11:00 AM - 12:00 PMOauth2 and OpenID are quickly becoming mainstays for application developers. Companies want integrated authentication to reduce security footprints and users expect the convenience of single sign-on. As an application developer, it's up to you to facilitate this in your applications. In this talk,...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewAndroid: A peek under the hood
Presented by: Brad Hollander
Time: Friday 11:00 AM - 12:00 PMOver the years, Android has become one of the most widely used operating systems in the world. Boasting 2.5 billion active devices, it can be found running on practically any hardware, from high-end flagship phones to smartwatches and IOT devices. Despite this massive popularity, the inner workings...
Room: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: IntermediateAssembly Language: The (Sega) Genesis of Programming
Presented by: Joe Sewell
Time: Friday 11:00 AM - 12:00 PMHave you ever wondered how many popular video games of the 70s, 80s, and 90s managed to look, sound, and play so well, despite running on very limited hardware? One reason is that many of these games were written in assembly languages. Unlike compiled or interpreted languages, in assembly the...
Room: Salon ATrack: HardwareFormat: General SessionLevel: IntermediateThe Dark Side of UX
Presented by: Courtney Heitman
Time: Friday 11:00 AM - 12:00 PMUser experience design brings clarity, removes obstacles. It rewards - makes us feel accomplished, successful, happy. Users are confident when using a well-designed application - as easy as turning on a light switch: [Buy] Don't make me think: did I opt in? Don't make me think: was that a hidden...
Room: Salon HTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewA Lifecycle Of Code Under Test
Presented by: Bob Fornal
Time: Friday 11:00 AM - 12:00 PMWhen thinking about tests against code, have you "done enough?" How do you know that the code is covered appropriately, that odd bugs aren't going to crop up? Did you cover all the use cases and what if someone changes the code down-the-road? This session is about the unit and integration tests...
Room: Salon DTrack: Software QualityFormat: General SessionLevel: Introductory and overviewDevelopment magic: Producing more development time out of thin air.
Presented by: Jonathan Batteas
Time: Friday 11:00 AM - 12:00 PMIt's easy to get stuck in the, “if it ain’t broke, don’t fix it,” mindset with your software development process when real money is on the line, and deadlines loom. But taking the time to implement small changes to your pipeline, and foster a team attitude that's always looking for a...
Room: Salon ETrack: DevOpsFormat: General SessionLevel: IntermediateAzure Spatial Anchors: Building a Shared Mixed Reality across Devices (Hololens, iOS & Android)
Presented by: Lance Larsen
Time: Friday 11:00 AM - 12:00 PMAugmented, Virtual and Mixed Reality Markets are projected to exceed $35 Billion By 2025. One of the missing puzzle pieces in this emerging market was how to simultaneously engage multiple users across varied devices in a shared mixed reality. Azure Spatial Anchors IS that missing piece! Azure...
Room: MangroveTrack: MobileFormat: General SessionLevel: Introductory and overview[CANCELLED] Watch This Talk Before You Go Go
Presented by: John Reese
Time: Friday 11:00 AM - 12:00 PMSession is cancelled. We apologize for the inconvenience.
Room: Portia/WisteriaTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewFinding Patterns in the Clouds
Presented by: Steve Smith
Time: Friday 11:00 AM - 12:00 PMCloud computing is quickly becoming the new normal for enterprise software developers. Whether it's more traditional Infrastructure-as-a-Service, container-based deployments, or fully serverless deployments, moving to the cloud offers something for almost every organization. But with it come new...
Room: RosewoodTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewA Developer's Introduction to Electronics
Presented by: Guy Royse
Time: Friday 12:15 PM - 1:15 PMAre you a programmer? Odds are you have a love of Raspberry Pis, Arduinos, and other devices of their ilk. These devices are easy to program, especially for a developer like you, but when it comes to building circuits for them to control, you're pretty much just following recipes online without a...
Room: ZambeziTrack: HardwareFormat: General SessionLevel: Introductory and overviewQuantum Computing deep dive
Presented by: Johnny Hooyberghs
Time: Friday 12:15 PM - 1:15 PMYou've probably heard of Quantum Computing, but it still remains a mistery? This deep dive session explains important concepts like qbits, superposition and entanglement. Theoretical knowledge about quantum physics, quantum gates and quantum algorithms will be associated with practical examples...
Room: Indigo BayTrack: ArchitectureFormat: General SessionLevel: AdvancedReact State: Redux & Context & Hooks, Oh My!
Presented by: Michael Moran
Time: Friday 12:15 PM - 1:15 PMIn the age of ephemeral javascript frameworks, ReactJS has lasted 5 years and only grown in popularity as its evolved. Despite its popularity, there is one burning question for anyone working with React: "How should I handle state?". We have many options at our disposal including React component...
Room: CypressTrack: Web/Front-EndFormat: General SessionLevel: IntermediatePractical Functional Programming
Presented by: Jeremy Fairbank
Time: Friday 12:15 PM - 1:15 PMFunctional programming is more than just math and monads. Functional programming empowers developers to solve real problems with safe, predictable, and maintainable code. In this talk, discover the basics of functional programming and how to apply functional concepts in a practical manner. Learn how...
Room: NileTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewWill the real "Women in Tech" Please Stand up ??
Presented by: Taranjeet Kaur
Time: Friday 12:15 PM - 1:15 PMSome stats (the data has been gathered from multiple sources) - Fact#1 50.52% women in USA Fact#2 47 % women in workforce Fact#3 Only 20% women in Tech Job Fact#4 5-7% management/ non tech positions in Tech companies. So many "Women in Tech" events and "Women Hiring" drives in Tech...
Room: OrangeTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewDDoS Attacks: Threat Landscape & Defensive Countermeasures
Presented by: Chris Holland
Time: Friday 12:15 PM - 1:15 PMOctober 2016’s attack on Dyn's DNS infrastructure was a gloomy wake-up call to the online community at-large, depriving us access to some of the online destinations and applications we use every day, thereby confronting us with the stark reality of an old and ever-growing threat with which the...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateHey, You Got Your TDD in my SQL DB!
Presented by: Jeff McKenzie
Time: Friday 12:15 PM - 1:15 PMWhen 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)....
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: General SessionLevel: IntermediateNot Just Fun and Games: Creating a Chess AI That Can Beat You
Presented by: David Hauck
Time: Friday 12:15 PM - 1:15 PMAI is in the news seemingly every week. Whether it is people like Elon Musk or Steven Hawking warning the public about them or a new program that can beat humans at yet another task, it is definitely a hot topic. This talk will go through how an AI program that can play chess is actually made. Using...
Room: Salon HTrack: DataFormat: General SessionLevel: Introductory and overviewMake For Non-C Programmers
Presented by: Eric Smith
Time: Friday 12:15 PM - 1:15 PMGNU Make is a robust, proven, and free tool that's been available for decades for automating virtually any task imaginable. Yet it's rarely used by non-C programmers, because its documentation was written for...C programmers. In this talk we'll approach Make from a beginner's point of view, and...
Room: Salon DTrack: DevOpsFormat: General SessionLevel: Introductory and overviewUser Experience Pitfalls
Presented by: Ash Banaszek
Time: Friday 12:15 PM - 1:15 PMUser Experience has become a buzzword in the tech industry. Project managers and business partners are clamoring to improve the experience. You understand UX is a business necessity, but you aren't quite sure what it means to you or where to begin. This session discusses some common pitfalls of user...
Room: Salon ETrack: UI/DesignFormat: General SessionLevel: Introductory and overviewCalculating Insulin With Automated Carb Counting Using AI, ML and Web Bluetooth
Presented by: Todd Sharp
Time: Friday 12:15 PM - 1:15 PMDiabetes is a disease that affects 400 million people worldwide. Managing the disease means eating a healthy diet, getting routine exercise, monitoring blood sugar levels and administering insulin to manage those levels. The good news is that technology exists to help people manage the disease....
Room: MangroveTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewSupporting the Scala Ecosystem: Stories from the Line
Presented by: Justin Pihony
Time: Friday 12:15 PM - 1:15 PMAt Lightbend we have handled over 10,000 customer support cases ranging from simple Scala compilation issues to complex Akka performance puzzles. Supporting Scala and its largest libraries has resulted in some really interesting issues, such as: * a seemingly valid cast leading to a...
Room: Portia/WisteriaTrack: Software QualityFormat: General SessionLevel: Introductory and overviewUnderstanding the identity business, and how to get out of it
Presented by: Jeff Putz
Time: Friday 12:15 PM - 1:15 PMKnowing who is using your software is super fundamental. It's less important than ever to have to manage those identities yourself, but you can't escape understanding the protocols and players. Let's talk about how things like OAuth2 actually work, and then decide if you can get out of the business...
Room: RosewoodTrack: SecurityFormat: General SessionLevel: IntermediateThe Art of Web Authentication
Presented by: Auth0 (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Kim Maida) Authentication and authorization are daunting topics for many developers. Auth standards are well defined, but are challenging to understand. Terminology and specifications (OAuth, OIDC, JWT, IETF)? How does cookie-based authentication work? How does token-based...
Room: ZambeziTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewTribal Knowledge in Agile Teams
Presented by: Manifest Solutions (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Jeffrey Miller) Let's face it. We don't communicate well, and we document even less. Is it possible to wield information well in an Agile software team? Yes, it is! With consideration, change, and commitment to doing your work differently, it is possible to have relevant and vibrant...
Room: Indigo BayTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewTiny Containers: Exploring the World of Docker and Kubernetes with a Raspberry Pi Cluster
Presented by: Nationwide (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Mark Ramsey) Nationwide, like many companies, has strategically embraced the cloud as our hosting infrastructure. While exciting, this new direction requires learning a number of technologies, such as Docker and Kubernetes, that can be intimidating. Faced with this challenge, I chose...
Room: CypressTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewWhat's going on in there? Know what's happening in your software with Application Insights.
Presented by: Aptera (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Eric Potter) Monitoring production software can be a challenge, especially if it is hosted in the cloud. Application Insights can tell you what your software is doing and how your users are using it. You can use it to identify performance bottlenecks. You can detect errors before users...
Room: NileTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewWhat is the definition of done? How do I get there?
Presented by: JFrog (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Mark Galpin) The DevOps revolution has changed a lot of things, but probably nothing more than how product managers and developers think about “done”. In this talk we will see examples from the development of JFrog GoCenter and how we as a team together learned to change our...
Room: OrangeTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewSupersonic, Subatomic Java
Presented by: Red Hat, Inc. (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Scott Seighman) Supersonic, Subatomic Java In this session, we’ll demonstrate how you can optimize your enterprise Java apps, your APIs, your microservices, and your serverless functions for a Kubernetes/OpenShift environment using Quarkus. Quarkus is a Kubernetes Native Java stack...
Room: Aloeswood / LeopardwoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overview4 Times I Should Have Been Fired for Bad Code
Presented by: JPMorgan Chase & Co. (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Ben Thorp) Ever set a helicopter on fire? Wasted months of company time developing a product that no one wanted? Designed a system so complex and hard to use that none of your peers (or boss unfortunately) could maintain it? We’ve all made mistakes and have hopefully learned from...
Room: Sagewood / ZebrawoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewThe Intersection of Quality and Speed: Scaling a Team to Optimally Deliver Quality Software
Presented by: Root Insurance Company (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Tim LeMaster, Keith Wedinger, Tommy Graves) A panel discussion of Root Engineers that presents a conversation about building a team to optimally deliver software in a high quality and efficient manner and the challenges we've faced doing that at Root Insurance. From onboarding, to the...
Room: Salon ATrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewUsing AI/ML to Automate CI/CD
Presented by: Harness (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Luke Hertert, Harness) To achieve true continuous delivery, teams need to leverage end-to-end automation across their deployment pipelines and tooling. Deployment health checks today involve someone pinging the production app and saying "yep, app is still up, everything is OK." In...
Room: Salon HTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewRapid Mobile App Development with Xamarin.Forms + Prism MVVM Framework
Presented by: Robert Half Technology (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Erik Hornyak) Learn how to leverage the Prism MVVM Framework on top of Xamarin. Forms to accelerate cross-platform mobile development. Prism provides an implementation of a collection of design patterns that are helpful in writing well-structured and maintainable XAML applications,...
Room: Salon ETrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewUpgrade your .NET Framework to .NET Core know-how
Presented by: Progressive Insurance (Sponsor)
Time: Friday 1:30 PM - 2:15 PM(Presented by Sean Beougher) So you’ve been tapped to upgrade some of your companies .NET Framework apps to .NET Core. Seems simple enough, right? Just upgrade the framework, and you’re done. If only it were that easy! Having completed upgrades at Progressive Insurance on some highly visible...
Room: RosewoodTrack: Sponsor SessionFormat: Sponsor SessionLevel: Introductory and overviewBecoming a Better Curator of Your Code
Presented by: Ian Zelikman
Time: Friday 2:45 PM - 3:45 PMWriting code that functions correctly is only part of the development process. The majority of our time is spent reading, maintaining and refactoring our code. In this talk we will discuss how when we see our work as code curation we actually enable our job to be much easier and productive. We...
Room: ZambeziTrack: Software QualityFormat: General SessionLevel: Introductory and overviewProgrammer burnout: how to recognize and avoid it
Presented by: Santosh Hari
Time: Friday 2:45 PM - 3:45 PMBurnout among software professionals is far more widespread than we would like to admit. It sneaks up on us. At first we dread going in to work each day. We can barely focus enough to get through the day and struggle with otherwise simple-for-us tasks. It starts there and gets much worse. So what...
Room: Indigo BayTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overview5 Ideas For Writing Better Cloud Native Microservices
Presented by: Todd Sharp
Time: Friday 2:45 PM - 3:45 PMIn theory, microservices are easy. The promise of loosely coupled, scalable services that can each be independently built, tested and deployed sounds amazing, doesn’t it? On top of that, each service can be written in whatever language the development deems appropriate – using their framework of...
Room: CypressTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewMock It 'til You Make It
Presented by: Gabriela Dombrowski
Time: Friday 2:45 PM - 3:45 PMLet's automate the tedious task of building mocked query resolvers so that you never have to manually set up mocks for loading, error, no data, or default value states ever again! We'll learn how to use GraphQL and Apollo in a React application to build providers that will dynamically auto mock all...
Room: NileTrack: Web/Front-EndFormat: General SessionLevel: IntermediateHacking on a home server for fun and profit
Presented by: Leo Guinan
Time: Friday 2:45 PM - 3:45 PMDo you have a Raspberry Pi or similar just gathering dust at home? Or maybe various other computer components hanging around? If you do, come join Leo's journey down the road of system administration, beginning with an assortment of Raspberry Pis, and current in the form of a rack server. He will...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Introductory and overviewOne Codebase, Many Screens - Flutter in a Nutshell
Presented by: Don Ward
Time: Friday 2:45 PM - 3:45 PMThe Story - Flutter is Google’s cross-platform development framework for quickly crafting high-quality native apps on Web, iOS, Android, and ChromeOS in record time. Flutter works with existing code, is used by developers and organizations around the world, and is free and open source. Notable...
Room: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: Introductory and overviewWhat Time Is It Anyway?
Presented by: Tyler Jennings
Time: Friday 2:45 PM - 3:45 PMHandling date and time in our applications can be a complex task with many nuances. How should we handle date time? Should we store local time zone or UTC? Should we store dates and times separately? Should we use Unix time? These are all valid questions and there isn't always a...
Room: Salon ATrack: DataFormat: General SessionLevel: IntermediateGit Back to Basics
Presented by: Angel Thomas
Time: Friday 2:45 PM - 3:45 PMHave you written code that worked, then broke it, only to not remember what the working code was? Git, a version control application could be the solution you are looking for. Git can help you to track changes in your projects, go back to when your code is working, or even find out where it broke....
Room: Salon HTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewTrans Eye for the Cis Ally: Ensuring an Inclusive Community
Presented by: Julien Fitzpatrick
Time: Friday 2:45 PM - 3:45 PMTrans and non-binary people are becoming increasingly visible in the workplace, as well as in community spaces such as meetups and conferences. Most managers and event organizers want to be inclusive and welcoming but frequently, in spite of their best intentions, often come up short. Wouldn’t it...
Room: Salon DTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewThe Dungeon Master's Guide to DevOps
Presented by: Bill Dinger
Time: Friday 2:45 PM - 3:45 PMEvery good Dungeon Master needs a guide to help their party adventure through the world of DevOps. From the tools necessary to common monsters found along the way. Help your party succeed at a critical part of delivering quality software. We'll go over the full CI/CD cycle: builds, commit hooks,...
Room: Salon ETrack: DevOpsFormat: General SessionLevel: Introductory and overviewBuilding an Open Source Artificial Pancreas
Presented by: Sarah Withee
Time: Friday 2:45 PM - 3:45 PMHave you ever thought about what open source software or hardware could achieve? What if it could help improve people's lives by solving some of their health problems? After the medical tech industry kept promising a system to help automatically manage insulin for type 1 diabetic people and never...
Room: MangroveTrack: HardwareFormat: General SessionLevel: Introductory and overviewWalking A Mile In Your Users' Shoes
Presented by: Jameson Hampton
Time: Friday 2:45 PM - 3:45 PMDeveloping apps for users in different demographics is inherently differently than developing apps just for ourselves and for other programmers. Understanding the needs of our users and learning to foster empathy for them is just as much of a skill as learning Rails or ActiveRecord — and it’s a...
Room: Portia/WisteriaTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewDesigning a DSL with Kotlin
Presented by: Nicolas Fränkel
Time: Friday 2:45 PM - 3:45 PMAlthough Kotlin has made a huge impact on Android, it’s equally good on the server side. As Domain-Specific Languages are constrained by the language they run on, Kotlin frees developers from Java fluent builders to propose something better. Using the Hazelcast configuration API as an example,...
Room: RosewoodTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewTest-driven development: save your time, save your sanity, write great code fast
Presented by: Paul Roub
Time: Friday 4:00 PM - 5:00 PMFor the skeptical: Both new and more-seasoned devs -- especially solo practitioners -- can have a lot of misconceptions about TDD. Mostly of the "it's extra work, it's extra code, I can't ship tests, why would I test something simple and obvious" variety. But magic happens when the light bulb...
Room: Indigo BayTrack: Programming PrinciplesFormat: General SessionLevel: IntermediateStraying From the Happy Path: Taking Control of Errors in Swift
Presented by: Jeff Kelley
Time: Friday 4:00 PM - 5:00 PMHave you ever seen a code comment saying “this should never happen”? Have you ever wondered what would happen if it did? Swift has a diverse set of error-handling capabilities, from using throw to send errors up the stack to using a Result to handle errors in asynchronous methods. In this talk,...
Room: CypressTrack: MobileFormat: General SessionLevel: Introductory and overviewExample Mapping: The New Three Amigos
Presented by: Thomas Haver
Time: Friday 4:00 PM - 5:00 PMExample Mapping is a collaboration technique used by teams to help refine requirements. Every team should have a set of “ready” criteria that includes some kind of workshop between development team members to establish a shared understanding. In a time-boxed Example Mapping session, rules will...
Room: NileTrack: Software QualityFormat: General SessionLevel: Introductory and overviewWatch How The Giants Fall: Learning from Bug Bounty Results
Presented by: John Melton
Time: Friday 4:00 PM - 5:00 PMSecurity is hard. We all miss things. Attackers find things. "You must learn from the mistakes of others. You can't possibly live long enough to make them all yourself." -Samuel Levenson This talk is a fun, fast-moving survey of some of the best recent bug bounty finds against some of the...
Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: IntermediateThe Hows and Whys of Podcasting in 2020
Presented by: Leo Dion
Time: Friday 4:00 PM - 5:00 PMIn 2017, Leo started a podcast ok productive with his co-host Erik Gillespie. A few months later he started another podcast empowerapps.show to compliment his business developing apps for Apple devices. In this presentation, Leo gives some guidance on how to get started as well as: fostering...
Room: Salon ATrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Introductory and overviewThe Case of the Tenacious Tester: How Using Your Words Improves QA Work
Presented by: Katrina Ohlemacher
Time: Friday 4:00 PM - 5:00 PM"Never trust to general impressions, my boy, but concentrate yourself upon details." So says Sherlock Holmes in “A Case of Identity.” The Great Detective has a lot to say that applies to software testing: pay attention to detail, never make assumptions, use your imagination. We wouldn’t have...
Room: Salon HTrack: Software QualityFormat: General SessionLevel: Introductory and overviewAccessibility Audits in Chrome: Easy Steps toward an Inclusive Internet
Presented by: Maranda Provance
Time: Friday 4:00 PM - 5:00 PMDo you want to help make the internet a better place for all people? In this talk, you’ll be introduced to the accessibility audits built into Chrome’s dev tools. We’ll walk through the automated tests they provide as well as the helpful information they give on manual testing. By the end of...
Room: Salon DTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewRaiders of the Lost Query: Learning Best Practices for Exploratory Data Analysis in R Programming
Presented by: Pierre DeBois
Time: Friday 4:00 PM - 5:00 PMIndiana Jones had his hat, his whip, and his wits to save the day. But developers and managers need a lot more to program data models. With so many dataset tools for data science available, managers and developers can create statistical programming models, but are overwhelmed as to how to best...
Room: Salon ETrack: DataFormat: General SessionLevel: Introductory and overviewThirst-quenching Streams for the Reactive Mind
Presented by: Mary Grygleski
Time: Friday 4:00 PM - 5:00 PMWith the advances in multicore hardware and virtualization technologies, and the demand for highly responsive, resilient, and elastic systems and increasingly sophisticated applications, an array of reactive data stream processing libraries have been born to address the needs. Reactive Streams is...
Room: Portia/WisteriaTrack: ArchitectureFormat: General SessionLevel: Intermediate