Retro AI: Exploring modern AI concepts through the Commodore 64 and BASIC. (Keynote ๐๏ธ)
Have you ever wondered where AI’s foundational algorithms came from? If so, then let’s reflect on some computing technology from the past, and look at how early algorithms have influenced the AI technology of today. Stepping back to the era of the C64 (AI’s historical midpoint), we can better understand modern AI. With faster processing and exponentially more data storage available now, AI technologies have been able to build upon these foundational algorithms to achieve the generative AI applications we see today. However, the underlying concepts have remained rather consistent over the decades.
This talk takes a look at AI concepts such as natural language processing, expert systems, pattern recognition, problem solving, and systems that can learn. But we’ll do so through algorithms in BASIC on the Commodore 64 by examining samples from Timothy O’Malley’s book from 1985: “AI Projects for the Commodore 64”.
What sorcery is this? How Software uses Dark Patterns to Manipulate Users (Keynote ๐๏ธ)
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 (Keynote ๐๏ธ)
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.
Experience new ways to code C# with AI tools and techniques
Want to be the coding superstar on your team? Or maybe you’re just tired of fixing bugs and technical debt and want better ways to code? What if AI could help? Artificial intelligence promises to change software development in massive ways. In this session, you’ll learn concrete tactics for incorporating state-of-the-art AI into your existing workflows. We will cover generating code, tests, and documentation using AI tools, as well as crafting effective prompts to produce quality code you can trust. Discover techniques for validating AI-generated content, finding bugs, code reviews, and augmenting coding with AI to drive business value. You’ll leave with tactics to augment traditional coding workflows with AIโmaking you that cutting edge team member you’ve always wanted to be.
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.
“Machine language” has a whole new meaning now
Do you want to use AI as part of your daily software development? Then come andย discover why prompt engineering is a fundamental skill for modern software development. We’ll break down the mechanics of how AI and LLMs function, including the role of linguistics and communications.
You’ll walk away knowing how to really interact with AI, as you’ll learn useful prompting strategies for both AI chats and AI tools. Digging deeper into how best to formulate effective prompts, we’ll explore techniques like Chain of Thought, Zero, Single, and the Few-shot approach. But no matter how great the prompt, you can never trust an AI 100%. So you’ll get guidance you on how to validate a prompt successfully. Additionally, you’ll learn how to craft your own prompting framework and reusable prompt library for use with any programming language or AI tool.
Refactor your code to use modern C# language features
C# continues to release new features that enable developers to reduce their codebase size, work more efficiently with nulls, make the code more readable, and write higher quality code. In this session, we’ll look at how to refactor existing C# code to the modern language features and syntax. Explore the .NET landscape and its modern language features by refactoring existing code.
Building commercial development tools
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.
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 (10-20 minutes)
How to file a bug report that actually gets the bug fixed.
WTF is a Developer Advocate?
Do you really need a degree to work as a (programmer || developer || engineer)?