A Contrarian View of Software Architecture
Presented by: Jeremy Miller
I’ve spent an inordinate amount of time the past half decade across multiple companies working with very large, long running enterprise systems. Especially in long running, constantly changing systems, you want the code to be easy to understand, relatively painless to extend or modify, and when...
Format: General SessionLevel: IntermediateAgile Pitfalls and How to Parry Them: A Practical Guide
Presented by: Arin Heinselman
Hey there, fellow conference-goers! 🎉 Imagine this: you've embarked on the Agile journey, armed with good intentions and high spirits, only to find yourself tangled in a web of chaos and confusion. Fear not, because our talk is here to save the day! 🦸♂️ ...
Format: General SessionLevel: IntermediateAI-Enabled Privacy: Leveraging Artificial Intelligence to Protect Personal Data in Models
Presented by: Jean Seely
In this session, we'll explore how AI can identify and safeguard personal data in the modeling process. As advocates for privacy, you're navigating the complex intersection of technology and regulation, and this talk aims to make that journey easier. We'll dive into the legal frameworks that govern...
Format: General SessionLevel: IntermediateAlexa on the Go: Building Location Aware Voice Experiences for Alexa
Presented by: Craig Walls
When you think of voice assistants like Amazon Alexa, you probably are thinking of a device on a shelf or a desk somewhere, tethered to a power outlet. But what if you could take Alexa with you wherever you go? ...
Format: General SessionLevel: IntermediateAll your secrets are belong to us
Presented by: Callum Whyte
Admit it: we've all checked in an API key or password to a repo at some point... Oops... No one wants their secrets to accidentally leak, so this session is your essential refresher on secret management (and mismanagement!) for your applications and beyond! ...
Format: General SessionLevel: IntermediateApplication Architecture Patterns
Presented by: Joseph Guadagno
Architecting an application can be challenging. What do you do to keep your application flexible to ever-constant requirement changes? How do you handle landscape changes (cloud, on-premises, databases)? How do you avoid over-engineering the application? How do I make sure my application plays well...
Format: General SessionLevel: IntermediateAsync/Await from the Ground Up
Presented by: Stephen Cleary
An async refresher course for developers who use async and await but want to really understand what's going on. ...
Format: General SessionLevel: IntermediateBad Tendencies in Leaders and How to Manage Up
Presented by: Benjamin Dobrowolski
No matter where you’ve worked, we’ve all had those bosses that we’ve not gotten along with. ...
Format: General SessionLevel: IntermediateBeyond Request/Response: Why and how we should change the way we build web applications
Presented by: Chris Nelson
As web developers, we’ve been building web applications the same way for 25 years. We send a request, and we receive a response. We might get a whole page back, or we might get some data to render, but the common thread for almost every web application that has ever been built is the...
Format: General SessionLevel: IntermediateBinary Analysis - Learn to break stuff
Presented by: Jason Slagle, John Hammond
In this Pre-Compiler, we'll take a dive into the world of reverse engineering. ...
Format: PreCompilerLevel: IntermediateBlack Box Techniques for Unit Tests
Presented by: Jenny Bramble
One of the greatest strengths of modern development is the ease of unit testing for many languages and frameworks. Obviously, you’re testing your code–but are you thoroughly testing it? Are you testing the right things? Is there more you could be testing? ...
Format: General SessionLevel: IntermediateBuild your own AI sidekick with Azure AI, Semantic Kernel, and .NET 8
Presented by: Matt Eland, Samuel Gomez
Are you a budding super hero or super villain* but you feel like you're lacking that AI companion to help you reach that next level? Have you ever wanted to see what AI can do to help your daily life? Do you have an interesting application that would just be so much better with a little artificial...
Format: PreCompilerLevel: IntermediateBuilding a Full-Stack Application with Flutter and Dart
Presented by: Ryan Edge
For the past few years, Flutter has revolutionized mobile app development by allowing developers to build high-performance, cross-platform applications with ease. However, building a full-stack application can be a challenging task because we often find ourselves juggling multiple technologies to...
Format: General SessionLevel: IntermediateBuilding Applications on Top of Large Language Models (LLMs) (Part 1)
Presented by: Nilanjan Raychaudhuri, BJ Allmon
It’s no secret that a new generation of powerful and highly-scaled language models is taking the world by storm. Large language models are becoming a powerful new primitive for building software. ...
Format: PreCompilerLevel: IntermediateBuilding Applications on Top of Large Language Models (LLMs) (Part 2)
Presented by: Nilanjan Raychaudhuri, BJ Allmon
It’s no secret that a new generation of powerful and highly-scaled language models is taking the world by storm. Large language models are becoming a powerful new primitive for building software. ...
Format: PreCompilerLevel: IntermediateBuilding Better Teams Through Play
Presented by: Jenny Bramble
Teams work incredibly hard to drive software and processes forward. Sometimes we neglect the emotional side of our hard work, leaving teams brittle and less able to adapt and bend. How do we release tension and form the strong bonds that a good team needs to be successful as well as honing some of...
Format: General SessionLevel: IntermediateBuilding Event Driven User Interfaces
Presented by: Sam Ferree
In the realm of modern software development, creating dynamic and responsive user interfaces is essential to delivering engaging user experiences. Event-driven architectures have emerged as a powerful paradigm to achieve this goal. In this enlightening talk, we will delve into the world of...
Format: General SessionLevel: IntermediateClean Architecture with ASP.NET Core 8
Presented by: Steve Smith
Clean Architecture is a very popular approach for DDD and Microservices, and for good reason. It's not a new approach, and went by other names in the past (e.g. Onion, Hexagonal, Ports-and-Adapters). One of the main benefits of the approach is its focus on business logic and its reduction in...
Format: General SessionLevel: IntermediateConvert batch data into streaming with Python
Presented by: Bobur Umurzokov
The advent of real-time data processing has redefined how businesses operate, but the journey to real-time has its challenges. Many organizations find themselves juggling separate workflows and teams for batch and streaming data processing, each presenting unique difficulties. Batch processing,...
Format: General SessionLevel: IntermediateCQRS with Event Sourcing using the “Critter Stack”
Presented by: Jeremy Miller
Do you have a system where you think would be a good fit for a CQRS architecture that also uses Event Sourcing for at least part of its persistence strategy? Are you intimidated by the potential complexity of that kind of approach? ...
Format: General SessionLevel: IntermediateDebugging JavaScript and React
Presented by: Mark Erikson
## Description / Abstract ...
Format: General SessionLevel: IntermediateDev Containers. What are they and why do you need them?
Presented by: Joseph Guadagno
You're onboarding a new team member, or your team recently inherited a project that uses a different SDK/framework version than your current project uses. What do you do? Install the old SDK/framework versions? Can they even be installed at the same time on the same machine? What if I told you...
Format: General SessionLevel: IntermediateDon’t Build a Distributed Monolith: How to Avoid Doing Microservices Completely Wrong
Presented by: Jonathan "J." Tower
As a consultant, I get to see many systems built by many different developers. Recently, I’ve seen an uptick in the number of systems built with a microservice architecture in mind, but those systems often include a lot of the same mistakes that keep them from working well. ...
Format: General SessionLevel: IntermediateDude, Who Broke My Linux Server?
Presented by: Ryan Price, Justin DeBo
Linux-based operating systems are at the very core of the magic of computing technology -- and have been that core for decades. But software developers, data engineers, cloud engineers, and so many other disciplines often have no idea how to work effectively within those operating systems. What...
Format: PreCompilerLevel: IntermediateEffective Observability for MLOps Pipelines at Scale
Presented by: Shivay Lamba
As the world embraces AI and adopts machine learning, many companies and moving towards using models like the LLMs. Deployment and monitoring such large models are extremely important. As traditional DevOps Engineers, you might not be exposed to working with machine learning systems. This is where...
Format: General SessionLevel: IntermediateExpect the Unexpected: Handling Exceptions in Enterprise Applications
Presented by: Kito Mann
One of the most common reasons for software defects is poor exception handling. The more complex the application, the more difficult it can be to track down the root cause of a bug. An exception at the service or database layer may manifest itself as unpredictable behavior at the user interface...
Format: General SessionLevel: IntermediateFinding your Motivation and Managing When you aren’t Motivated
Presented by: Jennie Ocken
We are all motivated by different things. But most companies and managers only know how to encourage employees through money or title. By better understanding what motivates each of us, we can be better teammates, managers, and people. In this session we will learn: ...
Format: General SessionLevel: IntermediateFresh Hot CSS Features!
Presented by: Alex Riviere
Do you use a CSS Framework like bootstrap? Or maybe you've been coasting for a few years on your current knowledge of CSS. You've maybe seen something called CSS Grid and wondered what it was... Maybe you have never seen `var()` used before. ...
Format: General SessionLevel: IntermediateFrom Theory to Practice: Building Reliable Event-Driven Services
Presented by: Hugh McKee
This talk will delve into the key concepts and strategies for creating effective and efficient event-driven services. We will cover the following topics: ...
Format: General SessionLevel: Intermediategit gone wild: how to recover from common git mistakes.
Presented by: Magnus Stahre
"Oh no! I just typed something into git and now my work is gone! Ahh!" ...
Format: General SessionLevel: IntermediateGPT Embeddings - Not Magic, Just Math
Presented by: Barry Stahl
Embeddings may be the least understood yet most valuable tool to come out of the world of Large Language Models. In this presentation, we will unravel the mystery of embeddings, emphasizing their mathematical foundations and practical applications. ...
Format: General SessionLevel: IntermediateHands on with OpenTelemetry
Presented by: Nočnica Mellifera
OpenTelemetry is the 'wave of the future' for observability, but is it ready for your team? Yes! In a few hours we'll instrument a demo application and see what OpenTelmetry can do. We'll also cover basic data filtering and compression, and how to see our first visualizations ...
Format: PreCompilerLevel: IntermediateHarnessing the Power of Asynchronous Messaging and Eventing for Distributed Systems at Scale
Presented by: Eric Boyd
Distributed applications, microservices solutions and systems at scale depend on In today's era of distributed applications, microservices, and systems at scale, the key to achieving agility, resilience, and scalability lies in mastering the art of asynchronous messaging and eventing. ...
Format: General SessionLevel: IntermediateHow to answer "When will it be done?" using probabilistic forecasting.
Presented by: Chris Shinkle
"When will it be done?" How often have you been asked that question? That question strikes fear or frustration in most people. It often results in throwing up your hands in frustration or tossing out a wild guess. Surely there's a better way? ...
Format: General SessionLevel: IntermediateHow to Ground LLM's to minimize hallucinations
Presented by: Cameron Vetter
Language models have made significant advancements in recent years, with models like GPT-3 and GPT-4 showcasing impressive capabilities. However, one persistent challenge that arises with these models is the occurrence of hallucinations—instances where the model generates plausible-sounding but...
Format: General SessionLevel: IntermediateHybrid Agility: Working Conditions for Team Success
Presented by: Carina Silfverduk
Is your team or workplace working hybrid, with some in the office and some remote on any given day? Working hybrid is by far harder than either remote or on-site work because you need to accommodate both and then do something extra to keep everyone in the room and everyone on the call engaged. ...
Format: General SessionLevel: IntermediateImposters! faking endpoints over-the-wire
Presented by: Bob Crowley
Faking remote services can be very useful. Maybe you need to build against a service that isn't created yet, mock micro service dependencies, test against an API that only has a production instance or validate a large number of data scenarios that would be difficult to achieve with a "real"...
Format: General SessionLevel: IntermediateIsn't it time to ditch code coverage? Focus on high value tests instead
Presented by: Stephen Odell
As engineers, it can be difficult to use metrics to measure the value of what we do. One metric that typically falls short is code coverage because it can’t measure how WELL our application has been tested, rather, it focuses how MUCH has been tested. What if we ditched this traditional metric and...
Format: General SessionLevel: IntermediateMad Scientist Lab With Raspberry Pi Pico Microcontrollers
Presented by: Barry Tarlton, Brendan Barth
Carefully plugging the wires into the bread board, doubt seeps in, “should the red wire go to ground or the white one?” LEDs all in place, Python code properly indented (spaces, not tabs), prayers go up for the magic smoke to not escape as the electronics are powered on. In an instant, worries...
Format: PreCompilerLevel: IntermediateMastering Solutions Architecture with Design Katas (Part 1)
Presented by: Gaines Kergosien, Eric Potter
TLDR: Architects get relatively few opportunities to practice their craft, so we will group up to formulate architectural visions for "real world" business problems. Attendees will then evaluate each group's solution to gain insight into the pros and cons of different approaches. ...
Format: PreCompilerLevel: IntermediateMastering Solutions Architecture with Design Katas (Part 2)
Presented by: Gaines Kergosien, Eric Potter
TLDR: Architects get relatively few opportunities to practice their craft, so we will group up to formulate architectural visions for "real world" business problems. Attendees will then evaluate each group's solution to gain insight into the pros and cons of different approaches. ...
Format: PreCompilerLevel: IntermediateMastering TDD in Legacy Code
Presented by: Brendan Enrick, Steve Smith
In this hands-on workshop, you’ll learn to effectively use the principles and practices of increasing the reliability and maintainability of your code through testing and pair programming. You’ll sharpen your skills working with your peers on programming exercises designed to instill good...
Format: PreCompilerLevel: IntermediateModern Authentication and Authorization with OIDC, OAuth2, and Resource-based Permissions
Presented by: Eric Boyd
Open web standards for authentication, authorization and delegation are especially important in our connected, integrated, and mobile world. There are expectations for single sign-on, integration with external partners, multi-tenancy, identity across application tiers, and authentication with...
Format: General SessionLevel: IntermediateModern Web Automation Testing
Presented by: Bob Crowley
Modern web applications require a modern tool for automated testing. Something that can handle both mobile and desktop, async operations, shadow DOM, all the browsers and much more. ...
Format: General SessionLevel: IntermediateMSBuild Unleashed: Breaking Free From Complex CI Pipelines
Presented by: Dan Siegel
In today's rapidly evolving software landscape, Continuous Integration (CI) and Continuous Deployment (CD) are the linchpins of a streamlined and efficient development process. However, with myriad build platforms, technologies, and tooling, we often find ourselves entangled in complex build...
Format: General SessionLevel: IntermediateNeurodiverse Coders: Unlocking ADHD & Autism Superpowers in Tech
Presented by: Gaines Kergosien
In the tech world, diversity isn't just about backgrounds; it's also about how we think and process information. ADHD and Autism Spectrum Disorder (ASD) are often pigeonholed as challenges. However, what if we told you that these so-called 'disorders' house superpowers that can be game-changers in...
Format: General SessionLevel: IntermediateOne app, multiple platforms: How Cross Platform Actually Works
Presented by: Mike Hartington
Today's solutions for cross platform development all aim to provide developers a better way to build their apps. Build your app in a certain way, and you can ship it to multiple targets (iOS, Android, Web, etc.) with ease. But not all solutions are created equal, and it can be difficult to...
Format: General SessionLevel: IntermediatePlatform as a Product: the future of Agile and DevOps
Presented by: Brad Nelson
Cross-functional teams and full-stack developers have become the expectation in today's highest-performing teams. However, as technology needs become more complex and solutions begin to scale, it becomes increasingly difficult for software engineers to balance expertise across all layers of the...
Format: General SessionLevel: IntermediateProjectional Code Editors: Past, Present, and Future
Presented by: Jonathan Arnett
Have you ever felt that your humble text editor could be—should be—so much more? After all, the software we're writing is much more than text! Programming languages mandate rigid structures for textual code, for instance that (in some languages) the conditional for an "if" must be in...
Format: General SessionLevel: IntermediateRebuild your APIs Better, Strong, Faster with Minimal APIs
Presented by: Jonathan "J." Tower
If you currently have a controller-based API built in ASP.NET or ASP.NET Core, you might be eager to embark on the journey of transitioning it to a Minimal API approach, but not know the best process to make it happen. If so, this talk is tailor-made for you. ...
Format: General SessionLevel: IntermediateServices Reloaded: Increased Throughput with Project Loom Virtual Threads
Presented by: Kito Mann
The promise of Reactive programming models is that you can free yourself from the constraints of handling one request for each thread and realize increased throughput as a result. The only problem is that it requires a completely different set of APIs that many developers find counter-intuitive....
Format: General SessionLevel: IntermediateSoftware Test Automation and System Design
Presented by: Kate Jordan
In this session I'll share with you one of the most valuable lessons that I've learned as a software engineer. From what I've seen it's not something that colleges or courses have nearly enough emphasis on for the impact that it has. Both on your skills, and the health of the systems you work in. ...
Format: General SessionLevel: IntermediateState of Mobile Development
Presented by: Sam Basu
It’s 2024. Thankfully, developers have a lot of choice in how to build for mobile form factors. Mobile strategy can often be an afterthought – in reality, it needs to be driven by type of app, audience, platform reach, developer expertise & need for code reuse. ...
Format: General SessionLevel: IntermediateStop using JavaScript for that: moving features from JS to CSS and HTML
Presented by: Kilian Valkhof
If you've been building websites for a while you "know" that some things require JS and that's just the way it is. Turns out, spec writers and browser makers both are working hard to find common JS patterns and implementing them in CSS and HTML. Things like accordions, auto-suggest, smooth...
Format: General SessionLevel: IntermediateTake Back Control - Introducing Veilid
Presented by: Bill Sempf
Veilid is an open-source, peer-to-peer, mobile-first, networked application framework. It allows developers to build private, distributed, scalable social applications containing and sharing a user's personal content without data collection by third parties being of concern. Built by Cult of the...
Format: General SessionLevel: IntermediateThe Five Code Reviewers You Meet At Work
Presented by: Aaron Salvo
When you review code at work do you simply trust your peers have written bug-free code? Does a co-worker infuriate you when they block your pull request over indention? Are you a freshman engineer who worries they'll get an atomic wedgie by the coffee maker if you point out a syntax error in a...
Format: General SessionLevel: IntermediateThe Micro-Frontend Playbook
Presented by: Marko Skugor
Micro-frontend architecture can provide a lot of great benefits to team autonomy and can play a crucial role in enabling technical and organizational scalability. At the same time, it also comes with a lot of potential pitfalls and anti-patterns to avoid. In this talk we'll learn how to apply Domain...
Format: General SessionLevel: IntermediateThe Right Database for the Right Job
Presented by: Nuri Halperin
Picking a database for your particular purpose is hard, and vendors don't make it easier. So which database is right for which workload? ...
Format: General SessionLevel: IntermediateThe Subtle Art of Communication
Presented by: Natalie Hylton, Tristan Chiappisi
We probably don't need this session. Technologists are excellent communicators, aren’t they? But for those who would like to learn (and practice) a new thing or two, here is a session packed with experiential learning. Amongst the things that we will cover: ...
Format: PreCompilerLevel: IntermediateThe Vue.js Power Hour: Building a Dynamic Frontend in < 60 Minutes
Presented by: Tori Brenneison
Are you a beginner developer who is curious about JS component frameworks? A backend developer who wants to add a frontend skill to their toolbox? A data analyst looking for a quick way to build views? Have we got a deal for you! ...
Format: General SessionLevel: IntermediateThinking Architecturally
Presented by: Nathaniel Schutta
Rich Hickey once said programmers know the benefits of everything and the trade offs of nothing...an approach that can lead a project down a path of frustrated developers and unhappy customers. As architects though, we must consider the trade offs of every new library, language, pattern or approach...
Format: PreCompilerLevel: IntermediateUnderstanding CSS Layout: the concepts underlying your (least) favorite language.
Presented by: Kilian Valkhof
Have you ever felt perplexed by CSS, struggling to understand why the browser put the element where it did, and why it didn’t just follow the clear instructions you wrote? Do you think CSS is hard to work with? ...
Format: General SessionLevel: IntermediateWatch this! Building a Health app for Wear OS
Presented by: Sierra OBryan
One of the most popular answers for a favorite smart watch feature is to monitor your health. From steps to heart rate to exercise to sleep, smart watches do it all and with Jetpack Compose and Health Services, we can build our own app for Wear OS! ...
Format: General SessionLevel: IntermediateWhat's that smell? Monitoring air quality with Python, Raspberry Pi, and Redis
Presented by: Justin Castilla
With a little wiring and a few lines of code, one can create your own hyper-local air sensor system to send alerts, activate smart-windows, and gather data. A sensor measures air particulate density and sends the values to a Raspberry Pi compute unit. The Raspberry Pi then sends the data along with...
Format: General SessionLevel: Intermediate