Session Schedule

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

Tuesday

No Sessions

Wednesday

No Sessions

Thursday

8:00 AM

Modern Cross-Platform Development with .NET 6

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

Slated for Nov 2021, .NET 6 ushers in modern development stacks and polished tooling throughout much of the .NET ecosystem. With .NET MAUI, developers get to build native cross-platform apps for mobile & desktop from single codebase. With Blazor component model, C# can power modern web apps on the...

Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Intermediate

Better Component Isolation With React, GraphQL, and Relay

Presented by: Steven Hicks
Time: Thursday 8:00 AM - 9:00 AM

React has reframed how we think about UI. Instead of controllers, we now think in components. It's like we have a crate full of Legos we can use to assemble our app. We've moved our styles into our components. We're breaking our components into the appropriate sizes. But there's one last problem...

Room: Sagewood / ZebrawoodTrack: Web/Front-EndFormat: General SessionLevel: Intermediate

Life in the Fastlane: App Store Deployments That Won't Make You Lose Your Mind

Presented by: Keith Kurak
Time: Thursday 8:00 AM - 9:00 AM

Imagine deploying your shiny new app to the Apple App Store- creating certs, uploading your app to Testflight, adding testers, taking screenshots on four different devices, filling in dozens of fields on the store description, clicking through EULA’s, and resubmitting five times because the...

Room: Portia/WisteriaTrack: MobileTags: MobileFormat: General SessionLevel: Intermediate
9:15 AM

An Introduction to Kubernetes

Presented by: Jason Farrell
Time: Thursday 9:15 AM - 10:15 AM

Kubernetes has become the defacto tool for orchestrating containerized applications. It changes the way we view deploying and operating applications giving teams immense flexibility which automating many aspects. Yet, it remains difficult to learn and can seem quite foreign to those just getting...

Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Intermediate

Building rugged DevOps pipelines with GitHub Actions

Presented by: Brian Gorman
Time: Thursday 9:15 AM - 10:15 AM

This session dives into using GitHub actions to build out robust DevOps pipelines. In the session, we'll implement an architecture to build a temporary dev environment, and then push the code changes through the pipeline to an end release into production. In addition to just getting the CI/CD...

Room: Nile/OrangeTrack: DevOpsTags: .NET, CloudFormat: General SessionLevel: Intermediate

Implementing Ethics in Emerging Technologies

Presented by: Carol Smith
Time: Thursday 9:15 AM - 10:15 AM

Ethics discussions abound, but translating “do no harm” into our work is frustrating at best, and obfuscatory at worst. We can agree that keeping humans safe and in control is important, but implementing ethics is intimidating work. Learn how to wield your preferred technology ethics code to...

Room: Indigo BayTrack: Software QualityTags: Design (UI/UX/CSS), Other, Soft Skills/Business, Diversity/Equity/InclusionFormat: General SessionLevel: Intermediate
10:30 AM

Enterprise Cloud Patterns - Data Management

Presented by: Pratik Patel
Time: Thursday 10:30 AM - 11:30 AM

The Cloud has changed the way developers approach building applications. Whether you're building Monoliths in the Cloud, Microservices, or Cloud Functions, the keys to successful development, deployment, and operations are challenging. How do Enterprise developers stay on top of this complexity? In...

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

What a global pandemic can tell you about better DevOps practices

Presented by: Jeremy Meiss
Time: Thursday 10:30 AM - 11:30 AM

In early 2020 a global pandemic set in motion events which none of us could predict. With anonymous data collected from 900k+ devs, 25K orgs, and 30m+ builds/mo we found some interesting insights into better DevOps practices. Since then, we've seen even more interesting activities happen, which shed...

Room: Indigo BayTrack: DevOpsTags: Other, Leadership, Soft Skills/BusinessFormat: General SessionLevel: Intermediate
11:45 AM

10 Ways to Write Clean JavaScript Code

Presented by: Avindra Fernando
Time: Thursday 11:45 AM - 12:45 PM

