Session Schedule

Session Schedule2019-01-07T06:25:51+00:00

Tuesday

8:00 AM

Hands On Threat Modeling Workshop

Presented by: Robert Hurlbut
Time: Tuesday 8:00 AM - 12:00 PM

Threat modeling is a way of thinking about what could go wrong and how to prevent it. Instinctively, we all think this way in regards to our own personal security and safety. When it comes to building software, some software shops either skip the important step of threat modeling in secure software...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Security, Soft Skills/BusinessFormat: PreCompilerLevel: Intermediate
1:00 PM

GIT: From beginner to Fearless

Presented by: Brian Gorman
Time: Tuesday 1:00 PM - 5:00 PM

This training is an introduction to GIT for source control. We'll take a look at getting started with GIT on our own machines, as well as working with GIT at public/private repositories on GitHub and/or BitBucket. Tools we'll use include BASH and VSCode GIT can scare people. It shouldn't. GIT is...

Room: Indigo BayTrack: Programming PrinciplesFormat: PreCompilerLevel: Intermediate

Reactive Extensions Without Marbles

Presented by: Eric Smith
Time: Tuesday 1:00 PM - 5:00 PM

ReactiveX is an exciting technology that's rapidly becoming pervasive, with implementations in Java, Swift, JavaScript and more. It has use cases from asynchronous calls to UI development, but unfortunately most tutorials and explanations are filled with theory and marble diagrams. Trying to get...

Room: OrangeTrack: ArchitectureFormat: PreCompilerLevel: Intermediate

iOS Application Security Testing

Presented by: Hans Weisheimer
Time: Tuesday 1:00 PM - 5:00 PM

This hands-on session is aimed at mobile app developers, QA testers, aspiring security testers, and other suspicious persons. Modern mobile app development abstracts away most low-level interaction with the operating system. It is common to rely on third-party modules to handle sensitive data or...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Mobile, Security, TestingFormat: PreCompilerLevel: Intermediate

Tech Debt Be Gone! Time to Refactor JavaScript

Presented by: Joe Morgan, Laurie Barth
Time: Tuesday 1:00 PM - 5:00 PM

It’s been a battle, but the code is finally working. It’s time to clean it up, but not so fast, something else is on fire and the code has to be pushed as it is. Whenever there is time to refactor something else comes up. Of course, this doesn’t just happen once. A quick change here. A little...

Room: Sagewood / ZebrawoodTrack: Software QualityTags: JavascriptFormat: PreCompilerLevel: Intermediate

Codemash VoiceHack 2020

Presented by: Jeff Blankenburg
Time: Tuesday 1:00 PM - 5:00 PM

This is a pre-compiler for learning how to build voice applications using Alexa. We will cover things like intents, sample utterances, handlers, and voice design principles. You'll learn how to use AWS Lambda functions, talk to APIs, and even how to make some money. But this is also a kickoff to...

Room: Salon ATrack: HardwareFormat: PreCompilerLevel: Intermediate

Hadoop Essentials

Presented by: Eric Richardson
Time: Tuesday 1:00 PM - 5:00 PM

Big Data and Cloud platforms have their origins in Hadoop. Learn the fundamentals of HDFS, Map Reduce and Yarn the three core components of Apache Hadoop. You will start a sandbox cluster, interact with HDFS, learn how HDFS saves data and why it does it that way. MapReduce is an important...

Room: Salon HTrack: DataTags: Big DataFormat: PreCompilerLevel: Intermediate

Building a Full CRUD Application in Excel with VBA and SQL Integration

Presented by: Derek Mulhausen
Time: Tuesday 1:00 PM - 5:00 PM

In this talk, we will build a full application from scratch in Excel to store customer discounts in Excel. We will start with recording a macro to quickly prototype some of our actions and then dig into the underlying code to polish the formatting and produce a product that can be put into...

Room: Salon ETrack: UI/DesignTags: Design (UI/UX/CSS), Functional ProgrammingFormat: PreCompilerLevel: Intermediate
2:30 PM

