Session Schedule

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

Tuesday

No Sessions

Wednesday

No Sessions

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