Written in just 10 days, JavaScript continues to be very successful in modern software development. The flexibility of JavaScript empowered rapid innovation in software. But, this flexibility comes at a cost of readable, maintainable, and scalable JavaScript code. Over the years, after working...

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

Rewriting History With Git

Presented by: Steven Hicks
Time: Thursday 11:45 AM - 12:45 PM

Git is an amazing tool for version control. One can get a lot done with only a few commands — commit, merge, pull, and push. But Git is much more powerful than these few commands! Did you know you can remove accidentally-committed files? Include only a few specific commits from another branch?...

Room: Salon A/HTrack: Programming PrinciplesFormat: General SessionLevel: Intermediate

The Elegance of “The Simplest Possible Thing”: Applying Simplicity Principles to Complex Problems

Presented by: Nate Berent-Spillson
Time: Thursday 11:45 AM - 12:45 PM

Software development is complex work. Business requirements, platforms, and technology itself are all complex elements. Through all this complexity, software developers often try to create complex solutions that meet all the requirements at once. Similarly, when faced with a complex problem, they...

Room: Salon E/DTrack: Programming PrinciplesTags: .NET, Cloud, Functional Programming, Java, Javascript, Leadership, TestingFormat: General SessionLevel: Intermediate
1:00 PM

Implementing an Event Sourcing strategy on Azure

Presented by: Eldert Grootenboer
Time: Thursday 1:00 PM - 2:00 PM

In recent years the Event Sourcing pattern has become increasingly popular. By storing a history of events it enables us to decouple the storage of data from the implementation of the logic around it. And we can rebuild the state of our data to any point in time, giving us a wide range of...

Room: Aloeswood / LeopardwoodTrack: Programming PrinciplesTags: .NET, CloudFormat: General SessionLevel: Intermediate

Who’s Afraid of the Big Bad Bluetooth?

Presented by: Leah Vogel
Time: Thursday 1:00 PM - 2:00 PM

With the buzz around IoT devices, Bluetooth Low Energy technology has become increasingly popular. Apple's CoreBluetooth has been around since iOS 5, and offers a host of utility APIs. This talk will cover the basics of Bluetooth LE technology and its terminology. Attendees will learn about...

Room: CypressTrack: MobileTags: MobileFormat: General SessionLevel: Intermediate

Performance tuning for Azure Cosmos DB

Presented by: Hasan Savran
Time: Thursday 1:00 PM - 2:00 PM

Azure Cosmos DB is a fully managed service that takes database administration off your hands. Fully Managed Database sounds good, but developers end up with some of the database administration work anyway. As a developer, you will be responsible for changing Indexing policies, configuring...

Room: Indigo BayTrack: DataTags: .NET, CloudFormat: General SessionLevel: Intermediate

Rock-Solid Components with TypeScript and GraphQL

Presented by: Mat Warger
Time: Thursday 1:00 PM - 2:00 PM

Most recent javascript frameworks bring a solid component model to modern web development, but how can you guarantee that your components work correctly? In this session, you learn how the features of TypeScript can be leveraged to bring clarity and dependability when constructing components with...

Room: Portia/WisteriaTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate
3:30 PM

Keeping your Kubernetes Cluster Secure

Presented by: Gene Gotimer
Time: Thursday 3:30 PM - 4:30 PM

Many organizations are shifting to containers and Kubernetes, and that move means learning new ways to secure their environments. Kubernetes clusters have to be hardened at different levels. We have to consider the nodes where the Kubernetes control plane is running. We also need to secure the...

Room: Sagewood / ZebrawoodTrack: DevOpsTags: SecurityFormat: General SessionLevel: Intermediate
4:45 PM

Monolith Decomposition and Evolutionary Architectures: How to Safely Modernize Legacy Systems

Presented by: Ben Hoffman
Time: Thursday 4:45 PM - 5:45 PM

Replacing and re-engineering a new system to replace a legacy or monolithic system, in its entirety, is risky. And after significant investment, the new system often suffers from many of the same issues the old system had. When you combine long development times with big-bang-style deployment, the...

Room: ZambeziTrack: ArchitectureTags: .NET, CloudFormat: General SessionLevel: Intermediate