May the Turtle be With You

Presented by: Adrienne Tacke
Time: Tuesday 2:30 PM - 3:30 PM

Did you know you can draw and create simple games with Python's built-in Turtle module? No? Well you're in luck! In this session, I'll introduce you to the Turtle module and all the cool things you can do with it! We'll: - Create drawings with Python code - Make a new Turtle friend - Develop and...

Room: AcaciaTrack: KidzMashTags: PythonFormat: KidzMash SessionzLevel: Intermediate

Wednesday

8:00 AM

Building an educational game with .NET Core and Unity3D (Workshop)

Presented by: Johnny Hooyberghs
Time: Wednesday 8:00 AM - 12:00 PM

If you are waiting for a deep dive into .NET Core, the Microsoft Compiler Platform and Unity3D this workshop is for you! No high-level tech demos, but a real-life application that is used in schools. Building an educational game, with robots fighting to the death, from scratch, will be a blast. This...

Room: ZambeziTrack: ArchitectureTags: .NET, Design (UI/UX/CSS)Format: PreCompilerLevel: Intermediate

The Demystifying Docker and Kubernetes DOJO

Presented by: Barry Tarlton, Michael Frayer
Time: Wednesday 8:00 AM - 12:00 PM

Want to be able to able to go from code to containers and then to a fully resilient, cluster managed environment like Kubernetes? Then this session is for you! This session will start with your code (or ours if you don't want to bring your own) and take you through the steps of packaging it as a...

Room: Indigo BayTrack: Programming PrinciplesTags: CloudFormat: PreCompilerLevel: Intermediate

Decision Making in the Face of Uncertainty

Presented by: Gary Short
Time: Wednesday 8:00 AM - 12:00 PM

Decision making in the face of uncertainty is one of the hardest things to do. In this pre-compiler session, we'll borrow methods from machine learning, statistics, trading and computer science to compose a methodology which will allow you to make the best decision possible given the evidence you...

Room: CypressTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: PreCompilerLevel: Intermediate

Get Progressive with it

Presented by: Matthew LaForest
Time: Wednesday 8:00 AM - 12:00 PM

Responsive web design! Mobile first! Hybrid apps! We are continuously bombarded with new ideas about the best way to develop a new application. For a small team, effectively delivering across many platforms can be a problem, but delivering a hybrid app frequently falls into an uncanny valley...

Room: OrangeTrack: Web/Front-EndTags: Design (UI/UX/CSS), Javascript, Mobile, OtherFormat: PreCompilerLevel: Intermediate

Application Security, Basic, Intermediate, Advanced

Presented by: Bill Sempf
Time: Wednesday 8:00 AM - 12:00 PM

Bill will be joining us to teach a dynamic course to help us think like an attacker and give us all the coding tips we need to stop them cold in their tracks. Even the most experienced developers are sure to pick up some new tips and tricks. This hands-on half-day workshop will have something for...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Security, TestingFormat: PreCompilerLevel: Intermediate

Kafka: Build, Deploy, and Monitor Your First Real-World Application

Presented by: Justin Pihony
Time: Wednesday 8:00 AM - 12:00 PM

Companies nowadays are finding it critical to be able to gather and analyze massive amounts of disparately-sourced data, quickly and reliably. By diving into the fundamentals of Apache Kafka, you will learn how it can be more than a superior, distributed messaging system, but also a platform to...

Room: Salon HTrack: DataTags: Big Data, Functional ProgrammingFormat: PreCompilerLevel: Intermediate

Making Reality Virtual: Simulating Experiences with VR Prototyping

Presented by: Scott Showalter
Time: Wednesday 8:00 AM - 12:00 PM

Take the Red Pill, and let's dive into the mind-bending Matrix that is Virtual Reality prototyping. Not just for gaming (though that's cool too), a new dimension of experience simulation is now open to designers of software as well as physical products, to observe customer interaction and gather...

Room: Salon ETrack: UI/DesignFormat: PreCompilerLevel: Intermediate
1:00 PM

Java 9, 10 & 11 Workshop

