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 overviewHobby 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 overviewAPI 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 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 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 overviewBeyond 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 overviewPractical 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 overviewNot 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 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 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 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 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 overview