Better Interviews, Better Work

Presented by: John Lange
Time: Thursday 4:45 PM - 5:45 PM

Being an interviewer for technical jobs is hard. Checking for technical competency can feel impossible. Asking questions that start with "tell me about a time when" can feel like it has no value. And for many people giving interviews, there is no training; you're left to figure it out on your...

Room: Nile/OrangeTrack: Teams/Leadership/The Future of WorkTags: Leadership, Soft Skills/Business, Diversity/Equity/InclusionFormat: General SessionLevel: Intermediate

Putting the FUN back in Fundamentals: Data Structures, Algorithms, and More!

Presented by: Matt Williams
Time: Thursday 4:45 PM - 5:45 PM

In this session, we will bring FUN back to Fundamentals as we: * Look at favorite data structures and algorithms from the 70s, 80s, and 90s: where are they today? You won't believe #7! * Discover why hashes aren't just for breakfast. * Discover the Lolrus' favorite data structure (hint: it's got...

Room: Salon E/DTrack: Programming PrinciplesTags: .NET, Functional Programming, Java, Javascript, Other, Ruby/Rails, PythonFormat: General SessionLevel: Intermediate

Master All Frontends in Real-Time with React Native

Presented by: Stephen Shary
Time: Thursday 4:45 PM - 5:45 PM

Front-end development is fragmented with many different stacks that are tailored to: web, Android, or iOS. We demonstrate live how React Native can be used to develop on all three platforms at the same time. We will show how to kick start a new project, make it run on all three platforms and then...

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

Getting started with Kubenetes Policy Development

Presented by: Robert Sirchia
Time: Thursday 4:45 PM - 5:45 PM

This session is designed to get a user started in writing Kubernetes policies in Rust. We will, touch on what is a policy. How we are going to leverage Rust and Web Assembly to write our policy. What tools you will need to develop a policy. Build out a sample policy and test it on a local...

Room: CypressTrack: SecurityFormat: General SessionLevel: Intermediate

Friday

8:30 AM

Building APIs at scale - Caching and how to avoid cache stampedes

Presented by: Matt Nedrich
Time: Friday 8:30 AM - 9:30 AM

As an API scales, it will likely need caching to remain performant. Cache stampedes are a type of cascading failure that can occur in systems under heavy load, as these systems attempt to service many concurrent requests and also keep their caches up to date. There are several approaches to...

Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Intermediate

Visualizing Code

Presented by: Matt Eland
Time: Friday 8:30 AM - 9:30 AM

What happens if we combine the fields of software architecture and data visualization? In this talk, we'll explore what the source code and work item management systems we work with every day can tell us about the evolving nature of software and how we communicate it. This talk will highlight a...

Room: Salon E/DTrack: DataTags: OtherFormat: General SessionLevel: Intermediate

Introduction to inner-loop security. Shifting left, but better.

Presented by: Josh Wallace
Time: Friday 8:30 AM - 9:30 AM

We can barely make it through an AppSec talk or article without hearing about the wonders of “shift left” and how it is the key to solving all of our security problems. Every intro to AppSec talk starts with the cost savings and return on investment associated with discovering security defects...

Room: CypressTrack: SecurityTags: Security, TestingFormat: General SessionLevel: Intermediate
9:45 AM

Effective React State: 7 Years of Lessons Learned

Presented by: Cory House
Time: Friday 9:45 AM - 10:45 AM

Managing React state is hard. Why? Because there are so many options to consider! Local state, reducers, custom hooks, context, and over a dozen third-party libraries. In this session, we’ll explore the lessons I’ve learned from managing complex state in React over the last seven years. I’ll...

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

Time traveling in the cloud. Time series analytics with Microsoft Azure.

Presented by: Sam Vanhoutte
Time: Friday 9:45 AM - 10:45 AM

The data collected in IoT scenarios are often thought of as a ‘time series”. Through this data it’s possible to understand the past and use this data to anticipate the future. But time traveling is never straight forward. That’s why in this session Sam will walk you through the processing of...

