-
10 Things I Do In Every Single .NET Application
No two applications are the exact same code wise (until ChatGPT starts writing our apps for us), but there are certain things that I believe are needed in every single .NET application. We'll talk about what those things are including practices to promote maintainability, improve reliability, enhance your observability, harden your security, and more. We'll discuss these practices as a series of lightning talks so you can get the gist of why I do them and how to do them. By the end of this talk, you'll have numerous tips you'll be able to take with you and start implementing right away.
12:45 PM - 2:00 PM : Room 113 : 10 Things I Do In Every Single .NET Application (Level: 100)
Speaker: Scott Sauber
-
A Skeptics Guide to React
This isn't a sales pitch for React. This is instead a talk about how and why we all have to deal with this "not framework/library" to make all our applications. This will go through the SPA vs. MPA wars, why the industry uses React, The fundamentals how and why React is what it is, State vs. Props, Class components vs. Functional components, Lifecycle methods vs. State Hooks, and (very briefly) React Native. If you just want to know how "to make the button do the thing" at work, this probably is for you.
10:30 AM - 11:45 AM : Room 106 : A Skeptics Guide to React (Level: 100)
Speaker: Alan Wong
-
AI data privacy: Securing your own data on open platforms (like openAI)
This is a combined talk with Min Maung
This presentation will delve into the intersection of AI, data privacy, and data ownership, focusing on its implications for the enterprise. It is an era where business competitiveness is tightly interwoven with AI advancements, yet, data privacy and ownership concerns present critical challenges.
We will discuss how businesses can protect privacy while harnessing AI's potential, exploring regulatory frameworks like GDPR and CCPA that guide this delicate equilibrium. We'll investigate ownership issues concerning private data models, a growing concern as AI becomes a cornerstone for enterprise innovation.
Join us as we delve into the depths of data privacy in the enterprise AI landscape, highlighting the significance of striking a delicate balance between technological advancement and ethical responsibility. The journey promises insights into overcoming data privacy challenges and fostering a culture of privacy-centered innovation in the business world.
3:45 PM - 5:00 PM : Room 112 : AI data privacy: Securing your own data on open platforms (like openAI) (Level: 100)
Speaker: Lwin Maung
-
An Agile Approach to Documentation and Onboarding Your Team
So, how's the documentation coming along on your project? How long does it take to on-board someone on your team whether technical or non-technical? Is your documentation getting lost in User Stories that get completed?
I have been working to discover effective approaches to documentation and creating on-boarding content for new team members. I look forward to sharing some tools, techniques, and examples that you can apply to your next project. The value of creating effective documentation is just as important as the product itself.
12:45 PM - 2:00 PM : Room 108 : An Agile Approach to Documentation and Onboarding Your Team (Level: 100)
Speaker: John Baluka
-
An Introduction to Microbits and Finch Robotics
Microbits and Fnch Robots are a simple platform to allow students to get involved with STEM education from a you age, and find out if this is the field for them. However, these tools also provide a challenge and resource for more experienced coders - how do we leverage technology to improve education?
3:45 PM - 5:00 PM : Room 108 : An Introduction to Microbits and Finch Robotics (Level: 100)
Speaker: Jeremiah Evans
-
Artificial Intelligence for Project Managers 101: Understanding the Fundamentals and Applications fo
As a project manager, staying current with the latest technology is essential for success. This talk will introduce you to the world of artificial intelligence and its applications for project managers, specifically focusing on cutting-edge technology such as ChatGPT, DALL E, etc. We will cover the basics of what language models are, how they work, and the various types of models available.
The session will also explore the potential use cases for artificial intelligence tools that you can use today. This will enable you to have a better understanding of the potential impact artificial intelligence can have on your project and how it can be used to enhance the performance and efficiency of your team.
In addition, we will discuss some of the limitations and ethical concerns surrounding the use of artificial intelligence.
12:45 PM - 2:00 PM : Room 107 : Artificial Intelligence for Project Managers 101: Understanding the Fundamentals and Applications fo (Level: 100)
Speaker: Jean Seely
-
Become a machine learning practitioner overnight
About 6 months ago I stared exploring a new field of study and found myself ineffective and out of my comfort zone. I quickly learned that machine learning is a diverse field with loads of new vocabulary and concepts.
In this talk I plan to share the journey from zero to implementation of my first project. I'll cover both the resources I found useful and my overall strategy for learning this new discipline. If you are curious about data science, machine learning or deep learning but don't know how to get started this talk is for you.
3:45 PM - 5:00 PM : Room 107 : Become a machine learning practitioner overnight (Level: 100)
Speaker: Toran Billups
-
Break
Break and refreshments
2:00 PM - 2:15 PM : Atrium : Break (Level: 100)
Speaker: Iowa Code Camp
-
Break
Break and refreshments
3:30 PM - 3:45 PM : Atrium : Break (Level: 100)
Speaker: Iowa Code Camp
-
Build Blockchain dApps with .NET
Blockchain has gone from relative obscurity outside of technical circles just a few years ago to seeming applicability in every industry today. Learn what a dApp (decentralized App) is and how to deploy dApps to the blockchain. Also in this session, find out the latest blockchain development tools using a C# Visual Studio Extension as well as a decentralized Unity SDK. See how blazing fast it is to develop blockchain solutions. It has never been simpler.
This session demonstrates the fastest way to build dApps. Code will be shown on how to build and deploy to blockchain! The session will cover getting started building and deploying decentralized applications (dApps).
In this session you will learn how to...
Understand the real potential of blockchain
Set up your blockchain development environment
Use C# to deploy Web and Maui dApps to the blockchain
Use Unity to create a blockchain gaming solution
2:15 PM - 3:30 PM : Room 106 : Build Blockchain dApps with .NET (Level: 100)
Speaker: Russell Fustino
-
Build Large Language Models from 0 to 60
Everyone is talking about AI, and using tools from OpenAI such as ChatGPT. Want to know what it takes to build your own Large Language Models(LLMs)?
We will explore the tools ranging from hardware requirements to software requirements. We'll discuss the key elements of language model design, including tokenization strategies, neural network architectures, and training techniques. Attention will be drawn to the significance of quality training data, exploring techniques for data collection, cleaning, and augmentation.
This presentation, suitable for ML enthusiasts, data scientists, and curious individuals, promises a comprehensive understanding of constructing large language models, marking the pathway from zero knowledge to a functional model.
12:45 PM - 2:00 PM : Room 115 : Build Large Language Models from 0 to 60 (Level: 100)
Speaker: Min Maung
-
Building to Learn: Why I built a home automation app and so should you!
Software is a fast paced, rapidly evolving industry, and yet most of our career is spent hyper focused on a small domain in a static technology stack. That means personal and professional growth falls squarely on our own shoulders. This talk will focus in on how building websites, applications, libraries, etc with new and diverse tool sets generates the greatest personal growth. Let me share some of the techniques I learned, and how employing a Product Mindset can help you focus on what matters. Join me on a journey to build something from nothing along with all the pitfalls and possibilities.
2:15 PM - 3:30 PM : Room 109 : Building to Learn: Why I built a home automation app and so should you! (Level: 200)
Speaker: Jonathon Graf
-
C# 11, All The New Stuff
New versions of C# drop every year. With those new versions come new language features that may supersede older ways of doing everyday things. This talk will be code and sample heavy. We will look at some cool new language features in C# 11 and compare them to the way similar things were done in earlier versions of the language.
12:45 PM - 2:00 PM : Room 109 : C# 11, All The New Stuff (Level: 200)
Speaker: Ken Versaw
-
Closing Session
Wrap it up and go out with a bang.
5:00 PM - 5:30 PM : Room 106 : Closing Session (Level: 100)
Speaker: Iowa Code Camp
-
Creating a Healthy, High Performing Engineering Organization
Everyone wants a top notch software engineering organization, but how do you make that happen? How do you level up a team or even the entire department? In my time as a software consultant, I've worked with over a dozen companies ranging from Fortune 100 companies down to startups, and everything in between. The same themes keep coming up over and over again. I've boiled my experience down to a series of over 20 questions that you need to answer in order to get the results you're looking for. Don't worry, I won't just leave you with the questions, I'll also tell you why those questions matter, and how I would answer every single one of them.
2:15 PM - 3:30 PM : Room 108 : Creating a Healthy, High Performing Engineering Organization (Level: 100)
Speaker: Scott Sauber
-
Creating Chatbots with OpenAI Embeddings
Learn how to leverage OpenAI's API to build accurate chatbots on any topic using embeddings. No prior AI experience required. In this presentation we will dig into what embeddings are and how they can be applied to solve numerous problems.
2:15 PM - 3:30 PM : Room 107 : Creating Chatbots with OpenAI Embeddings (Level: 200)
Speaker: Mike Clancy
-
Cross Platform Development with Blazor
.NET Blazor finally fulfills the promise of write once, run everywhere. This session will show how to set up an application to run on a web server, on the web client, on mobile devices, and desktop, all from a single UI and code base.
2:15 PM - 3:30 PM : Room 113 : Cross Platform Development with Blazor (Level: 200)
Speaker: Tim Purdum
-
Exploration of Mocks in Functional Scala as an Anti-Pattern
Mocks are heavily used in some languages and in certain situations are useful. However they may not be appropriate for a Functional Scala Application. We'll discuss how they negatively affect the code design and some of alternatives which result in code which is easier to test and verify.
2:15 PM - 3:30 PM : Room 112 : Exploration of Mocks in Functional Scala as an Anti-Pattern (Level: 200)
Speaker: Shawn Garner
-
From Core to Containers to Orchestration
Azure started as a Platform as a Service with Cloud Services, but since it launched has evolved to include several newer and very useful options for compute. Depending on your hosting model and how you do DevOps, requirements for scalability and availability you have tradeoffs that affect your long term costs and decision. In this session we look at how containerization has altered the landscape and to go from a monolith mindset to microservices requires more than wishful thinking or a management edict. As the cloud advances we need to understand the tradeoffs between compute options and make smart decisions on what makes the most sense to ensure you can get where you're going.
3:45 PM - 5:00 PM : Room 106 : From Core to Containers to Orchestration (Level: 200)
Speaker: Mike Benkovich
-
Git More Done, 2023 Edition
Now updated for Git v2, all the local Git productivity tips I can fit in an hour.
Rarely does a month go by that I don't stumble on some feature or option in Git that could have been brought to my attention yesterday. Building on your day-to-day understanding of Git, this session will share a plethora of real-world productivity tips, from useful config settings and aliases to power tools like interactive rebase with autosquash, patchwise add, reflog and bisect.
10:30 AM - 11:45 AM : Room 115 : Git More Done, 2023 Edition (Level: 200)
Speaker: Keith Dahlby
-
IaC Forged in Code - Arm/Bicep vs Terraform vs Pulumi
Infrastructure as Code comes in many flavors, and the Azure Cloud's default deployment templates work with Azure Resource Manager (ARM) to define and deploy infrastructure. Working with the JSON format of ARM can be challenging, but Microsoft has introduced a language processor called Bicep which generates ARM as output. At the same time there are other options, including scripting tools, Terraform, Pulumi, Ansible and others. In this session we'll compare creating infrastructure using ARM, Terraform and Bicep, and compare pros and cons to each.
12:45 PM - 2:00 PM : Room 106 : IaC Forged in Code - Arm/Bicep vs Terraform vs Pulumi (Level: 100)
Speaker: Mike Benkovich
-
Interactive Map Applications with Blazor and ArcGIS
Mapping and Geospatial Information are powerful tools to analyze and explore customer data. Learn to inject interactive maps with the powerful ArcGIS Platform directly into your Blazor web and MAUI hybrid applications, no JavaScript required!
10:30 AM - 11:45 AM : Room 113 : Interactive Map Applications with Blazor and ArcGIS (Level: 200)
Speaker: Tim Purdum
-
It is easy to automate nothing.
Using Continuous Deployment and Infrastructure as Code at the very beginning of your project will save your team a surprising amount of time and stress and help you focus on building your app. Learn about the benefits of these patterns and how to get started no matter what stage your project is in.
10:30 AM - 11:45 AM : Room 108 : It is easy to automate nothing. (Level: 100)
Speaker: Owen Johnson
-
Lunch
Lunch
11:45 AM - 12:45 PM : Atrium : Lunch (Level: 100)
Speaker: Iowa Code Camp
-
Moral AI Overlords - Why Philosophy Matters to Programmers
Morals and Ethics are an integral part of the human experience, dictating how we interact with each other, and how we treat one another. With the rise of automation and AI, we must ensure that we have a solid foundation in Morals & Ethics to ensure that the code we write, the research we do, and the products we create are focused on Human Flourishing and the benefit of all people.
10:30 AM - 11:45 AM : Room 107 : Moral AI Overlords - Why Philosophy Matters to Programmers (Level: 100)
Speaker: Jeremiah Evans
-
One Codebase for Mobile, Desktop and Web Using .NET MAUI Blazor
With the introduction of .NET MAUI Blazor a lot was promised with regard to code-reusability and the ability for developers to build for android, iOS, Windows, Mac, and the Web. However, there is still limited information about HOW to accomplish this goal, and limited architecture guidance to do this effectively.
This session will explore architecture patterns, including a sample project, that demonstrates utilizing .NET MAUI Blazor, as well as a Blazor WASM application to use a single codebase to build an application that can service clients on Android, iOS, Windows, Mac, and the web.
A focus on project structures, best practices, limitations, and how this can be used on your OWN project will be a focus. All session materials are based on real-world implementations that are in production now.
3:45 PM - 5:00 PM : Room 113 : One Codebase for Mobile, Desktop and Web Using .NET MAUI Blazor (Level: 300)
Speaker: Mitchel Sellers
-
Open Space / Fishbowl Discussion
An open discussion based on topics provided by you!
3:45 PM - 5:00 PM : Room 109 : Open Space / Fishbowl Discussion (Level: 300)
Speaker: Iowa Code Camp
-
Opening Session
Welcome and announcements
10:10 AM - 10:25 AM : Room 106 : Opening Session (Level: 100)
Speaker: Iowa Code Camp
-
Quantum Computing 101
Quantum Computing is a new generation of computing and technology that will change the world in the near future. Using the power of electrons to compute at scales only one can imagine today to change the world is close to our fingertips. How do they work? What's superposition, entanglement and a qubit? Why does physics matter? String theory -- Yes 11 dimensions of space and time does play into this.
Lwin will start by exploring the basic principles of quantum physics that underpin Quantum Computing, including superposition and entanglement. We will then delve into how quantum bits, or qubits, fundamentally differ from classical bits.
Transitioning from the theoretical to the practical, Lwin will discuss the current state of Quantum Computing, exploring real-world applications and their potential to revolutionize sectors from cryptography to drug discovery.
Ideal for tech enthusiasts, budding scientists, or simply curious minds, this talk promises to be a captivating journey into the heart of Quantum Computing.
10:30 AM - 11:45 AM : Room 109 : Quantum Computing 101 (Level: 100)
Speaker: Lwin Maung
-
Serverless & Kubernetes, demo and discussion
We'll go through doing serverless kubernetes and have open discussion on it.
3:45 PM - 5:00 PM : Room 115 : Serverless & Kubernetes, demo and discussion (Level: 200)
Speaker: Scott Seely
-
Set Me Up: How to Think in Sets
SQL Server is optimized to work in sets, but this is certainly a paradigm shift for someone accustomed to row-by-row operations.
We will look at T-SQL features that can break set-based processing -- generally meaning poor performance -- and gather empirical evidence to support that assertion. We'll also look at some constructs to overcome these issues and make your T-SQL scripts run faster and use fewer resources.
3:45 PM - 5:00 PM : Room 114 : Set Me Up: How to Think in Sets (Level: 100)
Speaker: Breanna Hansen
-
SPAs without JavaScript? Turbo!
Despite all the hype around frameworks like React and Vue, the reality is that the vast majority of development still uses server-side rendering with languages other than JavaScript. This session will progressively enhance a plain HTML application to act like a SPA using Turbo, the default front-end framework for Ruby on Rails. We'll specifically avoid integrating with Rails to focus on how Turbo works and how any web application can be made more responsive while still using server-rendered HTML.
2:15 PM - 3:30 PM : Room 115 : SPAs without JavaScript? Turbo! (Level: 200)
Speaker: Keith Dahlby
-
Sponsor Area
Visit with our sponsors to learn about their services and opportunities.
8:00 AM - 9:00 AM : Atrium : Sponsor Area (Level: 100)
Speaker: Iowa Code Camp
-
SQL Server Execution Plan Primer
Have you ever looked at a SQL Server execution plan and wondered what it all means? Or do you wonder how SQL Server resolves your query? The execution plan provides front-line insight into some fundamental decisions that SQL Server makes when a query gets submitted for processing, and comprehending the plan can help you understand why performance may be less than desirable. We will examine the inputs that SQL Server uses to generate the query plan, and we will consider common operators that appear in plans and signs to watch out for to spot potential performance pitfalls. This session will help you understand what SQL Server is telling you about your query -- and understand why things sometimes go wrong.
12:45 PM - 2:00 PM : Room 114 : SQL Server Execution Plan Primer (Level: 100)
Speaker: Breanna Hansen
-
Type Driven Development with Scala
Similar philosophy to Test Driven Development, we instead start with the abstractions and types which make up our algebra and then fill in the implementation/interpreter of that algebra.
10:30 AM - 11:45 AM : Room 112 : Type Driven Development with Scala (Level: 100)
Speaker: Shawn Garner
-
Unleashing the Power of Azure OpenAI and Service Embedding for unstructured document search
Are you struggling to find the information you need buried deep within unstructured documents? It's time to unleash the power of Azure OpenAI and Service Embedding! In this session, we'll show you how to harness the latest advancements in AI and cloud-based services to transform your unstructured document search. With Azure OpenAI's advanced natural language processing and Service Embedding's powerful integration capabilities, you'll be able to extract meaningful insights from your documents and make informed decisions with ease. Whether you're in healthcare, legal, or any other industry that requires in-depth document analysis, this session will give you the tools you need to unlock the full potential of your data. So, join us on this exciting journey into the world of unstructured document search and see for yourself how Azure OpenAI and Service Embedding can revolutionize the way you work with information.
10:30 AM - 11:45 AM : Room 114 : Unleashing the Power of Azure OpenAI and Service Embedding for unstructured document search (Level: 200)
Speaker: Rajaniesh Kaushikk
-
Unlocking the Human Side of Data with Azure OpenAI and Azure SQL
Are you tired of poring over endless spreadsheets and databases in search of the information you need? Imagine being able to simply ask a chatbot a question and get instant results from your database. It sounds like science fiction, but with Azure OpenAI and Azure SQL, it's a reality! In this session, we'll show you how to unlock the power of conversational AI to make data more accessible and user-friendly. With Azure OpenAI's natural language processing and Azure SQL's powerful data management capabilities, you'll be able to create a chatbot that can understand your questions and deliver the data you need in real-time. From streamlining customer service to optimizing business processes, the possibilities are endless. So, if you're ready to harness the human side of data and revolutionize the way you work with information, this session is not to be missed!
2:15 PM - 3:30 PM : Room 114 : Unlocking the Human Side of Data with Azure OpenAI and Azure SQL (Level: 200)
Speaker: Rajaniesh Kaushikk
-
Your apps are under attack
Application security is becoming more and more important as our world becomes increasingly connected. But, is security being pushed aside in favor of new feature development and keeping ahead of competition? The unfortunate answer is yes, in favor of feature development and then security as an afterthought.
In this session we will go over why your application security needs to be a key part of your development focus, a few of the risks and vulnerabilities that are out there, and how you can track common vulnerabilities and make a judgement for yourself on how you will mitigate them. We will also cover some architectural patterns you can follow to reduce your attack vector.
12:45 PM - 2:00 PM : Room 112 : Your apps are under attack (Level: 200)
Speaker: Cory Gideon
Introductory and overview material. Assumes little or no expertise with topic and covers topic concepts, functions, features, and benefits.
Intermediate material. Assumes 100-level knowledge and provides specific details about the topic.
Advanced material. Assumes 200-level knowledge, in-depth understanding of features in a real-world environment, and strong coding skills. Provides a detailed technical overview of a subset of product/technology features, covering architecture, performance, migration, deployment, and development.
Expert material. Assumes a deep level of technical knowledge and experience and a detailed, thorough understanding of topic. Provides expert-to-expert interaction and coverage of specialized topics.