Sessions

  • As a friend of mine always says, "Technology is easy; people are hard." As important as it is to grow your technical skills, it is vitally important to also nurture your personal skills. In this session we will dive into the "soft" skills that are often harder than the complex technology we work with every day, using scientific studies and actual case stories where knowing the technology wasn't enough, backed by 15 years of experience in consulting, working with dozens of clients and technologies, and hundreds of individuals from developers to C-Suite executives.

    Time Location
    10:00 AM - 11:00 AM
  • In 2024, there are multiple ways that your next big money-making idea can get off the ground. However, choosing the right tools upfront means being able to add features sooner and make your customers even happier. In this interactive session, we'll explore what it takes to build a modern fullstack serverless application on AWS that uses generative AI. We'll then iterate on the the approach by introducing new features and services based on real-world scenarios from actual AWS customers.

    Time Location
    10:00 AM - 11:00 AM
  • You may have heard about this thing called .NET Aspire, and you've been told it's only for cloud native distributed systems and microservices. Did you know that's not the case? .NET Aspire brings value to any application whether it's a single majestic monolith running on-premises or an application with thousands of microservices running in the cloud. In this talk, we'll break down Aspire from the ground up. We won't be creating an Aspire project that pre-wires everything up for you. We'll start with an empty project and then add on the Aspire bits so you can see how this works under the hood. We'll set up the app host, the service defaults, various Aspire components, and of course the fancy dashboard. By the end of this talk, you'll not only have a better understanding of what Aspire is and how it works, but you'll also realize that every application should be using Aspire today, not just cloud native distributed applications.

    Time Location
    10:00 AM - 11:00 AM
  • Great software development isn’t just about writing flawless code—it’s about building strong teams, fostering collaboration, and navigating change with agility. In this workshop, we’ll dive into the principles of Adaptive Leadership, equipping you with the tools to be not just a great coder, but a powerful team player and leader. Through a mix of theory and hands-on exercises, you’ll learn how to tackle deep-seated challenges, foster innovation, and lead your team through the complexities of today's ever-evolving development landscape. Learning Objectives: Identify and Address Challenges Beyond Code. Learn to spot and address adaptive challenges within your team using strategies like "Getting on the Balcony" and "Identifying the Adaptive Challenge." Foster a Culture of Innovation and Inclusion. Understand how to give ownership back to your team, leveraging diverse perspectives to create an environment that encourages experimentation and fresh ideas. Lead Through Change with Confidence. Build the skills to maintain focus, regulate stress, and navigate uncertainty, ensuring that your team stays resilient and adaptable in the face of change.

    Time Location
    10:00 AM - 11:00 AM
  • In this session, we will explore the powerful capabilities of SQL Server partitioning and how it can be leveraged to build scalable, high-performance applications. Join me to learn the best practices for implementing partitioning strategies that optimize query performance and enhance data management efficiency. I will cover: - The fundamentals of SQL Server partitioning - Techniques for creating and managing partitions - Performance benefits and considerations - Real-world examples and case studies Whether you're a database administrator, developer, or IT professional, this session will provide you with valuable insights and practical knowledge to elevate your application's scalability and performance with SQL Server partitioning.

    Time Location
    10:00 AM - 11:00 AM
  • As cloud adoption continues to surge, with global spending projected to hit $597.3 billion by 2023, leveraging multi-cloud environments has become essential for businesses aiming to optimize costs and boost operational efficiency. With 89% of enterprises now utilizing multi-cloud strategies, this approach offers a strategic advantage in reducing vendor lock-in, accessing diverse services, and achieving significant financial savings. In this session, we will explore the nuances of multi-cloud implementation, focusing on how to strategically optimize workloads, leverage a diverse array of cloud services, and select the right instance types to maximize cost savings. By presenting data from leading industry reports, we will illustrate how organizations employing multi-cloud strategies have achieved an average of 15% reduction in cloud expenditures and a 93% decrease in unplanned downtime. Participants will learn how to effectively distribute workloads based on performance and cost criteria, utilize various cloud providers to cut costs by up to 90% through spot instances, and enhance system resilience through geographic diversity and redundancy. Additionally, the presentation will emphasize the importance of ongoing benchmarking to ensure real-time cost and performance optimization, offering insights into improving negotiation leverage and refining cloud infrastructure. We will also address common challenges in multi-cloud management, including complexity, data transfer costs, and governance issues, and provide practical solutions such as advanced management tools and standardized processes. Attendees will leave with actionable strategies to develop cost-effective, resilient, and scalable multi-cloud architectures, paving the way for sustained operational success.

    Time Location
    10:00 AM - 11:00 AM
  • The Agile Manifesto says "Working Software over Comprehensive Documentation", not "Do No Documentation". Let's talk about how some simple architecture documentation can help bring clarity and consistency to a project. 1. Let's describe the problem 2. Team size and maturity matters 3. Who, What, and Why? 4. Guides, not Instructions 5. Walkthrough of implementation example with C4 and IcePanel 6. Wrap up and Questions

    Time Location
    10:00 AM - 11:00 AM
  • In today's fast-paced digital landscape, large organizations are constantly seeking innovative solutions to streamline workflows, enhance productivity, and deliver exceptional user experiences. Retrieval-Augmented Generation (RAG) emerges as a transformative approach that combines natural language understanding and generation models. This talk dives into the realm of RAG, offering a comprehensive exploration of its principles, applications, and implications within organizational contexts. Attendees will gain insights into how RAG can revolutionize knowledge management, decision-making processes, and user interactions. Through real-world case studies and best practices, this presentation equips attendees with actionable strategies for implementing and maximizing the potential of RAG within their organizations. Join us as we uncover the untapped opportunities and navigate the challenges of integrating RAG into the fabric of large organizations, paving the way for unparalleled innovation and efficiency in the digital era

    Time Location
    10:00 AM - 11:00 AM
  • In today's constantly connected, always available world, effective communication is paramount for businesses and organizations to thrive. Two-way text messaging applications have emerged as powerful tools to facilitate real-time, personalized, and interactive conversations with customers, clients, and stakeholders. This conference session aims to delve deep into the world of implementing these interactions and unlocking their potential for enhancing engagement, customer satisfaction, and operational efficiency. This session will explore not only the technical how of implementation but will also explore the personal, legal, and emotional considerations regarding the proper application architecture to ensure that a truly effective communication strategy can be realized. With an example application at hand, the session will explore feature enablement, user experience expectations, feature support, and regulatory impacts of SMS messaging implementation projects. Attendees will leave with the tools and insights to create their own solutions within their apps to better service customers in a manner that is repeatable, reliable, and relatable to a wide variety of users.

    Time Location
    11:15 AM - 12:15 PM
  • Developers who love strongly typed languages like C# but also see the value of rich interactive web applications can now "have it all" with Asp.NET Core Blazor! Blazor is a component-based, reactive framework that builds on top of modern .NET, Razor syntax, HTML, and CSS, to create a single-language full-stack application. Components can be statically generated on the server, be live-updated from the server via WebSockets, or run in the client browser just like a JavaScript SPA application. In this session, we will learn how to get started with Blazor, as well as some advanced tips and tricks.

    Time Location
    11:15 AM - 12:15 PM
  • Do you want to test all of your Entity Framework queries without setting up a test database? Do you want to test your API without leaving Visual Studio? Do you want to add integration tests to your CI build without adding another library? Do you want to "cheat" and hit 95%+ code coverage? In this talk, I will walk through using the WebApplicationFactory (Microsoft.AspNetCore.Mvc.Testing) library to spin up your API in memory. I will then show how to add an in-memory data connection. Finally, I will pull it all together and show a full integration test.

    Time Location
    11:15 AM - 12:15 PM
  • Everyone finds themselves in the position of looking for a job at some point in their career. The key is being ready, which should start before you are looking. This talk will equip you with practical tips from your resume/LinkedIn, what to do along your career to help you tell your story, interviewing pointers, the compensation conversation, and what employers look for when they turn outside to hire leaders and senior engineers. I'll also shoot straight about the strategic use of third-party recruiters - when and, more importantly, when you should NOT use one. You do not need to actively look for a role to find value in this conversation. My goal is to give engineers a streamlined approach so that when the time comes, they are prepared and it's a positive experience.

    Time Location
    11:15 AM - 12:15 PM
  • Do you have unstructured data sitting around that you can't get value out of? Let's turn it into something useful! Learn how to navigate pesky mixed-media pdfs and use few shot prompting with images to improve data accuracy.

    Time Location
    11:15 AM - 12:15 PM
  • Zero downtime deployments is just something people talk about but never actually do, right? Wrong! In this presentation, Mike will highlight the building blocks to enable zero downtime deployments for an ASP.NET application in Azure. He will discuss several dev team practices that contribute to pain-free deployments. He will show patterns in GitHub Actions for deployments. We will touch on using Bicep for Infrastructure As Code, as well as methods for performing database migrations. After this presentation, you should have all the tools you need to improve your deployment process.

    Time Location
    11:15 AM - 12:15 PM
  • Do you have a lot of BFFs (Back-end for Front-end) that you are maintaining for your front-end applications? Do your front-end applications require a lot of disparate calls to different services? Is your front end having to deal with multiple security models to appease back-end requirements? Are you in the process of modernizing your back-end and need a way to abstract the migration from consumers? This session will include live coding to demonstrate building a federated graphQL schema using disparate technologies and data stores. Furthermore, it will show how a front end can call that graphQL instance using one security model and pull back data from those sources. Finally, we will switch out one of the back-end services and show how the consumer doesn't need to make any changes. Attendees to this session will learn the following items. What is a graphQL query? What is a graphQL mutation? What are subgraphs? What is a supergraph? How do all these items fit together? How does security work? How do consumers interact with graphQL?

    Time Location
    11:15 AM - 12:15 PM
  • As the Metaverse evolves, the demand for immersive experiences through Augmented Reality (AR), Virtual Reality (VR), and Mixed Reality (MR) is growing rapidly. However, developing these experiences can often seem complex and overwhelming. This session is designed to demystify the process, offering practical insights and techniques for building AR/VR/MR applications with ease. We'll explore the foundational principles of AR, VR, and MR, and provide a clear roadmap for creating engaging, high-quality immersive environments. Whether you’re new to the field or looking to refine your skills, this session will equip you with the essential knowledge and strategies to bring your Metaverse projects to life, making the development process more accessible and manageable.

    Time Location
    11:15 AM - 12:15 PM
  • A new ticket comes in. It's for "that app." You know the one. The one nobody wants to touch, because the code is a mess and yet the application is business critical. In this talk, the fancy technologies will be put to the side, and instead the the reality most people live in will be acknowledged. You'll learn how we can evolve legacy code from the state it's in today to the value we need to get from it tomorrow

    Time Location
    01:00 PM - 02:00 PM
  • In 2024, it’s hard to find an application that isn’t enhanced with some form of AI capabilities. If you’re curious about the AI buzz but unsure how to integrate it seamlessly with your existing Spring applications, this session is for you. We’ll explore essential AI terminology and create a Spring-based application that easily integrates with various Large Language Models, such as OpenAI’s GPT-4. Time permitting, we’ll demonstrate creating effective prompts, utilizing OpenAI’s function calling, and implementing Retrieval Augmented Generation (RAG).

    Time Location
    01:00 PM - 02:00 PM
  • We all want to have someone else review our C# code to make sure it's written well. Wouldn't it be even better if we can have that review process done automatically? In this session, you'll see how you can use static analysis tools to find all kinds of implementation issues before they show up in a release. You'll also see how you can create your own analyzers to hunt down problematic areas in code.

    Time Location
    01:00 PM - 02:00 PM
  • Come discuss software topics with others, moderated by the Iowa Code Camp leadership. The advantage of fishbowl is that it allows the entire group to participate in a conversation. Several people can join the discussion.

    Time Location
    01:00 PM - 02:00 PM
  • In this session, discover how Query Store in SQL Server can revolutionize your indexing strategies to boost performance. Learn how Query Store captures query performance data over time, enabling you to identify and analyze performance bottlenecks caused by inefficient indexing. Explore techniques to leverage Query Store reports and insights to make informed decisions on index creation, modification, and removal. Gain practical tips on using Query Store's workload insights to monitor and tune index usage based on actual query patterns. Whether you're new to Query Store or looking to refine your indexing approach, this session equips you with the knowledge and tools to optimize SQL Server performance effectively using Query Store.

    Time Location
    01:00 PM - 02:00 PM
  • Your team has been working well for a long time, but developers keep checking in the connection strings to Azure Services (like SQL Databases and Storage). You know that once you check in a secret it should be considered compromised so you've built a robust rotation strategy and you are ready to move forward, but you want to solve the real problem, which is preventing the team from checking in (and even knowing) what your secrets are. Another problem that you noticed is that Application Insights and your users are logging sensitive information that needs to be sanitized. In this session you will learn how to get notifications when users have checked in secrets using GitHub and third-party tools. You'll also see how to leverage secrets in your code without having to know the secrets, both locally and at Azure via the Azure Key Vault. You will then learn how to leverage secrets that need to be shared to Azure App Configuration and have the ability to use them from your local and Azure environments. To complete the journey, you will then learn how to capture output before committing to your logs (or app insights) with a few simple code changes to make sure that sensitive information is sanitized before being permanently recorded.

    Time Location
    01:00 PM - 02:00 PM
  • Have you been looking for fun new ways to improve your critical thinking, programming, and cybersecurity skills? If so, I suggest checking out Capture The Flag competitions! These competitions, often called CTFs for short, are multi-challenge events where you solve puzzles to retrieve flags. To complete these puzzles, you may need to hack a website, crack an encrypted string, decompile code, or even just think critically about a series of picture clues provided to you. Does this sound interesting but you're still not quite sure know how to get started? I'm here to help with that! In this session, I'm going to walk you several common CTF challenges, step by step. These challenges include SQL Injection, Cryptography, Hardware Analysis, and Reverse Engineering. We'll then discuss some tips I have for when I get stuck, and wrap up with some resources for where you can go to practice these new skills on your own.

    Time Location
    01:00 PM - 02:00 PM
  • Join us as we explore the transformative potential of diverse perspectives, collaboration, and the wisdom of crowds. In this engaging talk, we'll dive into the benefits of surrounding ourselves with people who possess different skills, experiences, and knowledge. We'll examine how embracing intellectual humility and being open to learning from others can lead to groundbreaking insights and innovative solutions. By the end of this talk, you'll be inspired to embrace intellectual humility, appreciate the wealth of knowledge that surrounds you, and understand the true power of collaboration in our ever-evolving world.

    Time Location
    01:00 PM - 02:00 PM
  • Between aggressive deadlines and mounting Tech Debt, teams often feel helpless . They struggle to deliver high quality solutions they are proud of which also delight their users. Sometimes leaders can't help them. Teams recognize the origins of the mess but often grapple to break free. Thankfully there are tried and true tactics to tackle the tech debt troubles, Today! You don't need a dramatic dedicated deconstruction department. You and your team can solve this yourselves! Learn technical, political, and procedural techniques to create more joy in the new work with less pain from the old.

    Time Location
    02:15 PM - 03:15 PM
  • You've heard about advanced prompt engineering and Retrieval Augmented Generation (RAG), but now, all the cool kids are talking about "Function Calling" and "Agentic Workflows". What does that mean? Here we talk about different aspects of agentic workflows and walk through a very simple example you can use with any model you want.

    Time Location
    02:15 PM - 03:15 PM
  • In this presentation, we will explore the powerful capabilities of OpenRewrite, a cutting-edge tool for automating code refactoring and modernization across various programming languages. Attendees will gain insights into how OpenRewrite can streamline large-scale code transformations, enforce best practices, and improve code quality with minimal manual intervention. We'll dive into real-world use cases, demonstrate how to create custom recipes, and discuss best practices for integrating OpenRewrite into your development workflow. Whether you're a developer, architect, or tech lead, this session will equip you with the knowledge to harness OpenRewrite for more efficient and effective code management.

    Time Location
    02:15 PM - 03:15 PM
  • Good feedback has the power to improve performance, increase team engagement, and lead to higher quality products. The ability to deliver feedback is an essential skill for high performing teams. Good feedback is clear and delivered in a way that preserves working relationships. This talk will explore key elements to include in good feedback and leave attendees able to more confidently and effectively communicate both positive and constructive thoughts to their teammates. We’ve all been in a situation where we want to give feedback but are struggling to find the best way to do it. Maybe a coworker said something in a meeting that undermined your credibility or a teammate is consistently delivering late or low quality work. How do you address the situation in a way that preserves your working relationship, but still solves the issue? Giving feedback can feel awkward. What do I say? Am I going to hurt their feelings? We will explore methods for giving well crafted feedback that make sharing your observations with a teammate feel less daunting and lead to more productive team dynamics.

    Time Location
    02:15 PM - 03:15 PM
  • A lightning talk is a very short presentation lasting only a few minutes sharing a technical topic of interest. Come share with others!

    Time Location
    02:15 PM - 03:15 PM
  • As AI technology advances, the need for highly efficient and customizable models has never been greater. This session delves into the world of Phi SLM (Small Language Models) and the art of fine-tuning, offering a comprehensive guide to building custom AI solutions tailored to your unique applications. Join us to uncover the fundamentals of Phi SLM, a powerful approach for creating efficient, interpretable models. Discover how fine-tuning can further optimize pre-trained models, enhancing their performance for specialized tasks. By the end of this session, you'll be equipped with the knowledge and tools to harness the power of Phi SLM and fine-tuning, enabling you to develop AI solutions that are not only robust but also precisely aligned with your application’s unique requirements.

    Time Location
    02:15 PM - 03:15 PM
  • Question: is it possible to introduce new features and provide bug fixes for an application once the source code is lost? Most of the time, when approached with this scenario, organizations resort to a very expensive rewrite project. What happens though, if the legacy application just needs 10-20 bug fixes and it otherwise sufficient for the time being? Advances in reverse engineering over the last few years have made binary patching and modification much easier than in the past. Even for bytecode-based languages, such as C# (CLR) and Java (JVM), new tools allow for analyzing and even modifying existing programs, without the source code, without even recompiling! Now bugfixes are just an example of the approach, but there is no reason to stop there! Here's a scenario; your business relies on an ancient 3rd party WinForm app for critical business processes; using reverse engineering and binary patching, there is nothing prohibiting you from introducing a REST API on top of the old application, thereby increasing the shelf life of the "legacy" software.

    Time Location
    02:15 PM - 03:15 PM
  • Learn the fundamentals of cryptography, including public/private and symmetric encryption, hashing, and digital signatures. Discover which techniques are appropriate for various situations. Review practical real life examples for storing passwords, protecting URL parameters, securely exchanging information with partners, and safely encrypting sensitive information on public web sites. Concepts apply to all platforms, examples will be in C# and .NET

    Time Location
    02:15 PM - 03:15 PM
  • Picasso said, "Learn the rules like a pro, so you can break them like an artist." In this talk, Judah De Paula PhD, will draw upon over two decades of industry experience to discuss some of his favorite rules for writing software and explain why the rules sometimes work better in theory than in practice. For example, one must accept you suck as a programmer before you can be good at it. If you think there is something Zen in that, he does too. Concrete examples will be mixed with theoretical principles to inspire you to think of your daily routine in new ways. Code will be in C# and Python. You might be briefly forced to learn about Pascal the programming language and Pascal the man.

    Time Location
    03:30 PM - 04:30 PM
  • This session will explore the influence of generative AI across various business and commercial sectors, highlighting its impact on startups, established businesses, and entire industries. The presenter will delve into how large businesses can leverage AI, particularly in customer operations, where AI-powered chatbots enhance self-service and agent effectiveness, leading to increased efficiency. Also, the potential for generative AI in marketing and sales is immense, automating content development, data utilization, and personalization to boost productivity. On the other end of the scale, for example software engineering-focused startups, the presentation will suggest how generative AI streamlines activities, revolutionizing coding processes and work experiences. Examples of the impacts of AI in product R&D, such as its applications in market analysis, virtual design, simulations, and test preparations, can redefine traditional workflows and enhance efficiency. Focusing on the retail industry, the presenter will also share insights on how generative AI could lead to a significant increase in annual revenues, transforming customer service, marketing, sales, and supply chain management through automation and optimization of personalized offerings. Acknowledging the economic potential of generative AI, the presentation will also address challenges, such as external inference and adversarial attacks, emphasizing the role of human oversight for quality control and security in AI-era. By the end of this presentation, attendees will have an expanded sense of the potential applications of AI-powered systems in a variety of business and commercial contexts. Information and insight are the fuel for business, and AI promises to supercharge how information is leveraged.

    Time Location
    03:30 PM - 04:30 PM
  • One of the features added in C# 9 is called "source generators", enabling a developer to create new code at compile time. This can be used for a myriad of cases, such as optimization, automating repetitive code, and dynamic API creation. In this session, I'll cover how source generators work and demonstrate a number of implementations.

    Time Location
    03:30 PM - 04:30 PM
  • I would like to cover the importance behind using tools, frameworks, and libraries as black boxes, but making sure that you open the hood and understand what is going on underneath. So often, a lack of deeper understanding about third party code can lead to issues. Performance, security, and just your general approach to development can be improved if you take the time to understand the inner workings of what you are using. Some real world examples will be provided from my experience in the industry and plenty of time for discussion and questions.

    Time Location
    03:30 PM - 04:30 PM
  • One of the best ways to improve data literacy and foster an active, passionate data culture within an organization is to establish a "Community of Practice" around the technologies the organization uses to process, store, analyze, and consume data. In this session, we'll learn about "The Data Dojo: A Power BI Community of Practice," which was established at Des Moines University to facilitate the sharing of knowledge and experience among faculty and staff interested in analyzing the data generated by their teams and departments. We'll also talk about the Data Dojo's egalitarian founding principles and unconventional structure, some of the topics we've covered at our workshops, what has gone right, what we could have done better, and what we're planning for the future. And finally, we'll discuss how you can encourage data literacy and foster a vibrant data culture within your organization by establishing a Data Dojo of your own!

    Time Location
    03:30 PM - 04:30 PM
  • A non programmers show and tell of an engine built for providing novel insight into the action on a basketball floor. Now we really get to see the value of who's out there playing. A college programmer who hasn't programmed in YEARs rolls his sleeves back up on a basketball related passion project. Go get some !

    Time Location
    03:30 PM - 04:30 PM
  • What is a hardware root of trust? Why is it important? What measure of security does a hardened host provide? These are some of the questions I hear when I bring up the topic of boot security. This talk is focused on how computers boot up and how technologies like Intel Secure Boot work. We will go over the boot process before the OS is executed and talk about some of the attacks that are possible at this stage and the impact such an attack can have on the entire platform. After this groundwork is complete, we will talk about how some of the different hardware root of trust technologies work to mitigate the risk posed by these types of attacks.

    Time Location
    03:30 PM - 04:30 PM
  • Working in a product space requires knowing how to take a very complex problem and break it down into iterative chunks. Far too often, we’re so wrapped up in the problems we’re solving professionally, that we completely forget to introspectively look at ourselves and ask what problems in our own lives need solving. Burnout is real and worth addressing. But much like the dev process, understanding the “why” behind behavior leads to a more sustainable outcome. We want to develop a framework and language to properly identify burnout and how we can work through it.

    Time Location
    03:30 PM - 04:30 PM

Service Sessions

  • Stop in and get your badge and lanyard, and let us know you're here!

    Time Location
    09:00 AM - 09:30 AM
  • Opening Session

    Time Location
    09:30 AM - 09:50 AM
  • Refreshments available in the Atrium

    Time Location
    11:00 AM - 11:15 AM
  • Lunch

    Time Location
    12:15 PM - 01:00 PM
  • Refreshments available in the Atrium

    Time Location
    02:00 PM - 02:15 PM
  • Refreshments available in the Atrium

    Time Location
    03:15 PM - 03:30 PM
  • Join us for a wrap up and some door prizes!

    Time Location
    04:30 PM - 05:00 PM

Join Our Mailing List!

Receive event updates and opportunities from Iowa Code Camp. We promise to never spam, sell, or otherwise abuse your email.

Follow Us:

©2024 Iowa Code Camp. All rights reserved.

Website by We Write Code