Presented by: Christopher Judd
Time: Wednesday 1:00 PM - 5:00 PM

With the quick moving 6-month Java train releases, you like many Java developers and organizations may have remained on Java 8 waiting for the next Long-Term-Support (LTS) release. Well, Java 11 is here so it is time to begin the adoption and upgrading. Java 9 was a HUGE release with many impactful...

Room: Indigo BayTrack: Programming PrinciplesTags: JavaFormat: PreCompilerLevel: Intermediate

Coaching Katas - In Search of The Answer to the Agile Kobayashi Maru

Presented by: Faye Thompson, Charles Husemann
Time: Wednesday 1:00 PM - 5:00 PM

These virtues are formed in man by his doing the actions. -- Aristotle A code kata is an exercise in which developers hone their programming skills through practice and repetition. This workshop is intended to do the same thing for agilists by providing them with difficult real-world scenarios to...

Room: CypressTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: PreCompilerLevel: Intermediate

Server Side Swift Saves CodeMash: Breaking free of the phone

Presented by: Anne Cahalan
Time: Wednesday 1:00 PM - 5:00 PM

CodeMash is a whirlwind of great workshops, talks, and experiences. If only you could capture these insights and save them forever... Swift can help -- but we're NOT going to build an iOS app! Server Side Swift has gone from a fun idea to a robust, mature platform for moving data from the backend...

Room: NileTrack: MobileTags: Mobile, OtherFormat: PreCompilerLevel: Intermediate

Building a DevSecOps Pipeline

Presented by: Gene Gotimer
Time: Wednesday 1:00 PM - 5:00 PM

The release date is a week away. Development is complete. The code works, and everything looks good. Marketing is ready with the media blitz. Our customers are waiting to get their hands on the new features and are sure to give us good feedback. The only step left is to get the security group to...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Other, SecurityFormat: PreCompilerLevel: Intermediate

Ensure Your Users Experience - A Trip Around User Validation Tools

Presented by: Rick Clymer, Aaron Glass
Time: Wednesday 1:00 PM - 5:00 PM

In today’s fast feedback world, getting our product in front of users often is incredibly important. But how do we know our product is ready to go in front of our users. Sure, we have 1,000’s of unit and integration tests on each of our microservices, but what happens when we put them all...

Room: Sagewood / ZebrawoodTrack: Software QualityTags: Javascript, Python, TestingFormat: PreCompilerLevel: Intermediate

Hands-on Infrastructure as Code

Presented by: Andrew May
Time: Wednesday 1:00 PM - 5:00 PM

Learn the benefits of Infrastructure as Code (IaC) in this workshop where you'll provision resources in AWS using both CloudFormation and Terraform. Learn the joy of creating Infrastructure in a repeatable manner with a single command line replacing a hundred clicks in the web console.

Room: Salon ATrack: DevOpsTags: Cloud, OtherFormat: PreCompilerLevel: Intermediate

Micro Frontends: Breaking up the Frontend Monolith

Presented by: Kito Mann
Time: Wednesday 1:00 PM - 5:00 PM

Over the past several years we have embraced microservices as a way to “break up the monolith” and reduce complexity, allowing teams to focus on specific areas of functionality, while providing more flexible scaling and better fault isolation. However, for most of us, the front-end has remained...

Room: Salon DTrack: Web/Front-EndTags: Java, JavascriptFormat: PreCompilerLevel: Intermediate

Thursday

8:00 AM

Technical debt must die - Communicating code to business stakeholders

Presented by: Matt Eland
Time: Thursday 8:00 AM - 9:00 AM

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...

Room: ZambeziTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

Open Source XAML Takes You Places!

Presented by: Sam Basu
Time: Thursday 8:00 AM - 9:00 AM

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...

Room: NileTrack: MobileFormat: General SessionLevel: Intermediate

The UX of Configuration Files

Presented by: Eemeli Aro
Time: Thursday 8:00 AM - 9:00 AM

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...