Room: Indigo BayTrack: DataTags: .NET, Cloud, Big Data, PythonFormat: General SessionLevel: Intermediate
11:00 AM

Mistaken Identity: SAML and OAuth Security

Presented by: Wolfgang Goerlich
Time: Friday 11:00 AM - 12:00 PM

While everyone was focused on credentials, criminals quietly moved to exploiting mistakes in identity. You have a long and strong password? That’s sweet. You’re using all three types of multi-factor? That’s cute. It won’t matter when the adversaries compromise identity protocols after...

Room: Salon A/HTrack: SecurityTags: SecurityFormat: General SessionLevel: Intermediate

If You Don’t Have a Failing Test, You Don’t Have S***

Presented by: Nate Berent-Spillson
Time: Friday 11:00 AM - 12:00 PM

My go-to technique for just about every problem is a failing unit test. Many developers think of unit tests as something they're forced to write to hit some coverage metric, but when you look at it as a way to prove or disprove a hypothesis—it becomes a very powerful tool for problem-solving. It's...

Room: Salon E/DTrack: Programming PrinciplesTags: .NET, Cloud, Functional Programming, Java, Javascript, Mobile, Leadership, Ruby/Rails, Python, Soft Skills/Business, TestingFormat: General SessionLevel: Intermediate

Nope, create-react-app is not what you want, and here's why

Presented by: Sara Gibbons
Time: Friday 11:00 AM - 12:00 PM

So you're looking to start a new site, have decided React is your framework of choice, but before you npx create-react-app, let's talk. Yes, create-react-app is great and will immediately get you so many things. But, once the shininess fades away, your app grows you will soon find yourself pulling...

Room: Aloeswood / LeopardwoodTrack: Web/Front-EndTags: JavascriptFormat: General SessionLevel: Intermediate

Serverless on Azure

Presented by: Jason Farrell
Time: Friday 11:00 AM - 12:00 PM

Azure Functions are the serverless offering from Microsoft on Azure, enabling the fulfillment of many use cases without the need to worry about the servers. By responding to events within the Azure platform, Functions are granted access to a wide variety of use cases and situations. Perhaps their...

Room: Sagewood / ZebrawoodTrack: ArchitectureFormat: General SessionLevel: Intermediate

ChatOps and DevOps: How to Use Comms as Incident Response

Presented by: PJ Hagerty
Time: Friday 11:00 AM - 12:00 PM

The most important tool in your DevOps toolbox is communication. Without it, nothing can be accomplished, especially resolving incidents when they occur. In this talk, we will discuss how to use a comms platform to tie-in playbooks, integrate the DevOps processes in place, and bring together remote...

Room: CypressTrack: DevOpsFormat: General SessionLevel: Intermediate

Extending Spring Data and Spring Data Redis

Presented by: Brian Sam-Bodden
Time: Friday 11:00 AM - 12:00 PM

In this session, Brian will take you along for a journey into the codebases of Spring Data and Spring Data Redis to help you understand how to build your own annotation-based Spring Data extensions. Whether you are building a framework or a business/application-specific extension, understanding the...

Room: Indigo BayTrack: DataTags: Big Data, JavaFormat: General SessionLevel: Intermediate
12:15 PM

CSS Houdini - Just what CSS needed, more JavaScript

Presented by: John Lange
Time: Friday 12:15 PM - 1:15 PM

Coming soon to a browser near you is a brand new technology that will revolutionize your websites. Finally, JavaScript can be embedded into your CSS! CSS Houdini is new, exciting, lets you do some really cool things, and is going to change everything you know about layout and display in CSS. Like,...

Room: ZambeziTrack: Web/Front-EndTags: Design (UI/UX/CSS), JavascriptFormat: General SessionLevel: Intermediate

Design Patterns for Loosely Coupled Applications in .NET

Presented by: Barry Stahl
Time: Friday 12:15 PM - 1:15 PM

Building loosely coupled applications is critical to creating solutions that follow good object oriented principles. These principles help make sure our applications are testable, maintainable and extensible. In this session we will explore several design patterns that are key to building...

