June 17th, 2023

Iowa Code Camp - Spring 2023 - Sessions

We are taking submissions for talks. Send us yours today!

  • 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.

    10 Things I Do In Every Single .NET Application (Level: 100)
    Speaker: Scott Sauber

  • Actually Using Your Trained Model

    I am sure you have seen countless presentations about training a machine learning model but have you ever seen one that explains what to do next? You know, actually getting to use the model on something other than your personal computer? This is the talk that takes that final step. I will discuss using TensorFlow.js to deploy your model to your web site like any other JS file. I will then get a little more fancy and show how you can take advantage of the scale of the Google Cloud and deploy it to the AI Platform.

    Actually Using Your Trained Model (Level: 200)
    Speaker: Evan Hennis

  • 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.

    AI data privacy: Securing your own data on open platforms (like openAI) (Level: 100)
    Speaker: Lwin Maung

  • 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?

    An Introduction to Microbits and Finch Robotics (Level: 100)
    Speaker: Jeremiah Evans

  • 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.

    Become a machine learning practitioner overnight (Level: 100)
    Speaker: Toran Billups

  • 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

    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.

    Build Large Language Models from 0 to 60 (Level: 100)
    Speaker: Min Maung

  • Building a DSL with ANTLR

    Learn how to create a Domain Specific Language and interface it to your application's API.

    Building a DSL with ANTLR (Level: 300)
    Speaker: Greg Sohl

  • 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.

    C# 11, All The New Stuff (Level: 200)
    Speaker: Ken Versaw

  • 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.

    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.

    Cross Platform Development with Blazor (Level: 200)
    Speaker: Tim Purdum

  • Cultivating a Software Engineering That Doesn't Suck

    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.

    Cultivating a Software Engineering That Doesn't Suck (Level: 100)
    Speaker: Scott Sauber

  • Deployment Automation with Entity Framework

    Entity Framework (EF) is an amazing tool for development teams, and its MIgrations functionality creates a great high-level change control system. However, there is not much in the form of production-level guidance in existence with regards to how true production environments should be managed with EF + MIgrations and the long-term source control concepts. This session will explore Entity Framework MIgrations and the various models that can be used in conjunction with the CI/CD tools of your choice. (Azure DevOps, Octopus, GitHub Actions, etc). By taking a methodical review of how Entity Framework migrations are managed and how they can be leveraged attendees will have the information necessary to implement solid solutions for their teams. Including in this discussion will be the concept of Migration Rests & long-term change management, which is critical for true enterprise solutions.

    Deployment Automation with Entity Framework (Level: 200)
    Speaker: Mitchel Sellers

  • 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.

    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.

    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.

    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.

    IaC Forged in Code - Arm/Bicep vs Terraform vs Pulumi (Level: 100)
    Speaker: Mike Benkovich

  • Image Recognition with TensorFlow Lite and a Raspberry Pi

    Have you seen cool image recognition projects and you want to learn how they were created? Are you a hobbyist that wants a cool project using a Raspberry Pi? Are you new and want a place to start? If you are any of these, this talk will be perfect. In this talk, I will walk through using a trained neural network deployed to a Raspberry Pi to detect objects in a picture.

    Image Recognition with TensorFlow Lite and a Raspberry Pi (Level: 100)
    Speaker: Evan Hennis

  • 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!

    Interactive Map Applications with Blazor and ArcGIS (Level: 200)
    Speaker: Tim Purdum

  • 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.

    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.

    One Codebase for Mobile, Desktop and Web Using .NET MAUI Blazor (Level: 300)
    Speaker: Mitchel Sellers

  • 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.

    Quantum Computing 101 (Level: 100)
    Speaker: Lwin Maung

  • 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.

    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.

    SPAs without JavaScript? Turbo! (Level: 200)
    Speaker: Keith Dahlby

  • 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.

    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.

    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.

    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!

    Unlocking the Human Side of Data with Azure OpenAI and Azure SQL (Level: 200)
    Speaker: Rajaniesh Kaushikk

  • You 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.

    You apps are under attack (Level: 200)
    Speaker: Cory Gideon

  • You got serverless in my Kubernetes!

    Modern DevOps seems to push for serverless or Kubernetes, pick one. But why is this the case? Why not run serverless applications on Kubernetes? In this session we will cover application development using the Kubeless open source framework to develop serverless applications that can run on Kubernetes. Come and learn how to get the best of both worlds! Kubernetes has a reputation of having a lot of overhead in setting up your new cluster and getting things up and running. Now, in modern cloud computing we have serverless applications; Azure Functions, AWS Lambda, etc. but what would happen if we applied that same concept to Kubernetes? With the various solutions we have available to us for serverless Kubernetes, we can help remove the overhead of Kubernetes configuration and let developers focus on doing what they do best, building cool stuff and solving problems!

    You got serverless in my Kubernetes! (Level: 300)
    Speaker: Cory Gideon

Session Levels

Level 100 Description:
Introductory and overview material. Assumes little or no expertise with topic and covers topic concepts, functions, features, and benefits.

Level 200 Description:
Intermediate material. Assumes 100-level knowledge and provides specific details about the topic.

Level 300 Description:
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.

Level 400 Description:
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.