Room: Sagewood / ZebrawoodTrack: UI/DesignTags: Design (UI/UX/CSS), JavascriptFormat: General SessionLevel: Intermediate

Quantity vs. Quality: Is less (code) really more?

Presented by: Anne Cahalan
Time: Thursday 8:00 AM - 9:00 AM

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...

Room: MangroveTrack: Programming PrinciplesFormat: General SessionLevel: Intermediate
9:15 AM

A .NET Data Access Layer You're Proud of (Without Entity Framework)

Presented by: Jonathan "J." Tower
Time: Thursday 9:15 AM - 10:15 AM

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...

Room: ZambeziTrack: DataTags: .NETFormat: General SessionLevel: Intermediate

Angular and The Case for RxJS

Presented by: Sandi Barr
Time: Thursday 9:15 AM - 10:15 AM

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...

Room: OrangeTrack: Web/Front-EndTags: Functional Programming, JavascriptFormat: General SessionLevel: Intermediate

Going crazy with CQRS

Presented by: Seth Kraut
Time: Thursday 9:15 AM - 10:15 AM

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....

Room: Sagewood / ZebrawoodTrack: ArchitectureTags: .NET, JavaFormat: General SessionLevel: Intermediate

Usability Starts With Accessibility

Presented by: Patrick McSweeny
Time: Thursday 9:15 AM - 10:15 AM

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...

Room: Salon HTrack: UI/DesignTags: Design (UI/UX/CSS)Format: General SessionLevel: Intermediate

Beware of dark clouds on the horizon

Presented by: Andrew May
Time: Thursday 9:15 AM - 10:15 AM

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. Will yours be the next company to expose confidential information in a public S3 bucket? Will your cloud account become unmanageable and expensive because all the...

Room: Salon ETrack: DevOpsTags: CloudFormat: General SessionLevel: Intermediate
10:30 AM

Vue 3.0 Smaller, Faster & Stronger

Presented by: Dan Vega
Time: Thursday 10:30 AM - 11:30 AM

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...

Room: CypressTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

Antifragile Teams

Presented by: Charlie Sweet
Time: Thursday 10:30 AM - 11:30 AM

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. In nature, there are three types of systems. 1. Fragile systems that break under stress,...

Room: OrangeTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

[CANCELLED] Adding Search Capabilities to your Applications with Elastic Search

Presented by: Rod Paddock
Time: Thursday 10:30 AM - 11:30 AM

This session has been cancelled. We apologize for any trouble this causes.

Room: Sagewood / ZebrawoodTrack: DataTags: .NET, Cloud, Big DataFormat: General SessionLevel: Intermediate

Make More 💰 Money with Less 🛠 Effort: 🧪 Experimentation Before Implementation

Presented by: Scott Showalter
Time: Thursday 10:30 AM - 11:30 AM

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...

Room: Portia/WisteriaTrack: MobileTags: Design (UI/UX/CSS), Mobile, Other, Soft Skills/Business, TestingFormat: General SessionLevel: Intermediate
11:45 AM

Conducting Humane Code Reviews

Presented by: Adrienne Tacke
Time: Thursday 11:45 AM - 12:45 PM

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...

Room: CypressTrack: Project Leadership/Soft SkillsFormat: General SessionLevel: Intermediate

Bringing Order to Chaos

Presented by: Scott Connerly
Time: Thursday 11:45 AM - 12:45 PM

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...

Room: NileTrack: ArchitectureTags: Other, Soft Skills/Business, TestingFormat: General SessionLevel: Intermediate

Securing Your API Endpoints - A Practical Authentication Guide

Presented by: Seth Petry-Johnson
Time: Thursday 11:45 AM - 12:45 PM

It's never been easier to expose services over HTTP. It's also never been easier to inadvertently expose security holes via those same services. This session is designed for the average developer/architect that wants a brief overview of API security without getting into the weeds of cryptography...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: .NET, Javascript, SecurityFormat: General SessionLevel: Intermediate

Automating Your Automation: The Care and Feeding of Jenkins