Room: Salon A/HTrack: Programming PrinciplesTags: .NET, OtherFormat: General SessionLevel: Intermediate

The Super Spectacular Interactive Event Driven Light Show

Presented by: Barry Tarlton
Time: Friday 12:15 PM - 1:15 PM

The ability to properly design and implement highly resilient event driven systems is critical in our data centric world. But getting one’s mind around the complex choreography of this data driven architecture can be absurdly difficult. By using a Raspberry Pi Kafka Cluster, light bars, and...

Room: CypressTrack: ArchitectureTags: Big Data, HardwareFormat: General SessionLevel: Intermediate

Data Science on the JVM with Kotlin and Zeppelin

Presented by: Pratik Patel
Time: Friday 12:15 PM - 1:15 PM

The world of Data Science heavily uses Python and Python libraries such as NumPy and Pandas. While Python is a great platform, it does have some drawbacks - one of which is performance. As Java developers, we enjoy the familiarity of the JVM and the constellation of tools and libraries available for...

Room: Indigo BayTrack: DataTags: Big DataFormat: General SessionLevel: Intermediate
2:45 PM

Scaling Systems: Architectures that grow

Presented by: Kendall Miller
Time: Friday 2:45 PM - 3:45 PM

It's harder than ever to predict the load your application will need to handle in advance, so how do you design your architecture so you can afford to implement as you go and be ready for whatever comes your way. It's easy to focus on optimizing each part of your application but your application...

Room: Salon E/DTrack: ArchitectureTags: .NET, CloudFormat: General SessionLevel: Intermediate

The Most Tested Login Page Ever

Presented by: Scott Connerly
Time: Friday 2:45 PM - 3:45 PM

Automated testing is a mystery to some, an essential fortress to others, and many of the rest of us are somewhere in-between. Sure, you've probably heard of unit tests and API tests. In this session, we'll explore every conceivable means to test ... a simple log in page. Using approaches like ......

Room: CypressTrack: Software QualityTags: Javascript, TestingFormat: General SessionLevel: Intermediate

The Four Basic Principles of Accessibility

Presented by: Homer Gaines
Time: Friday 2:45 PM - 3:45 PM

Within the WCAG 2.1, web-accessible content is broken into four principles collectively referred to as POUR. This acronym stands for Perceivable, Operable, Understandable, and Robust. These four areas specifically target areas where users have the most trouble when accessing digital content and...

Room: Portia/WisteriaTrack: Web/Front-EndTags: Diversity/Equity/InclusionFormat: General SessionLevel: Intermediate
4:00 PM

Build and Ship It!

Presented by: Joseph Guadagno
Time: Friday 4:00 PM - 5:00 PM

If you are like me, you have many libraries, helpers, utilities that you have built over time that you use for multiple projects. You've thought about publishing them to NuGet so you can share them with other projects or your team but didn't because they contain secrets, intellectual property, or...

Room: Salon E/DTrack: DevOpsTags: .NET, OtherFormat: General SessionLevel: Intermediate

The Mark 3 Exoskeleton

Presented by: Scott Preston
Time: Friday 4:00 PM - 5:00 PM

I started building exoskeletons for CodeMash in 2016. The Mark1 and Mark2 were heavy and cumbersome but a lot has changed in the past 5 years thanks to 3D Printers and Hobby Grade CNC machines. In this talk, I'll begin where I left off in CodeMash 2017, talking about the Mark 2 and its subsystems....

Room: CypressTrack: HardwareTags: Hardware, JavascriptFormat: General SessionLevel: Intermediate

Jakarta EE 10 is Coming Your Way!

Presented by: Ivar Grimstad
Time: Friday 4:00 PM - 5:00 PM

Jakarta EE 9 lowered the barriers of entry and established a foundation for future innovation paving the way for Jakarta EE 10. With Jakarta EE 10, we are introducing a new profile - the Jakarta EE Core Profile. This profile will enable certification of smaller runtimes suitable for microservices...

Room: Portia/WisteriaTrack: ArchitectureTags: Cloud, Java, SecurityFormat: General SessionLevel: Intermediate