Refactor your code to use new C# language features
C# continues to release new features to enable developers to reduce their codebase size, work more efficiently with nulls, enhance readability, and so much more. In this session, you’ll learn to refactor existing C# code to the latest and greatest syntaxes. Come along on a journey across the burgeoning .NET landscape and explore modern language features through refactoring existing code.

What sorcery is this? How Software uses Dark Patterns to Manipulate Users (great for keynotes)
You’ve signed up for that streaming service, but now you can’t unsubscribe. You put a single item in your basket, and somehow there are now also two warranties in there. Boxes of vitamin supplements are piling up every month like a subscription, but you are absolutely sure you only bought one bottle! In your living room is a big pile of stuff that you bought online, that you didn’t intend to. And you feel bad about it because now you’re way over budget! If you’ve had something like this happen then you may have experienced a dark pattern – something software does to trick you into taking an action you wouldn’t have otherwise taken. In this talk, you’ll learn how to spot and avoid dark patterns when using or creating software. You’ll also get pointers about talking to management about the impacts of dark patterns. And of course, a look at a few physical-world examples of dark patterns too.

Use principles of psychology to build better software (great for keynotes)
We make software for humans. So we must understand how humans work to design the best software possible. We don’t need to be psychologists or anthropologists, but we do need to know a few things about what makes users do what they do when it comes to software. So come to this session, where you’ll learn how to apply critical thinking to developing software solutions and designing digital products. You’ll learn about what makes users behave in certain ways and how you can design software with those behaviors and biases in mind. With this knowledge you can provide the best possible experience while you meet your goals. Bonus: It’s not just the users’ behaviors and biases we need be concerned with. You’ll learn how those same behaviors and biases can affect the productivity and functioning of your team – from communications to meetings to code. And how to properly mitigate them.

The architecture that you’ve never head of: software product lines
One of the least-known engineering practices in the software development industry outside of embedded systems is software product line engineering. That’s because many companies create multiple, disparate products that result in overly-complex management, more bugs, and more difficult maintenance, when instead they could have created a platform (product line) for their software products. Creating a product line results in an architecture where code is more reusable than with any other architecture. It’s the ultimate way to reuse code.

A lot of software can benefit from being in a software product line. The benefits result in faster time to market, lower maintenance, fewer bugs, and makes inherit complexity more manageable. In this talk, you’ll learn how to architect and build a product platform by examining the JetBrains Platform SDK as well as some other industry notable product lines.

The inmates are running the asylum
Did you ever want to know what it’s like to work for a circus? This talk is full of true tales of absolutely batshit crazy things that go on behind the scenes in software projects, including at some of the world’s notable companies.

Whether it’s ruining all integrity of a database, or apps that can’t even handle the load of 5 users concurrently though it promised thousands, every day these kind of spectacular trainwrecks happen. The language doesn’t matter, nor does the vendor or technology. Project failures happen in C# and C++, SQL and MongoDb, JavaScript and Java, and everywhere in between.

This session is a humorous look at some best of the worst examples of what not to do when building software. witnessed by the speaker’s 30+ years of experience building software.

Build a Blazor App
Blazor is the newest, hottest web development technology from Microsoft. Since it’s in the ASP.NET family, the good news is that you can leverage your existing skills to quickly apply to Blazor development. Blazor also attempts to create an environment in which you can write more C# and less JavaScript, which appeals to .NET developers. In this session, you’ll walk through building a Blazor app from start to finish. We’ll cover all the necessities: Blazor components, communications, calling APIs, new syntaxes, and all the other good stuff that Blazor has.

Build better software by building accessible software.
Accessible design and programming benefits everyone, not just those with accessible needs. Adding accessibility features into your software opens your software by a 20% increase in market reach (and growing), while making the experience better for everyone. Yet all too often, popular websites and apps fail to design for accessibility.

In this session, you’ll learn how to prepare content, design, and program for accessibility with an accessibility-first mindset. We’ll look at techniques for building software that provides a first class experience for people with visual, auditory, motor, cognitive and other accessibility needs. It doesn’t matter if it’s business apps, games, websites or personal apps, if you want better software, attend this session and learn how to make it accessible

Around the world in a session: Globalizing and localizing software
We live in a global economy, as the internet allows you to reach customers everywhere. Creating localized websites for global audiences targeting different cultures and (human) languages will allow your software to reach a wider audience. In this session, you’ll learn the key facets of building global-reaching software such as how to deal with calendars, dates, times, and time zones as well as number and symbol representation (decimals, currency, dates).

TypeScript for C# Developers
TypeScript is a strongly-typed, object-oriented superset of JavaScript that transpiles to JavaScript. This enables C# developers to build applications with JavaScript that feels more comfortable. Since TypeScript is typed and object-oriented, it also provides a bit of continuity between backend and frontend languages, so full-stack development feels more seamless. C# developers can benefit from the similar programming workflows between TypeScript and C#, across the entire stack. So come and learn about the TypeScript language and how it can help you write and maintain JavaScript code in a very familiar way: through the object-oriented paradigm.

Lightning Talks (5-15 minutes)

How to file a bug report.

WTF is a Developer Advocate?

Do you really need a degree to work as a [programmer | developer | engineer]?