Presented by: Jeff McKenzie
Time: Thursday 11:45 AM - 12:45 PM

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...

Room: Salon HTrack: DevOpsTags: OtherFormat: General SessionLevel: Intermediate
1:00 PM

Hold Up, Wait a Minute, Let Me Put Some Async In It

Presented by: Matthew Jones
Time: Thursday 1:00 PM - 2:00 PM

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? In this code-heavy session, we'll take a "older" .NET web app which has no asynchronous code and slowly refactor it...

Room: CypressTrack: Programming PrinciplesTags: .NETFormat: General SessionLevel: Intermediate

Postman Delivers! A Deep Dive into API Testing.

Presented by: Bob Crowley
Time: Thursday 1:00 PM - 2:00 PM

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...

Room: OrangeTrack: Software QualityTags: TestingFormat: General SessionLevel: Intermediate

The Agile Designer: Aligning Dual-track UX and Development to Balance the Tactical and Strategic, Mi

Presented by: Jenna Chamra
Time: Thursday 1:00 PM - 2:00 PM

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...

Room: Salon HTrack: UI/DesignTags: Design (UI/UX/CSS)Format: General SessionLevel: Intermediate

Sell Yourself With a Software Quality Portfolio

Presented by: Aaron Glass
Time: Thursday 1:00 PM - 2:00 PM

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? The goal of this talk is...

Room: Salon ETrack: Software QualityTags: TestingFormat: General SessionLevel: Intermediate

By Our Powers Combined: Observability for Developers

Presented by: Aaron Aldrich
Time: Thursday 1:00 PM - 2:00 PM

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....

Room: Portia/WisteriaTrack: DevOpsTags: Cloud, Other, TestingFormat: General SessionLevel: Intermediate
1:30 PM

Using Python to Develop a Discord Bot

Presented by: Raphael Gotfryd
Time: Thursday 1:30 PM - 3:25 PM

Discord is the best way to communicate with your gamer friends. But what if I told you that you could create games with it? Well, you can in the form of a Discord bot. In this session we will go over many details about the Discord bot, and have a code along where you can make your own bot game for...

Room: IronwoodTrack: KidzMashTags: PythonFormat: KidzMash DivezLevel: Intermediate
3:30 PM

What's New in Xamarin Forms 4.0

Presented by: Jason Awbrey
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: CypressTrack: MobileTags: .NET, MobileFormat: General SessionLevel: Intermediate

User Interviews: More than Just a Conversation

Presented by: Ash Banaszek
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: OrangeTrack: UI/DesignFormat: General SessionLevel: Intermediate

A Series of Unfortunate Events - What Happens When Your App is Hacked.

Presented by: Joe Kuemerle
Time: Thursday 3:30 PM - 4:30 PM

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. You will see...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: SecurityFormat: General SessionLevel: Intermediate

Coaching & Communicating with Diverse Teams

Presented by: Kiera Prioleau
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: Salon ATrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

Fast, Reliable, Powerful IoT Projects Built on Elixir With Nerves

Presented by: Joel Byler
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: MangroveTrack: HardwareTags: Functional Programming, HardwareFormat: General SessionLevel: Intermediate

Say No To Accidental Architecture! Code Your Design Systems Instead

Presented by: Burton Smith
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: Portia/WisteriaTrack: ArchitectureTags: Design (UI/UX/CSS)Format: General SessionLevel: Intermediate

TerseScript: JavaScript with 6 characters or less

Presented by: Mike Hand
Time: Thursday 3:30 PM - 4:30 PM

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...

Room: RosewoodTrack: Programming PrinciplesTags: JavascriptFormat: General SessionLevel: Intermediate
4:45 PM

Vertical Slice Architecture

Presented by: Jimmy Bogard
Time: Thursday 4:45 PM - 5:45 PM

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...

Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Intermediate

Twelve Spins on User Experience

Presented by: Keith Instone
Time: Thursday 4:45 PM - 5:45 PM

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. “We need some UX magic before we launch” “The UX team just gave us the designs, so let’s start...

