Building Mobile Applications with the Ionic Framework
Presented by: Robert Lair
Have 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...
Format: General SessionLevel: Introductory and overviewEnd to End Testing with Cypress
Presented by: Avindra Fernando
Lots 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...
Format: General SessionLevel: Introductory and overviewFull Total World Global Domination: Creating a Geographically Redundant Website.
Presented by: Ryan Miller
Who 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...
Format: General SessionLevel: Introductory and overviewHow I overcame my fear of JavaScript
Presented by: Kim DelSenno
As 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...
Format: General SessionLevel: Introductory and overviewMaking Faces: Image Reduction and Recognition
Presented by: Steve Crow
A 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...
Format: General SessionLevel: Introductory and overviewOpen Source XAML Takes You Places!
Presented by: Sam Basu
XAML 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...
Format: General SessionLevel: IntermediatePython, the world beyond scripting
Presented by: Charles Yost
Python 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...
Format: General SessionLevel: Introductory and overviewQuantity vs. Quality: Is less (code) really more?
Presented by: Anne Cahalan
We 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...
Format: General SessionLevel: IntermediateTDD Designer Style: Styleguide Driven Development
Presented by: Matthew LaForest
Developers 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...
Format: General SessionLevel: Introductory and overviewTechnical debt must die - Communicating code to business stakeholders
Presented by: Matt Eland
Our 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...
Format: General SessionLevel: IntermediateThe UX of Configuration Files
Presented by: Eemeli Aro
Developers 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...
Format: General SessionLevel: IntermediateThreat Modeling on the Family Road Trip and Other Strategies for Delivering Secure Applications
Presented by: Angela Pinney
Gene Spafford said: “The only truly secure system is one that is powered off...” ...
Format: General SessionLevel: Introductory and overviewWhat Architecture (The Building Kind) Can Teach Us About Architecture (The Software Kind)
Presented by: Wes Delp
Architecture 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',...
Format: General SessionLevel: Introductory and overviewKidzMash: Human 3D Printer: a social STEM learning experiment
After a brief overview where we explain what the teams will do, we will be dividing into 3 teams. A CAD team, a SLICER team, and a 3D printer team. The teams will try to manually replicate with the team each piece of the 3D object development and replication process! The CAD team will model the...
Format: General SessionLevel: Introductory and overviewA .NET Data Access Layer You're Proud of (Without Entity Framework)
Presented by: Jonathan "J." Tower
If 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...
Format: General SessionLevel: IntermediateAngular and The Case for RxJS
Presented by: Sandi Barr
When 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...
Format: General SessionLevel: IntermediateBeware of dark clouds on the horizon
Presented by: Andrew May
There are many benefits to be gained in moving your infrastructure to the cloud, but many more ways in which it can go horribly wrong. ...
Format: General SessionLevel: IntermediateCapture That Flag : How CTF Competitions Make You a Better Developer
Presented by: John Koerner
Have 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)...
Format: General SessionLevel: Introductory and overviewDocument Yourself: A framework for career advancement
Presented by: Michelle Brenner
The 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...
Format: General SessionLevel: Introductory and overviewGoing crazy with CQRS
Presented by: Seth Kraut
CQRS 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....
Format: General SessionLevel: IntermediateGoing Loonie: Rebuilding the tape deck experience with Elixir, Nerves and RFID
Presented by: Ole Michaelis
My 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. ...
Format: General SessionLevel: Introductory and overviewIntro to Machine Learning on the cheap and without a PhD in math: Overview
Presented by: Jim Wilson
Machine 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,...
Format: General SessionLevel: Introductory and overviewKotlin for C# Developers
Presented by: Alex Dunn
Dive 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. ...
Format: General SessionLevel: Introductory and overviewProject Zero or Removing barriers for creating OSS libraries
Presented by: Jimmy Byrd
You 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...
Format: General SessionLevel: Introductory and overviewSuper Sleuth Testers: Unlocking the Power of Browser Developer Tools
Presented by: Hilary Weaver-Robb
There’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...
Format: General SessionLevel: Introductory and overviewSupport Emoji ๐โ๏ธ and Go Worldwide ๐ with Unicode
Presented by: Joe Sewell
As 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...
Format: General SessionLevel: Introductory and overviewTaking a byte of Java Bytecode
Presented by: Magnus Stahre
Java, 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...
Format: General SessionLevel: Introductory and overviewUsability Starts With Accessibility
Presented by: Patrick McSweeny
For 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...
Format: General SessionLevel: Intermediate[CANCELLED] Adding Search Capabilities to your Applications with Elastic Search
Presented by: Rod Paddock
This session has been cancelled. We apologize for any trouble this causes.
Format: General SessionLevel: Intermediate+5, Insightful: Azure Application Insights to improve your code
Presented by: Tim Jarzombek
You'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...
Format: General SessionLevel: Introductory and overviewAntifragile Teams
Presented by: Charlie Sweet
Software 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. ...
Format: General SessionLevel: IntermediateAPI Design - The Right Way
Presented by: Jit Krishnamurthy
APIs 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...
Format: General SessionLevel: Introductory and overviewBuilding a Custom CSS Framework Was Easier Than I Thought
Presented by: Nate Taylor
If 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. ...
Format: General SessionLevel: Introductory and overviewCosmic Full-Stack a Blazor, ML.NET, and CosmosDB Mashup
Presented by: Ed Charbeneau
Are 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...
Format: General SessionLevel: Introductory and overviewIntro to Hacking with the Raspberry Pi
Presented by: Sarah Withee
You'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...
Format: General SessionLevel: Introductory and overviewMake More ๐ฐ Money with Less ๐ Effort: ๐งช Experimentation Before Implementation
Presented by: Scott Showalter
Developing 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...
Format: General SessionLevel: IntermediatePractical Cryptography for Developers
Presented by: Anthony Eden
Understanding 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...
Format: General SessionLevel: Introductory and overviewThe Integration Game: How to Pick a Winning Integration Pattern
Presented by: Branden Bellanca
Point-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,...
Format: General SessionLevel: Introductory and overviewVue 3.0 Smaller, Faster & Stronger
Presented by: Dan Vega
Vue.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 as: ...
Format: General SessionLevel: IntermediateWhat can Structured Logging do for you?
Presented by: Charles Yost
Structured 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...
Format: General SessionLevel: Introductory and overviewA Mobile App Success Starter Pack
Presented by: Jeff Kelley
When 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...
Format: General SessionLevel: Introductory and overviewAn Introduction to WebAssembly
Presented by: Guy Royse
Want 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...
Format: General SessionLevel: Introductory and overviewAutomating Your Automation: The Care and Feeding of Jenkins
Presented by: Jeff McKenzie
If 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...
Format: General SessionLevel: IntermediateBringing Order to Chaos
Presented by: Scott Connerly
So, 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...
Format: General SessionLevel: IntermediateConducting Humane Code Reviews
Presented by: Adrienne Tacke
Code 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...
Format: General SessionLevel: IntermediateGraphing Your Way Through the Cosmos: Common Data Problems Solved with Graphs
Presented by: Chad Green
Data 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,...
Format: General SessionLevel: Introductory and overviewHelp! My Client Needs a VPAT and other Accessibility Questions
Presented by: Courtney Heitman
What 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. ...
Format: General SessionLevel: AdvancedHobby Projects Are Awesome!
Presented by: Joel Byler
There 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...
Format: General SessionLevel: Introductory and overviewImpress Your Boss with Interactive Visualizations
Presented by: Tim Garvin
We 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...
Format: General SessionLevel: Introductory and overviewLet's talk about documentation (but more fun than that sounds)
Presented by: Mike Hand
Street 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...
Format: General SessionLevel: Introductory and overviewModular Monolith: the Best of Both Worlds
Presented by: Seth Kraut
First, 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...
Format: General SessionLevel: Introductory and overviewSecuring Your API Endpoints - A Practical Authentication Guide
Presented by: Seth Petry-Johnson
It's never been easier to expose services over HTTP. It's also never been easier to inadvertently expose security holes via those same services. ...
Format: General SessionLevel: IntermediateTests Your Pipeline Might Be Missing
Presented by: Gene Gotimer
Developing 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...
Format: General SessionLevel: Introductory and overviewWhy You Fail to Make Good Predictions and What You Can Do About it.
Presented by: Sho Fola
What sets good predictors apart from others? Is good judgment innate or something you can nurture? ...
Format: General SessionLevel: Introductory and overviewKidzMash: Preschool Art Time
Simple exploratory art projects that teach creative thinking for the littler attendees. Ages: 2-5 *Projects require some assistance from an adult!*
Format: General SessionLevel: Introductory and overviewAPI Gateways and Microservices: 2 peas in a pod
Presented by: Santosh Hari
Chances 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...
Format: General SessionLevel: Introductory and overviewBy Our Powers Combined: Observability for Developers
Presented by: Aaron Aldrich
The 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....
Format: General SessionLevel: IntermediateGoing Fast: The Art of Delivering Quality Software Quickly
Presented by: Josh Carroll
Building 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. ...
Format: General SessionLevel: Introductory and overviewHacking Radiowaves for fun (but not profit)
Presented by: Craig Hills
As a child, did you ever play with walkie talkies? Do you remember how fun it was to talk with friends and family from the other end of the house, or across the neighborhood? ...
Format: General SessionLevel: Introductory and overviewHold Up, Wait a Minute, Let Me Put Some Async In It
Presented by: Matthew Jones
The 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? ...
Format: General SessionLevel: IntermediateHow to Get Started with Swift in 2020
Presented by: Leo Dion
Swift 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...
Format: General SessionLevel: Introductory and overviewHOW TO HACK AN ELECTION
Presented by: Gary Short
Think 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...
Format: General SessionLevel: Introductory and overviewPostman Delivers! A Deep Dive into API Testing.
Presented by: Bob Crowley
Whether 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...
Format: General SessionLevel: IntermediateSell Yourself With a Software Quality Portfolio
Presented by: Aaron Glass
Finding 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? ...
Format: General SessionLevel: IntermediateThe Agile Designer: Aligning Dual-track UX and Development to Balance the Tactical and Strategic, Mi
Presented by: Jenna Chamra
Product 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...
Format: General SessionLevel: IntermediateUnclogging Your Code: Linting 101
Presented by: Hannah Stannard
Consider 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...
Format: General SessionLevel: Introductory and overviewWhat's in Your Docker? Open Source Security Vulnerabilities in Containers
Presented by: Matt Williams
So you stay on top of operating system vulnerabilities and patch ...
Format: General SessionLevel: Introductory and overviewFrom idea to physical series: A basic overview of the world of CAD and 3D printing
This 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...
Format: General SessionLevel: Introductory and overviewA Series of Unfortunate Events - What Happens When Your App is Hacked.
Presented by: Joe Kuemerle
Many 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. ...
Format: General SessionLevel: IntermediateCoaching & Communicating with Diverse Teams
Presented by: Kiera Prioleau
Don’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...
Format: General SessionLevel: IntermediateDigging In: Getting Familiar With The Code To Be A Better Tester
Presented by: Hilary Weaver-Robb
Maybe 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! ...
Format: General SessionLevel: Introductory and overviewFast, Reliable, Powerful IoT Projects Built on Elixir With Nerves
Presented by: Joel Byler
Elixir 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...
Format: General SessionLevel: IntermediateFun, Friendly Computer Science
Presented by: Mercedes Bernard
Computer 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 CS. ...
Format: General SessionLevel: Introductory and overviewJavaScript the Grumpy Parts
Presented by: Rob Richardson
We 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...
Format: General SessionLevel: AdvancedLearning R through sports, or learning sports through R
Presented by: Mike Roznik
Big 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...
Format: General SessionLevel: Introductory and overviewMicroservice Patterns - Implemented by Eclipse MicroProfile
Presented by: Ivar Grimstad
Architectures 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. ...
Format: General SessionLevel: AdvancedPublic Speaking For Engineers
Presented by: Robby Millsap
Have 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...
Format: General SessionLevel: Introductory and overviewSay No To Accidental Architecture! Code Your Design Systems Instead
Presented by: Burton Smith
Are 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...
Format: General SessionLevel: IntermediateTerseScript: JavaScript with 6 characters or less
Presented by: Mike Hand
Let'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...
Format: General SessionLevel: IntermediateThe Immutable Laws of Software and Life: Code Accordingly
Presented by: Cory House
The 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...
Format: General SessionLevel: Introductory and overviewUser Interviews: More than Just a Conversation
Presented by: Ash Banaszek
Anyone 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...
Format: General SessionLevel: IntermediateWhat's New in Xamarin Forms 4.0
Presented by: Jason Awbrey
Xamarin 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...
Format: General SessionLevel: IntermediateFrom idea to physical series: Additional Castle project walk-through Rhino project.
Can’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...
Format: General SessionLevel: Intermediate[CANCELLED] Usability Testing and User Acceptance Testing: Do You Really Need Both?
Presented by: Trent Nguyen
This session has been cancelled. We apologize for any trouble this causes.
Format: General SessionLevel: Introductory and overviewApp Deco - Applied Design Thinking for Secure Development
Presented by: Wolfgang Goerlich
Usability 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...
Format: General SessionLevel: IntermediateBlockchain from the Firehose
Presented by: Jacob Coulter
Take 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...
Format: General SessionLevel: Introductory and overviewBuilding Scalable, Cloud-Ready Aplications with RESTier
Presented by: Chris Woodruff
In 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...
Format: General SessionLevel: AdvancedDeep Learning on the Edge
Presented by: Dan Kacenjar
Machine 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...
Format: General SessionLevel: Introductory and overviewDevOps as a Force Multiplier for Agile
Presented by: Nate Berent-Spillson
So 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...
Format: General SessionLevel: IntermediateEverything I Needed to Know About Debugging I Learned in Elementary Physics
Presented by: Nate Taylor
Has 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...
Format: General SessionLevel: Introductory and overviewHorizontal Scaling of Graph Databases
Presented by: Ryan Hendrickson
A 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...
Format: General SessionLevel: IntermediateHuman Readable JavaScript: Using ES2015+ to Craft Better Code
Presented by: Laurie Barth
Love 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. ...
Format: General SessionLevel: IntermediateMutation Testing to the rescue of your Tests
Presented by: Nicolas Fränkel
Unit 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. ...
Format: General SessionLevel: Introductory and overviewTesting your UI Components
Presented by: Avindra Fernando
When 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...
Format: General SessionLevel: IntermediateThe Definitive Guide to Organizing Community Events
Presented by: Jennifer Wadella
Community 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...
Format: General SessionLevel: Introductory and overviewTwelve Spins on User Experience
Presented by: Keith Instone
What 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. ...
Format: General SessionLevel: IntermediateVertical Slice Architecture
Presented by: Jimmy Bogard
Moving 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...
Format: General SessionLevel: Intermediate“How would you print that?” interactive panel
We 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...
Format: General SessionLevel: IntermediateSuper Smash Bros Ultimate Tournament
A tournament... where folks play Super Smash Bros
Format: General SessionLevel: IntermediateDessert Bar, Karaoke, and Photo Booth
Dessert Bar is only until 9PM
Format: General SessionLevel: IntermediateWaterpark Party
If you still have energy, come on down to the Waterpark Party! Swimming is optional. Having fun is mandatory. ...
Format: General SessionLevel: IntermediateKM: Alexa Scavenger Hunt
Ready 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...
Format: General SessionLevel: IntermediateAzure Kinect DK: Artificial Intelligence + Computer Vision = Your Next Generation Development Today!
Presented by: Lance Larsen
Azure Kinect DK is most advanced Computer Vision device available for developers today! ...
Format: General SessionLevel: Introductory and overviewEvent processing without breaking production
Presented by: Nathan Zender
Transactional 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,...
Format: General SessionLevel: Introductory and overviewFrom Manual Testing to Automation Suite: A Guide For Everyone
Presented by: Mike Roznik
Do 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...
Format: General SessionLevel: Introductory and overviewHack Your App - Intro to Mobile Security Testing
Presented by: Hans Weisheimer
Your 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...
Format: General SessionLevel: Introductory and overviewPeople Networking 1100101
Presented by: Debbie Ryan
While 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...
Format: General SessionLevel: Introductory and overviewSolving the Boolean Identity Crisis
Presented by: Jeremy Fairbank
While 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...
Format: General SessionLevel: Introductory and overviewSpeed, security and simplicity: Creating Container Images with Cloud Native Buildpacks
Presented by: Daniel Mikusa
Buildpacks 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. ...
Format: General SessionLevel: Introductory and overviewStencilJS and Universal Components
Presented by: Mike Hartington
Have 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...
Format: General SessionLevel: Introductory and overviewTechnical Leadership 101
Presented by: John Rouda
We 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...
Format: General SessionLevel: Introductory and overviewThe best code, is the code never written.
Presented by: Daniel Davis
In 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,...
Format: General SessionLevel: Introductory and overviewThe Creative Process of Coding
Presented by: Charlie Sweet
The 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. ...
Format: General SessionLevel: Introductory and overviewWell.. that's ONNX-pected
Presented by: Ron Dagdag
The 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...
Format: General SessionLevel: IntermediateAPI Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild
Presented by: Dan Mosora
In 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...
Format: General SessionLevel: IntermediateBeyond Alt-Text: Trends in Online Accessibility
Presented by: Ian Forrest
If 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...
Format: General SessionLevel: Introductory and overviewBuilding a super performant GossipGirl.com in Gatsby in under 50 Minutes
Presented by: Jennifer Wadella
Hey, 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...
Format: General SessionLevel: IntermediateBurn It Down and Start Again: Principles of Modern JavaScript
Presented by: Joe Morgan
Heard 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...
Format: General SessionLevel: IntermediateContext is King: Finding Service Boundaries
Presented by: Derek Comartin
Are 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. ...
Format: General SessionLevel: IntermediateContinuous Security
Presented by: Craig Hills
A 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.
Format: General SessionLevel: Introductory and overviewDealing with Disagreement
Presented by: Tommy Graves
Virtually 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...
Format: General SessionLevel: Introductory and overviewEnvironment Configuration for JavaScript Apps
Presented by: David Truxall
For 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...
Format: General SessionLevel: IntermediateFrom Punchcards to Git: A Brief History of Version Control
Presented by: Brian Meeker
Believe 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...
Format: General SessionLevel: Introductory and overviewHow Exploding Birthday Cakes and Other CRAZY Projects Come to Life
Presented by: Barry Tarlton
Have 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...
Format: General SessionLevel: IntermediateOwning Your Experience: Talking about Mental Health In the Workplace
Presented by: Arthur Doler
Your 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"...
Format: General SessionLevel: IntermediateSerialization for the new micro service landscape
Presented by: Leonardo de Moura Rocha Lima
Serialization 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...
Format: General SessionLevel: Introductory and overviewUnit Testing Strategies & Patterns in C#
Presented by: Bill Dinger
Learn 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....
Format: General SessionLevel: AdvancedKidzMash: A Kid’s introduction to 3D Modeling
This second session we will work with a fully-featured CAD application called Rhino3d and walk through the process of building a basic model from geometric shapes. We will explain the XYZ coordinate system, and what the different views are for. We will also spend some time playing with the transform...
Format: General SessionLevel: Advanced[CANCELLED] Watch This Talk Before You Go Go
Presented by: John Reese
Session is cancelled. We apologize for the inconvenience.
Format: General SessionLevel: Introductory and overviewA Lifecycle Of Code Under Test
Presented by: Bob Fornal
When 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? ...
Format: General SessionLevel: Introductory and overviewAn Introduction to Quantum Programming
Presented by: Matt Norby
Quantum 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...
Format: General SessionLevel: Introductory and overviewAndroid: A peek under the hood
Presented by: Brad Hollander
Over 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...
Format: General SessionLevel: IntermediateAssembly Language: The (Sega) Genesis of Programming
Presented by: Joe Sewell
Have 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...
Format: General SessionLevel: IntermediateAzure Spatial Anchors: Building a Shared Mixed Reality across Devices (Hololens, iOS & Android)
Presented by: Lance Larsen
Augmented, Virtual and Mixed Reality Markets are projected to exceed $35 Billion By 2025. ...
Format: General SessionLevel: Introductory and overviewDevelopment magic: Producing more development time out of thin air.
Presented by: Jonathan Batteas
It'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...
Format: General SessionLevel: IntermediateExplain it to me like I'm 5: Oauth2 & OpenID
Presented by: Daniel Mikusa
Oauth2 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. ...
Format: General SessionLevel: Introductory and overviewFinding Patterns in the Clouds
Presented by: Steve Smith
Cloud 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...
Format: General SessionLevel: Introductory and overviewHiring and Inspiring an Exceptional Team
Presented by: Seth Petry-Johnson
Management gets a bad rap in technical circles, and for good reason: many managers are terrible, and it shows! ...
Format: General SessionLevel: IntermediateREST in Peace: Killing REST and adopting RPC.
Presented by: Steven Swenson
REST 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...
Format: General SessionLevel: IntermediateThe Dark Side of UX
Presented by: Courtney Heitman
User 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] ...
Format: General SessionLevel: Introductory and overviewYou Version Your Code, Why Not Your Database?
Presented by: Derek Binkley
Code 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 restore. ...
Format: General SessionLevel: Introductory and overviewA Developer's Introduction to Electronics
Presented by: Guy Royse
Are 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...
Format: General SessionLevel: Introductory and overviewCalculating Insulin With Automated Carb Counting Using AI, ML and Web Bluetooth
Presented by: Todd Sharp
Diabetes 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....
Format: General SessionLevel: Introductory and overviewDDoS Attacks: Threat Landscape & Defensive Countermeasures
Presented by: Chris Holland
October 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...
Format: General SessionLevel: IntermediateHey, You Got Your TDD in my SQL DB!
Presented by: Jeff McKenzie
When should we test our data? From an application development perspective, a unit test against a database isn't a unit test at all. Which makes sense -- connected systems introduce overhead and dependency, both of which reduce stability and decrease productivity during test-driven development (TDD)....
Format: General SessionLevel: IntermediateMake For Non-C Programmers
Presented by: Eric Smith
GNU 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. ...
Format: General SessionLevel: Introductory and overviewNot Just Fun and Games: Creating a Chess AI That Can Beat You
Presented by: David Hauck
AI 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...
Format: General SessionLevel: Introductory and overviewPractical Functional Programming
Presented by: Jeremy Fairbank
Functional 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...
Format: General SessionLevel: Introductory and overviewQuantum Computing deep dive
Presented by: Johnny Hooyberghs
You'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...
Format: General SessionLevel: AdvancedReact State: Redux & Context & Hooks, Oh My!
Presented by: Michael Moran
In 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...
Format: General SessionLevel: IntermediateSupporting the Scala Ecosystem: Stories from the Line
Presented by: Justin Pihony
At 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: ...
Format: General SessionLevel: Introductory and overviewUnderstanding the identity business, and how to get out of it
Presented by: Jeff Putz
Knowing 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...
Format: General SessionLevel: IntermediateUser Experience Pitfalls
Presented by: Ash Banaszek
User 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...
Format: General SessionLevel: Introductory and overviewWill the real "Women in Tech" Please Stand up ??
Presented by: Taranjeet Kaur
Some stats (the data has been gathered from multiple sources) - ...
Format: General SessionLevel: Introductory and overview5 Ideas For Writing Better Cloud Native Microservices
Presented by: Todd Sharp
In 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...
Format: General SessionLevel: Introductory and overviewBecoming a Better Curator of Your Code
Presented by: Ian Zelikman
Writing 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. ...
Format: General SessionLevel: Introductory and overviewBuilding an Open Source Artificial Pancreas
Presented by: Sarah Withee
Have 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? ...
Format: General SessionLevel: Introductory and overviewDesigning a DSL with Kotlin
Presented by: Nicolas Fränkel
Although 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. ...
Format: General SessionLevel: Introductory and overviewGit Back to Basics
Presented by: Angel Thomas
Have you written code that worked, then broke it, only to not remember what the working code was? ...
Format: General SessionLevel: Introductory and overviewHacking on a home server for fun and profit
Presented by: Leo Guinan
Do 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...
Format: General SessionLevel: Introductory and overviewMock It 'til You Make It
Presented by: Gabriela Dombrowski
Let'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...
Format: General SessionLevel: IntermediateOne Codebase, Many Screens - Flutter in a Nutshell
Presented by: Don Ward
The 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. ...
Format: General SessionLevel: Introductory and overviewProgrammer burnout: how to recognize and avoid it
Presented by: Santosh Hari
Burnout 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...
Format: General SessionLevel: Introductory and overviewThe Dungeon Master's Guide to DevOps
Presented by: Bill Dinger
Every 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. ...
Format: General SessionLevel: Introductory and overviewTrans Eye for the Cis Ally: Ensuring an Inclusive Community
Presented by: Julien Fitzpatrick
Trans 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...
Format: General SessionLevel: Introductory and overviewWalking A Mile In Your Users' Shoes
Presented by: Jameson Hampton
Developing 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...
Format: General SessionLevel: Introductory and overviewWhat Time Is It Anyway?
Presented by: Tyler Jennings
Handling 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...
Format: General SessionLevel: IntermediateAccessibility Audits in Chrome: Easy Steps toward an Inclusive Internet
Presented by: Maranda Provance
Do 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...
Format: General SessionLevel: Introductory and overviewExample Mapping: The New Three Amigos
Presented by: Thomas Haver
Example 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...
Format: General SessionLevel: Introductory and overviewRaiders of the Lost Query: Learning Best Practices for Exploratory Data Analysis in R Programming
Presented by: Pierre DeBois
Indiana 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. ...
Format: General SessionLevel: Introductory and overviewStraying From the Happy Path: Taking Control of Errors in Swift
Presented by: Jeff Kelley
Have 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,...
Format: General SessionLevel: Introductory and overviewTest-driven development: save your time, save your sanity, write great code fast
Presented by: Paul Roub
For 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...
Format: General SessionLevel: IntermediateThe Case of the Tenacious Tester: How Using Your Words Improves QA Work
Presented by: Katrina Ohlemacher
"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...
Format: General SessionLevel: Introductory and overviewThe Hows and Whys of Podcasting in 2020
Presented by: Leo Dion
In 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...
Format: General SessionLevel: Introductory and overviewThirst-quenching Streams for the Reactive Mind
Presented by: Mary Grygleski
With 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...
Format: General SessionLevel: IntermediateWatch How The Giants Fall: Learning from Bug Bounty Results
Presented by: John Melton
Security is hard. We all miss things. Attackers find things. ...
Format: General SessionLevel: IntermediateKidzMash: Mad Science
It is always sad to come to the end. To ease our parting Mad Science is coming to the close and bringing Fire and Ice! One last scientific exploration into matter and pressure before we send you home until 2021
Format: General SessionLevel: Intermediate