Tuesday
No Sessions
Wednesday
No Sessions
Thursday
What 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 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 overviewKotlin 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 overviewProject 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 overviewAPI 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 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 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: 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 overviewLet'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: IntermediateHelp! 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 overviewWhat'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 overviewHacking 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: IntermediateThe 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 overviewLearning 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 overviewEverything 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 overviewFriday
Solving 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 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 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: 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 overviewFrom 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 overviewAn 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 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 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: AdvancedPractical 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 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: 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 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: IntermediateBecoming 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 overviewHacking 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 overviewGit 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 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: IntermediateExample 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 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 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