Room: CypressTrack: UI/DesignTags: Design (UI/UX/CSS), Soft Skills/BusinessFormat: General SessionLevel: Intermediate

DevOps as a Force Multiplier for Agile

Presented by: Nate Berent-Spillson
Time: Thursday 4:45 PM - 5:45 PM

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...

Room: NileTrack: DevOpsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

App Deco - Applied Design Thinking for Secure Development

Presented by: Wolfgang Goerlich
Time: Thursday 4:45 PM - 5:45 PM

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...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Design (UI/UX/CSS), SecurityFormat: General SessionLevel: Intermediate

Human Readable JavaScript: Using ES2015+ to Craft Better Code

Presented by: Laurie Barth
Time: Thursday 4:45 PM - 5:45 PM

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. The good news is that things have gotten better! Lots of ECMAScript 2015 (and beyond)...

Room: Sagewood / ZebrawoodTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

Horizontal Scaling of Graph Databases

Presented by: Ryan Hendrickson
Time: Thursday 4:45 PM - 5:45 PM

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...

Room: Salon ETrack: DataTags: Cloud, Big DataFormat: General SessionLevel: Intermediate

Testing your UI Components

Presented by: Avindra Fernando
Time: Thursday 4:45 PM - 5:45 PM

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...

Room: RosewoodTrack: Web/Front-EndTags: Design (UI/UX/CSS), Javascript, TestingFormat: General SessionLevel: Intermediate

Friday

8:30 AM

Well.. that's ONNX-pected

Presented by: Ron Dagdag
Time: Friday 8:30 AM - 9:30 AM

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...

Room: RosewoodTrack: DataTags: .NET, Cloud, Big Data, Javascript, Other, PythonFormat: General SessionLevel: Intermediate
9:00 AM

Have More Fun in Minecraft, With Redstone!

Presented by: Nathan Arthur
Time: Friday 9:00 AM - 10:00 AM

Have you ever wanted to build your own redstone machines in Minecraft? Come build cool redstone doors, traps, weapons, and farms with Benjamin (age 9) and Liam (age 7). But we won't just build them - we'll learn how they work - so you can build your own inventions at home! Please bring a computer,...

Room: AcaciaTrack: KidzMashTags: HardwareFormat: KidzMash SessionzLevel: Intermediate
9:45 AM

Burn It Down and Start Again: Principles of Modern JavaScript

Presented by: Joe Morgan
Time: Friday 9:45 AM - 10:45 AM

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...

Room: ZambeziTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

Context is King: Finding Service Boundaries

Presented by: Derek Comartin
Time: Friday 9:45 AM - 10:45 AM

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. Defining the correct service boundaries is incredibly important but can be pretty tricky. When defined correctly, the model feels...

Room: NileTrack: ArchitectureTags: CloudFormat: General SessionLevel: Intermediate

API Design for ETL - Lessons from Nearly 100 Data Integrations in the Wild

Presented by: Dan Mosora
Time: Friday 9:45 AM - 10:45 AM

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...

Room: Sagewood / ZebrawoodTrack: DataTags: Cloud, Big DataFormat: General SessionLevel: Intermediate

Building a super performant GossipGirl.com in Gatsby in under 50 Minutes

Presented by: Jennifer Wadella
Time: Friday 9:45 AM - 10:45 AM

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...

Room: Salon HTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

Owning Your Experience: Talking about Mental Health In the Workplace

Presented by: Arthur Doler
Time: Friday 9:45 AM - 10:45 AM

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"...

Room: Salon DTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

How Exploding Birthday Cakes and Other CRAZY Projects Come to Life

Presented by: Barry Tarlton
Time: Friday 9:45 AM - 10:45 AM

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...

Room: MangroveTrack: HardwareTags: HardwareFormat: General SessionLevel: Intermediate

Environment Configuration for JavaScript Apps

Presented by: David Truxall
Time: Friday 9:45 AM - 10:45 AM

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...

Room: RosewoodTrack: DevOpsFormat: General SessionLevel: Intermediate
11:00 AM

