Tuesday
No Sessions
Wednesday
No Sessions
Thursday
Modern Cross-Platform Development with .NET 6
Presented by: Sam Basu
Time: Thursday 8:00 AM - 9:00 AMSlated 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: IntermediateLeadership is Not Management, Expectations Versus Reality.
Presented by: Stacie Bacon
Time: Thursday 8:00 AM - 9:00 AMMoving from the role of a software engineer to a technology leader is both a rewarding and challenging experience. In this session, I will share helpful tips, strategies, resources, and insights regarding the shift into leadership as I pull back the curtain on my journey going from expert doer to...
Room: Nile/OrangeTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewThe Art of Readable Code: Rethink Your Approach to Coding
Presented by: Steve Green
Time: Thursday 8:00 AM - 9:00 AMWe all have a lofty goal: programming style as documentation. Inspired by Steve McConnel’s “Code Complete,” Uncle Bob’s “Clean Code,” and Andrew Hunt’s “The Pragmatic Programmer,” this session will: • Review some best practices for writing code in a style that’s easy to...
Room: Salon A/HTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewDark UX Patterns
Presented by: Vitaliy Matiyash
Time: Thursday 8:00 AM - 9:00 AMCongratulations! You are the 1,000,000th visitor to our website. Click here to redeem your prize! Just provide your date of birth and phone number to get started. Learn about Dark UX Patterns, how they work, how they trick you and what companies are the worst offenders. Roach Motel, Privacy...
Room: Salon E/DTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewLife 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 AMImagine 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: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: IntermediateThe Science of Testing
Presented by: Thomas Haver
Time: Thursday 8:00 AM - 9:00 AMIn the past decade the software development paradigm has shifted to “deliver fast” -- with concomitant frameworks and methodologies to support that emphasis – but without proper consideration of quality. So most teams end up failing fast and hard when development continues beyond a shaky...
Room: CypressTrack: Software QualityFormat: General SessionLevel: Introductory and overviewWatch How The Giants Fall: Learning from Bug Bounty Results
Presented by: John Melton
Time: Thursday 8:00 AM - 9:00 AMSecurity 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: Indigo BayTrack: SecurityFormat: General SessionLevel: Introductory and overviewTesting 101 for Devs
Presented by: Jenna Charlton
Time: Thursday 9:15 AM - 10:15 AMIn Agile, quality has become a team responsibility. Increasingly developers and non-testers are being asked to test and "shift left" but are rarely given the tools to ensure their testing is up to snuff. This often results in wasted time and effort and costly bugs. In this session we’ll cover some...
Room: ZambeziTrack: Software QualityFormat: General SessionLevel: Introductory and overviewAsynchronous JavaScript: Livin' On A Prayer
Presented by: Bob Fornal
Time: Thursday 9:15 AM - 10:15 AMThere is a unique world where Single-Threaded JavaScript manages to be much more. JavaScript interacts with its environment in ways that allow it to handle Asynchronous activities. Using several detailed code examples, we will examine these examples in a unique way to show how these interactions...
Room: Salon A/HTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewRegex is for .*
Presented by: Jean Lange
Time: Thursday 9:15 AM - 10:15 AMRegular expressions are a powerful tool available to coders in many programming languages - but they’re so cryptic and hard to read/work with! Let’s explore what they can do for you and where you might want to use them. Then we’ll dive into regex101.com and the regex crossword for practical...
Room: Salon E/DTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewEffective Data Visualization
Presented by: David Giard
Time: Thursday 9:15 AM - 10:15 AMWe spend much of our time collecting and analyzing data. That data is only useful if it can be displayed in a meaningful, understandable way. Yale professor Edward Tufte presented many ideas on how to effectively present data to an audience or end user. In this session, I will explain some of...
Room: Aloeswood / LeopardwoodTrack: DataFormat: General SessionLevel: Introductory and overviewEnd the Stigma: Become a Mental Health Ally
Presented by: Matt Williams
Time: Thursday 9:15 AM - 10:15 AMIt is estimated that in the US, approximately one in five will experience mental illness each year. The incidence among IT professionals is likely higher -- a Japanese study of Software Engineers found that 32% of the participants suffered from depression or other mental illness. And yet......
Room: Sagewood / ZebrawoodTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewThe Four Principles of Accessibility
Presented by: Homer Gaines
Time: Thursday 9:15 AM - 10:15 AMWithin 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: CypressTrack: Web/Front-EndFormat: General SessionLevel: IntermediateBuilding Android for Everyone
Presented by: Sierra OBryan
Time: Thursday 9:15 AM - 10:15 AMAccessibility creates a better experience for everyone. Jetpack Compose simplifies development and can help us more easily build more accessible apps. In this talk, we’ll dive into some common use cases, Android Accessibility APIs, and compare these to the accessibility tools available in Jetpack...
Room: Indigo BayTrack: MobileFormat: General SessionLevel: Introductory and overviewBuilding Accessible Web Apps
Presented by: Cory House
Time: Thursday 10:30 AM - 11:30 AMAre your apps accessible? Can a blind user navigate your app with a screenreader? Can the colorblind consume your content? Since 2017, multiple US court cases have ruled that the Americans with Disabilities Act applies to websites and mobile apps. So there are legal risks to consider as well. In...
Room: ZambeziTrack: Software QualityFormat: General SessionLevel: Introductory and overviewAre You Ready for a Senior Role?
Presented by: Jenny Bramble
Time: Thursday 10:30 AM - 11:30 AMMoving from being a mid level engineer a senior role can feel like a huge leap--especially when your new responsibilities aren't well defined. What does it mean to embrace a senior role? It's not just about experience and years on the job; it's an entire mindset shift. Jenny Bramble, Director of...
Room: Nile/OrangeTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: IntermediateThe definitive deep dive into the .git folder
Presented by: Rob Richardson
Time: Thursday 10:30 AM - 11:30 AMWhat's in the .git folder? How are commits stored? How do branches work? We'll dive deep into the objects folder, unpack commits, look at the types of DAG nodes, examine object content, and build a complete visualization of the stored content. We'll also quickly look through Git hooks, Git config,...
Room: Salon A/HTrack: Programming PrinciplesFormat: General SessionLevel: AdvancedHacking Your Vacation: Using Data for Fun
Presented by: Becky Gandillon
Time: Thursday 10:30 AM - 11:30 AMData can be powerful, meaningful, AND fun. Making data-driven decisions can level up your family vacation from awful to awesome. In this session, attendees will walk through a specific example showing how to analyze various data sources to avoid crowds, save money, and piece together a Disney World...
Room: Salon E/DTrack: DataFormat: General SessionLevel: Introductory and overviewLet's Talk Bluetooth
Presented by: Leah Vogel
Time: Thursday 10:30 AM - 11:30 AMBluetooth has its own lingo. Don't know much about it? Want to learn to speak it? You’ve come to the right place! In this talk, you will hear a high-level overview of Bluetooth Low Energy and explain how it differs from Bluetooth Classic (BR / EDR). You will become familiar with the terminology...
Room: Aloeswood / LeopardwoodTrack: HardwareFormat: General SessionLevel: Introductory and overviewWhere has Jane Gone?
Presented by: Karen Linden
Time: Thursday 10:30 AM - 11:30 AMHave you ever been told if you were like that male developer over there you get somewhere? Have you removed you first name from your Resume to get more interviews? Have you been excluded from a meeting because afraid that they will offend you? Have you ever been called bossy? Have you ever...
Room: Sagewood / ZebrawoodTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewCommon Accessibility Pitfalls: Climbing out, when you fall in.
Presented by: Chris DeMars
Time: Thursday 10:30 AM - 11:30 AMYou, your users, and Alice from Wonderland have something in common. At one point, everyone has fallen into a hole of perplexity, confusion, and sometimes hysterical madness. Unlike Alice, we can navigate ourselves and our users around the chaotic abyss that we call the web. Shipping inaccessible...
Room: CypressTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewWhat a global pandemic can tell you about better DevOps practices
Presented by: Jeremy Meiss
Time: Thursday 10:30 AM - 11:30 AMIn early 2020 a global pandemic set in motion events which none of us could predict. With anonymous data collected from 900k+ devs, 50K orgs, and 60m+ 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: DevOpsFormat: General SessionLevel: Intermediate10 Ways to Write Clean JavaScript Code
Presented by: Avindra Fernando
Time: Thursday 11:45 AM - 12:45 PMWritten 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: IntermediateDungeons, Dragons, and Graph Databases
Presented by: Guy Royse
Time: Thursday 11:45 AM - 12:45 PMAre you an adventurer? Do you want gold? Experience? Levels? Of course you do! And where do you get these things? The dungeon, where else? That wonderful container of all things adventurous! But, unfortunately, dungeons aren't setup for the convenience of adventurers who wish to extract these fine...
Room: Nile/OrangeTrack: DataFormat: General SessionLevel: Introductory and overviewThe Elegance of “The Simplest Possible Thing”: Applying Simplicity Principles to Complex Problems
Presented by: Nate Berent-Spillson
Time: Thursday 11:45 AM - 12:45 PMSoftware 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 PrinciplesFormat: General SessionLevel: IntermediateExplain DevOps To Me Like I’m Five: DevOps for Managers
Presented by: Gene Gotimer
Time: Thursday 11:45 AM - 12:45 PMOrganizations and leaders are often supportive of DevOps, but they don’t always understand what DevOps is and what it will change. It isn’t a one-size-fits-all issue; different environments need different benefits from a DevOps transformation. Join Gene Gotimer as he explains the most important...
Room: Aloeswood / LeopardwoodTrack: DevOpsFormat: General SessionLevel: Introductory and overviewFinding Your Flow With Kanban
Presented by: Jeremy Jarrell
Time: Thursday 11:45 AM - 12:45 PMMore and more teams are discovering that they're more productive and more effective with Kanban. Many of these teams who choose Kanban do so out of a desire to work in an agile way, but without the overhead of sprints. But, if your team has adopted Kanban simply because there are no sprints, then...
Room: Sagewood / ZebrawoodTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewThe Human Side to Testing
Presented by: Amanda Perkins
Time: Thursday 11:45 AM - 12:45 PMWe’re known for breaking things and testing the limits, and patience, of our team and our systems. We advocate for quality in all things and we advocate for the end user. But, none of us actually think about how our varied backgrounds influence what we do and how we test. In this session...
Room: CypressTrack: Software QualityFormat: General SessionLevel: Introductory and overviewAutomating & Monitoring Seedling Growth in the Cloud Using IoT, Messaging & Micronaut
Presented by: Todd Sharp
Time: Thursday 11:45 AM - 12:45 PMIt all started with a small project to pass the time during The Great Quarantine of 2020. I bought some chiles from the local farmer’s market (with proper face coverings and social distancing, of course), fermented my first batch of hot sauce, and shared it with a few friends around the globe. I...
Room: Indigo BayTrack: HardwareFormat: General SessionLevel: Introductory and overviewProtecting your API with OAuth
Presented by: Dan Moore
Time: Thursday 1:00 PM - 2:00 PMOAuth is a well known standard and is useful for delegating authentication and authorization decisions to a central identity provider. As a developer, you’ve given a token when a grant completes. But what happens then? This talk will discuss client and server side code and logic needed when...
Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewSabotage Productivity the CIA Way
Presented by: Matt Williams
Time: Thursday 1:00 PM - 2:00 PMIn 1944, the Office of Strategic Services (OSS), predecessor of the CIA, published the Simple Sabotage Field Manual -- a guide for resistance forces to characterize simple sabotage, outline its possible effects, and to present suggestions for inciting and executing it. Ironically, many of the...
Room: Salon A/HTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewRock-Solid Components with TypeScript and GraphQL
Presented by: Mat Warger
Time: Thursday 1:00 PM - 2:00 PMMost 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: Salon E/DTrack: Web/Front-EndFormat: General SessionLevel: IntermediateImplementing an Event Sourcing strategy on Azure
Presented by: Eldert Grootenboer
Time: Thursday 1:00 PM - 2:00 PMIn 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 PrinciplesFormat: General SessionLevel: IntermediateEnterprise Observability with OpenTelemetry
Presented by: Christopher Judd
Time: Thursday 1:00 PM - 2:00 PMEnterprise applications are complex. A transaction starting in the browser will go through proxies, api gateways, security appliances, application performance monitoring tools, logs, microservices and more microservices. Historically there has been no standard way to get observability and...
Room: Sagewood / ZebrawoodTrack: DevOpsFormat: General SessionLevel: Introductory and overviewWho’s Afraid of the Big Bad Bluetooth?
Presented by: Leah Vogel
Time: Thursday 1:00 PM - 2:00 PMWith 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 history and terminology. Attendees will learn...
Room: CypressTrack: MobileFormat: General SessionLevel: IntermediateTime traveling in the cloud. Time series analytics with Microsoft Azure.
Presented by: Sam Vanhoutte
Time: Thursday 1:00 PM - 2:00 PMThe 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: DataFormat: General SessionLevel: IntermediateDesigning Reusable Components…That Are Actually Reusable
Presented by: Cory House
Time: Thursday 3:30 PM - 4:30 PMModern UIs are often composed of reusable components written in React, Vue, Angular, whatever. In these modern technologies, creating a component is easy. However, creating a truly reusable component is hard. In this session, we'll explore the tradeoffs inherent in reusable component design, and...
Room: ZambeziTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewFailing Successfully
Presented by: Cassandra Faris
Time: Thursday 3:30 PM - 4:30 PMFailure is normal. It’s so normal that many software development teams encourage people to fail and fail fast. Failure is also scary. It makes us feel vulnerable. We may even worry that our jobs, relationships, or goals are on the line. Yet we hear countless stories of people turning failure into...
Room: Nile/OrangeTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewUsing SVG to create responsive, interactive and animatable graphics
Presented by: Ben Hoffmann
Time: Thursday 3:30 PM - 4:30 PMA message is often best stated visually. Traditional methods of designing graphics, diagrams, and charts produce something that retains its aspect ratio, regardless of the size it is viewed. This may work fine for print and slide media, but fails to take advantage of viewing digital content on...
Room: Salon E/DTrack: Web/Front-EndFormat: General SessionLevel: AdvancedIntroduction to Functional Programming: It Isn’t So Scary
Presented by: Justin Pihony
Time: Thursday 3:30 PM - 4:30 PMFunctional programming has been around for decades, yet only recently has it become mainstream. It yields simpler, terser code which is easier to both test and debug, among other benefits. However it is still often seen as unapproachable, with zealots touting words like monad, functor, and other,...
Room: Aloeswood / LeopardwoodTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewKeeping your Kubernetes Cluster Secure
Presented by: Gene Gotimer
Time: Thursday 3:30 PM - 4:30 PMMany 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: DevOpsFormat: General SessionLevel: IntermediateAutomate Mobile Application Testing in the Cloud with Microsoft App Center
Presented by: Aaron LaBeau
Time: Thursday 3:30 PM - 4:30 PMEvery year new mobile devices are released for iOS and Android. With the list of supported devices growing, testing applications on physical devices is becoming more challenging and costly. In this session, Aaron will review mobile application testing strategies, frameworks, and solutions around...
Room: CypressTrack: MobileFormat: General SessionLevel: Introductory and overviewExploring the Reactive Landscape
Presented by: Mary Grygleski
Time: Thursday 3:30 PM - 4:30 PMAs Java is an object-oriented language that inherently supports the imperative programming style, asynchronicity presents a challenge that can turn the code into nightmare. One way to deal with the complexity of asynchronicity is to introduce reactivity onto the coding level (reactive programming),...
Room: Indigo BayTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewMonolith Decomposition and Evolutionary Architectures: How to Safely Modernize Legacy Systems
Presented by: Ben Hoffman
Time: Thursday 4:45 PM - 5:45 PMReplacing 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: ArchitectureFormat: General SessionLevel: IntermediateBetter Interviews, Better Work
Presented by: John Lange
Time: Thursday 4:45 PM - 5:45 PMBeing 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 WorkFormat: General SessionLevel: IntermediateA Perfect Ten: The Data Model
Presented by: Leslie Andrews
Time: Thursday 4:45 PM - 5:45 PMDo you know what makes a great data model? What does it mean to be Third Normal Form or a Star Schema? When would you use one over the other and why? How can you identify bad designs? Join Leslie Andrews for a discussion on good and bad data models, and learn what you should do in order to create a...
Room: Salon A/HTrack: DataFormat: General SessionLevel: Introductory and overviewPutting the FUN back in Fundamentals: Data Structures, Algorithms, and More!
Presented by: Matt Williams
Time: Thursday 4:45 PM - 5:45 PMIn 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 PrinciplesFormat: General SessionLevel: IntermediateMaking the most of your DevOps Artifacts
Presented by: Matthew Sheehan
Time: Thursday 4:45 PM - 5:45 PMWith greater emphasis placed on automating the creation of predictable software bundles, you may be asking what are DevOps artifacts and what can you do with them? Well, it turns out you can do many things with them. Artifacts can be the compiled output for your app deployment, or a Nuget or NPM...
Room: Aloeswood / LeopardwoodTrack: DevOpsFormat: General SessionLevel: Introductory and overviewGetting started with Kubenetes Policy Development
Presented by: Robert Sirchia
Time: Thursday 4:45 PM - 5:45 PMThis 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: IntermediateConnecting Systems that Never Planned for Each Other - An Introduction to Apache NiFi
Presented by: David Snyder
Time: Thursday 4:45 PM - 5:45 PMApache NiFi can be described as a Swiss army knife for data flow programming. Joe Witt, the creator of NiFi, describes it as a "broker between systems that never knew to plan for each other". This session will illuminate the main features of Apache NiFi, expand on the problems it is best suited...
Room: Indigo BayTrack: DataFormat: General SessionLevel: Introductory and overviewFriday
Tribal Knowledge in Agile Teams
Presented by: Jeffrey Miller
Time: Friday 8:30 AM - 9:30 AMLet's face it. We don't communicate well, and we document even less. Is it possible to wield information well in an Agile software team? Yes, it is! With consideration, change, and commitment to doing your work differently, it is possible to have relevant and vibrant knowledge resources in an...
Room: ZambeziTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewCrafting an interpreted programming language in 60 minutes
Presented by: Granville Schmidt
Time: Friday 8:30 AM - 9:30 AMAre you curious how programming languages are designed and implemented? Do you have nightmares about the “magic” that happens when you run/compile your code? Have you ever wanted to create your own programming language from scratch? If you answered yes to any of these questions, then this...
Room: Nile/OrangeTrack: Programming PrinciplesFormat: General SessionLevel: AdvancedVisualizing Code
Presented by: Matt Eland
Time: Friday 8:30 AM - 9:30 AMWhat happens if we combine the fields of software architecture and data visualization? In this talk, we'll explore what git can tell us about software projects and the teams supporting them by looking at a variety of ways to visualize codebases. Over the course of the talk we'll examine an...
Room: Salon A/HTrack: DataFormat: General SessionLevel: IntermediateUnderstanding Probabilistic Data Structures with 112,092 UFO Sightings
Presented by: Guy Royse
Time: Friday 8:30 AM - 9:30 AMThere are three reactions to the title of this talk: - What the heck’s a probabilistic data structure? - UFO Sightings… wha? - 112,092 is an oddly specific number. This is a talk about the first bullet point with the second thrown in just for fun. I like weird stuff—UFOs, Bigfoot, peanut...
Room: Salon E/DTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewMission Impossible Prep: Testing with Cypress
Presented by: Bekah Hawrot Weigel
Time: Friday 8:30 AM - 9:30 AMYour mission, should you choose to accept it, is to ship reliable code. The mission is no different than the others as developers; it's complex, smart, and maybe even seemingly impossible. With no time to waste, you start writing your tests. And with that, you know your mission will succeed. With...
Room: Sagewood / ZebrawoodTrack: Software QualityFormat: General SessionLevel: Introductory and overviewWeb A11y Patterns and Pitfalls
Presented by: Robert Cochran
Time: Friday 8:30 AM - 9:30 AMThe internet is no longer an optional aspect of modern life. It is how many of us conduct business and maintain relationships. A tool as critical as the internet needs to be usable by everyone. It is our responsibility to create a good user experience for ALL users. This session aims to instill...
Room: CypressTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewRediSearch: Completing the Beyond SQL Story with Search
Presented by: Brian Sam-Bodden
Time: Friday 8:30 AM - 9:30 AMDo you automatically reach for a relational database for your application’s data needs? There is an unspoken impedance mismatch between expected rates of maturity between an application’s model and its data model. NoSQL/NewSQL and now “beyond SQL” solutions are often met with incredulity...
Room: Indigo BayTrack: DataFormat: General SessionLevel: Introductory and overviewBuilding rugged DevOps pipelines with GitHub Actions
Presented by: Brian Gorman
Time: Friday 9:45 AM - 10:45 AMThis 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: ZambeziTrack: DevOpsFormat: General SessionLevel: IntermediateEffective React State: 7 Years of Lessons Learned
Presented by: Cory House
Time: Friday 9:45 AM - 10:45 AMManaging 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: Nile/OrangeTrack: Web/Front-EndFormat: General SessionLevel: IntermediateConsistent cloud environments with Infrastructure as Code
Presented by: Matthew Sheehan
Time: Friday 9:45 AM - 10:45 AMYour SaaS app is doing great, but your cloud environment is growing more and more complex. After years of provisioning additional resources to keep it growing, nobody on the team remembers all of the dependencies anymore, and deployments are hitting snags because the development, testing, and...
Room: Salon A/HTrack: DevOpsFormat: General SessionLevel: Introductory and overviewThe Case for GraphQL
Presented by: Kyle Schrade
Time: Friday 9:45 AM - 10:45 AMWe will be diving into why someone would want to use GraphQL and what are the benefits of using it. Starting from what is GraphQL and ending with how it can make your stack much more flexible and improve your day-to-day developer experience. We will look at many examples from our work at StockX that...
Room: Salon E/DTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewYarn Berry: a next generation package manager
Presented by: Michael Richardson
Time: Friday 9:45 AM - 10:45 AMThe recently released Yarn Berry (aka Yarn 2) brings a host of great new features for JavaScript developers. The slick new CLI, more readable output, clear errors, and significant enhancements to workspaces make Yarn Berry a solid upgrade from the already impressive Yarn 1. But with an incredible...
Room: Sagewood / ZebrawoodTrack: Web/Front-EndFormat: General SessionLevel: Introductory and overviewTen Things Every Voice Application Should Do
Presented by: Jeff Blankenburg
Time: Friday 9:45 AM - 10:45 AMIn my experience building dozens of skills for Alexa, and working with hundreds of developers on their own voice applications, I've identified ten specific patterns that are common to the most successful of the bunch. This presentation will cover these ten topics, giving you the insight an...
Room: CypressTrack: UI/DesignFormat: General SessionLevel: Introductory and overviewPerformance tuning for Azure Cosmos DB
Presented by: Hasan Savran
Time: Friday 9:45 AM - 10:45 AMAzure 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: DataFormat: General SessionLevel: IntermediateLet’s Build a VR Game! Oculus Quest 2 + Unity + C#
Presented by: Lance Larsen
Time: Friday 11:00 AM - 12:00 PMThe Oculus Quest 2 has sold over 8 MILLION devices so far and is projected to sell 18-20 MILLION next year! For the first time VR has broken through the early adopter crowd and is increasingly becoming a mainstream consumer gaming and production device! What does that mean for you? Well you now...
Room: ZambeziTrack: HardwareFormat: General SessionLevel: Introductory and overviewSupercharge Your ASP.NET Core Applications
Presented by: Kevin Griffin
Time: Friday 11:00 AM - 12:00 PMFor many developers, the transition from ASP.NET 4.0+ to ASP.NET Core was a minor change. Depending on your application's complexity, you could make a couple syntax changes and be fully upgraded within a couple of days. Transitioning from one version to another is just the beginning. ASP.NET Core...
Room: Nile/OrangeTrack: Web/Front-EndFormat: General SessionLevel: IntermediateFinding Bigfoot with Redis + RediSearch
Presented by: Guy Royse
Time: Friday 11:00 AM - 12:00 PMBigfoot has been a staple of American folklore since the 19th century. Many are convinced that Bigfoot is real. Others suggest he’s merely a cultural phenomenon. And some just want to believe. There is even a group, the Bigfoot Field Researchers Organization, that tracks Bigfoot sightings and...
Room: Salon A/HTrack: DataFormat: General SessionLevel: Introductory and overviewChatOps and DevOps: How to Use Comms as Incident Response
Presented by: Pj Hagerty
Time: Friday 11:00 AM - 12:00 PMThe 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: IntermediateExtending Spring Data and Spring Data Redis
Presented by: Brian Sam-Bodden
Time: Friday 11:00 AM - 12:00 PMIn 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: DataFormat: General SessionLevel: IntermediateCSS Houdini - Just what CSS needed, more JavaScript
Presented by: John Lange
Time: Friday 12:15 PM - 1:15 PMComing 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-EndFormat: General SessionLevel: IntermediateStand Back; I'm going to try Data Science!
Presented by: Matt Eland
Time: Friday 12:15 PM - 1:15 PMCurious about data science and its relation to software engineering? Want to know how to dabble in artificial intelligence or machine learning side projects before taking the plunge? Come check out this session. In this session we'll explore the types of machine learning tasks as I share my own...
Room: Nile/OrangeTrack: DataFormat: General SessionLevel: Introductory and overviewDesign Patterns for Loosely Coupled Applications in .NET
Presented by: Barry Stahl
Time: Friday 12:15 PM - 1:15 PMBuilding 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 PrinciplesFormat: General SessionLevel: IntermediateStop your instincts from ruining your career: the science behind emotional intelligence
Presented by: Natalie Hylton
Time: Friday 12:15 PM - 1:15 PMAccording to the Center for Creative Leadership, 75% of careers are derailed for reasons related to emotional competencies, including inability to handle interpersonal problems, unsatisfactory team leadership in times of difficulty or conflict, or inability to adapt to change or elicit trust. This...
Room: Sagewood / ZebrawoodTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewThe Super Spectacular Interactive Event Driven Light Show
Presented by: Barry Tarlton
Time: Friday 12:15 PM - 1:15 PMThe 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: ArchitectureFormat: General SessionLevel: IntermediateHow to build an Android application with JetPack Compose and Kotlin
Presented by: Aaron LaBeau
Time: Friday 12:15 PM - 1:15 PMThe world of mobile development is constantly changing and evolving. Google's new JetPack Compose framework for Kotlin allows developers to write mobile applications quickly by using design principles from functional programming while keeping the learning curve down. In this session, Aaron LaBeau...
Room: Indigo BayTrack: MobileFormat: General SessionLevel: Introductory and overviewEasy Domain Driven Design
Presented by: Ryan Foote
Time: Friday 2:45 PM - 3:45 PMSoftware development is hard. Even with the best intentions, and the most deliberate design processes, we often end up mired in the “big ball of mud” scenario. Where modifications are tedious, enhancements are fraught with unknown side-effects, and troubleshooting is downright nasty. By...
Room: ZambeziTrack: ArchitectureFormat: General SessionLevel: Introductory and overviewYou’re Not Just Tired: The Psychology of Burnout
Presented by: Arthur Doler
Time: Friday 2:45 PM - 3:45 PMAfter the events of the last year, burnout has been on everyone’s minds. Are you feeling nostalgia for the days when your job wasn’t such a hassle? Do you find yourself struggling to care about your job… or anything at all? You may be wrestling with burnout.. But what exactly IS burnout? If...
Room: Nile/OrangeTrack: Teams/Leadership/The Future of WorkFormat: General SessionLevel: Introductory and overviewConfessions of a TDD Late Adopter
Presented by: Jeffrey Miller
Time: Friday 2:45 PM - 3:45 PMAfter two decades of rehashing Test Driven Development techniques, what’s left to say? A lot! Hear from a seasoned software developer and consultant about the journey to TDD adoption despite objections, skepticism, insecurity, and procrastination along the way. Old dogs can learn new...
Room: Salon A/HTrack: Programming PrinciplesFormat: General SessionLevel: Introductory and overviewScaling Systems: Architectures that grow
Presented by: Kendall Miller
Time: Friday 2:45 PM - 3:45 PMIt'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: ArchitectureFormat: General SessionLevel: IntermediateSurfing in Maui
Presented by: Sam Basu
Time: Friday 2:45 PM - 3:45 PMYou are invested in .NET and Xamarin technology stacks. But there are some pain points in the present reality. Perhaps you crave for cohesiveness, maturity and want to have more confidence in the Xamarin and Xamarin.Forms ecosystem? Let’s take a look at the future with .NET MAUI – the evolution...
Room: Sagewood / ZebrawoodTrack: MobileFormat: General SessionLevel: Introductory and overviewMoving Massive Mountains of Magnificent Data
Presented by: Barret Blake
Time: Friday 2:45 PM - 3:45 PMData over here. Data over there. These days there are massive piles of data everywhere. Companies use many different systems. Those systems need to interact and share data to be useful. But how to get that data from place to place? Most of the time, what's built in to these various systems doesn't...
Room: CypressTrack: DataFormat: General SessionLevel: Introductory and overviewJakarta EE 10 is Coming Your Way!
Presented by: Ivar Grimstad
Time: Friday 2:45 PM - 3:45 PMJakarta 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: Indigo BayTrack: ArchitectureFormat: General SessionLevel: Intermediate