Async/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: 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: IntermediateBuilding a Web Component Library
Presented by: Burton Smith
Web components have been around for a long time (since HTML 5 became a thing), but there hasn’t been a lot of attention given to them until recently. Now, tech organizations worldwide are adopting them and finding tremendous efficiency in creating framework-agnostic reusable components to build...
Format: PreCompilerLevel: Introductory and overviewClean 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: IntermediateDeliver what the client wants instead of what they ask for! Getting them to tell you what they need.
Presented by: Angel Thomas
As software developers, our goal is to typically write software that meets the needs of our clients, whether they be internal or external clients. Often times, when we miss the mark, it is due to a communication breakdown between the developer team and the client team on what the actual requirements...
Format: General SessionLevel: Introductory and overviewDesigning Effective Unit Tests for React
Presented by: Bob Fornal
React has great tools for Unit Testing component. This doesn’t mean testing is easy. There are still a lot of questions you have to figure out for yourself: How many component tests should you write vs end-to-end tests or lower-level unit tests? How can you test a certain line of code that is...
Format: PreCompilerLevel: Introductory and overviewHow I use VS Code to implement local CICD
Presented by: John Petersen
It's simplicity, transparency, & clarity make VS Code an effective code editor. One of VS Code's greatest features is the seamless way the terminal/CLI experience meshes with an intellisense-enabled code editor. In this session, I'll demonstrate how I use VS Code as a CI/CD-based development...
Format: General SessionLevel: Introductory and overviewImposters! 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: 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: IntermediateOut of Control: How to Rescue a Struggling Software Project
Presented by: Cory House
We were drowning in bugs. We had countless partially implemented features. We had no tests, few types, no CI, no error handling, and we couldn't demo our work reliably. Developers kept copying anti-patterns in our code. Our software was out of control. ...
Format: General SessionLevel: Introductory and overviewPrime (re)Factoring
Presented by: Steve Smith
You've probably heard of refactoring, but did you know the term originates from the process of factoring programming code? In mathematics, factoring is used to pull out factors of numbers through division, and importantly prime numbers have factors of only themselves and the identity constant, 1. ...
Format: General SessionLevel: Introductory and overviewProjectional 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: Intermediateself.clone();//Passing On Your Passion
Presented by: Barry Tarlton
When you've written your last line of code, what will be your legacy? Will your applications live on forever in Production or at least until AI takes over? Will your Github repos be archived and immortalized? Will there be patterns or tools named after you? For most of us, there probably won't...
Format: General SessionLevel: Introductory and overviewSoftware 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: IntermediateTechnical Debt Is Not Free
Presented by: Chad Green
So many software development teams rack up technical debt and do not even realize it. But even if you are a more mature team and recognize and maybe even document technical debt, what good is it if you do not take action. Just like in other parts of our life, just because we can accumulate bunches...
Format: General SessionLevel: Introductory and overviewTesting Enterprise Software Rewrites
Presented by: Umang Nahata
Most enterprises have legacy code that needs to be rewritten to keep pace with industry standards, new technologies, and modern infrastructures. The primary purpose of a software rewrite is to ensure functional compatibility before retiring the current system. However, replacing large, complex,...
Format: General SessionLevel: Introductory and overviewTesting Mayhem on the Basic Side
Presented by: Jeanette Kalb
Did you ever wonder how a QA managed to find something you didn’t on that last feature card? Hint, it’s not magic, but there is a lot of mayhem. Your quality professionals need your help to help them test better. This talk will provide insight as to what your QA person goes through when deciding...
Format: General SessionLevel: Introductory and overviewThe 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: IntermediateWriting Secure APIs - A Look at the OWASP 2023 API Top 10 List
Presented by: Darylynn Ross
OWASP published a new API top 10 list in July of 2023. There are some old favorites hanging around (I'm looking at you Authentication) and some new comers like Server Side Request Forgery and Unrestricted Access to Sensitive Business Flows. This session will cover the new top 10 list and take a...
Format: General SessionLevel: Introductory and overviewYou Are the Pilot: Getting Better with Code Gen AI Tools
Presented by: Sean Wedig
You might have asked yourself - "Self, what's all this hubub about AI tools for programmers? Am I going to lose my job?" and you might have answered, "I don't know, self. I haven't even really played with any AI code generation tools. There are so many tools, I wouldn't even know where to...
Format: General SessionLevel: Introductory and overviewYou’re Doing Exceptions Wrong
Presented by: Matt Burke
Exceptions are powerful and valuable, but we frequently misuse them and destabilize our applications. We fear users seeing an error message, so we swallow the exception, creating troubleshooting nightmares down the road. We fail to check inputs and throw them at all, letting garbage into our...
Format: General SessionLevel: Introductory and overview