REST in Peace: Killing REST and adopting RPC.

Presented by: Steven Swenson
Time: Friday 11:00 AM - 12:00 PM

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...

Room: CypressTrack: ArchitectureFormat: General SessionLevel: Intermediate

Hiring and Inspiring an Exceptional Team

Presented by: Seth Petry-Johnson
Time: Friday 11:00 AM - 12:00 PM

Management gets a bad rap in technical circles, and for good reason: many managers are terrible, and it shows! Rising above the pointy-haired-boss stereotypes is easier than you might think. By grounding your leadership style in management science, and adding a touch of emotional intelligence, you...

Room: NileTrack: Project Leadership/Soft SkillsTags: Soft Skills/BusinessFormat: General SessionLevel: Intermediate

Android: A peek under the hood

Presented by: Brad Hollander
Time: Friday 11:00 AM - 12:00 PM

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...

Room: Sagewood / ZebrawoodTrack: MobileTags: MobileFormat: General SessionLevel: Intermediate

Assembly Language: The (Sega) Genesis of Programming

Presented by: Joe Sewell
Time: Friday 11:00 AM - 12:00 PM

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...

Room: Salon ATrack: HardwareTags: HardwareFormat: General SessionLevel: Intermediate

Development magic: Producing more development time out of thin air.

Presented by: Jonathan Batteas
Time: Friday 11:00 AM - 12:00 PM

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...

Room: Salon ETrack: DevOpsFormat: General SessionLevel: Intermediate
12:15 PM

React State: Redux & Context & Hooks, Oh My!

Presented by: Michael Moran
Time: Friday 12:15 PM - 1:15 PM

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...

Room: CypressTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

DDoS Attacks: Threat Landscape & Defensive Countermeasures

Presented by: Chris Holland
Time: Friday 12:15 PM - 1:15 PM

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...

Room: Aloeswood / LeopardwoodTrack: SecurityTags: Other, SecurityFormat: General SessionLevel: Intermediate

Hey, You Got Your TDD in my SQL DB!

Presented by: Jeff McKenzie
Time: Friday 12:15 PM - 1:15 PM

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)....

Room: Sagewood / ZebrawoodTrack: Software QualityTags: TestingFormat: General SessionLevel: Intermediate

Understanding the identity business, and how to get out of it

Presented by: Jeff Putz
Time: Friday 12:15 PM - 1:15 PM

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...

Room: RosewoodTrack: SecurityTags: Cloud, Other, SecurityFormat: General SessionLevel: Intermediate
2:45 PM

Mock It 'til You Make It

Presented by: Gabriela Dombrowski
Time: Friday 2:45 PM - 3:45 PM

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...

Room: NileTrack: Web/Front-EndFormat: General SessionLevel: Intermediate

What Time Is It Anyway?

Presented by: Tyler Jennings
Time: Friday 2:45 PM - 3:45 PM

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...

Room: Salon ATrack: DataFormat: General SessionLevel: Intermediate
4:00 PM

Test-driven development: save your time, save your sanity, write great code fast

Presented by: Paul Roub
Time: Friday 4:00 PM - 5:00 PM

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...

Room: Indigo BayTrack: Programming PrinciplesTags: Other, TestingFormat: General SessionLevel: Intermediate

Watch How The Giants Fall: Learning from Bug Bounty Results

Presented by: John Melton
Time: Friday 4:00 PM - 5:00 PM

Security is hard. We all miss things. Attackers find things. "You must learn from the mistakes of others. You can't possibly live long enough to make them all yourself." -Samuel Levenson This talk is a fun, fast-moving survey of some of the best recent bug bounty finds against some of the...

Room: Aloeswood / LeopardwoodTrack: SecurityFormat: General SessionLevel: Intermediate

Thirst-quenching Streams for the Reactive Mind

Presented by: Mary Grygleski
Time: Friday 4:00 PM - 5:00 PM

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...

Room: Portia/WisteriaTrack: ArchitectureTags: Functional Programming, Java, OtherFormat: General SessionLevel: Intermediate