Most Active Speaker

Brian Gorman

Brian Gorman

Microsoft Azure MVP, Speaker, Author, Trainer, and .Net Developer

Waterloo, Iowa, United States

Brian is a Microsoft Azure MVP and is an experienced speaker, author, trainer, and .NET developer with MCSA: Web App Certification, MCSD: App Builder, and eleven Azure certifications including Azure Developer, Administrator, DevOps, Architect, Data Administrator, Security, IoT, CosmosDB, and a number of Fundamentals certifications, and has been an MCT since April of 2019. Brian has a masters of science degree in computer information systems, and a bachelor of science degree in computer science. Additionally, Brian has around fifteen years of experience instructing college courses online in computer science, SQL databases, C#/VB.NET/and Java object-oriented programming, and Microsoft Office. Brian has created many online technical training courses that can be found online on various platforms. Brian has also published multiple books with APress, including "Practical Entity Framework" and the second edition "Practical Entity Framework Core 6".  Brian's latest book, Developing Solutions for Microsoft Azure Certification Companion: Hands-on Preparation and Practice for Exam AZ-204 was released in May of 2023.

Awards

Area of Expertise

  • Information & Communications Technology

Topics

  • C#.Net
  • Microsoft
  • Azure
  • Git
  • GitHub

Getting Sensor Readings from a Raspberry Pi into Azure

Home automation is an extremely fun activity, and IoT is a field that is increasingly important, especially when it comes to things like monitoring for temperature, light, or other metrics. For example, maybe you need to ensure that the light never gets to bright in a dark room, or that the temperature is never too high or low in your wine cellar. What about that humidity in the room with your guitars or where you are storing your cigars?

This talk will show you how quickly and easily you can get a few relatively inexpensive sensors from any vendor and attach them to your raspberry Pi (no soldering required!). Once you have the pi set up with the devices, you can then use VSCode to SSH to your Pi and utilize the C# and Azure (and also python) to read the values from your device, connect to your Azure IoT hub, and ingest the data.

From there, you can easily create dashboards in PowerBi or Grafana or another tool to quickly and easily see the data from your device, so you can easily monitor the data that is being sent by the Pi and sensors.

Concepts discussed will be using the Azure IoT hub and the device connection string to connect to Azure from code, along with how to work with the device using SSH via Visual Studio Code from your windows machine. If you are a linux/mac user and used to working with SSH you will still benefit from seeing how to register your devices and get things going on the Pi for .NET development and ingestion of data into Azure.

This is an incredibly fun talk and allows anyone to see how a few dollars spent on some sensors and a PI and a little coding experience can easily ingest sensor data into their Azure environment. This of course translates into real-world business problems as well.
Also, I am not doing this as a product pitch or receiving any affiliate funds for pitching products, this is just things I have done for fun and to show of the IoT ecosystem at Azure.

Rescuing your GIT Repositories using Amend, Reset, Revert, Rebase, Bisect, and Cherry-Picking

Have you ever said: "I just pushed a commit to remote main instead of my branch! Help!"?

Have you ever been in the following scenario: "We merged two features to main but now only one of them needs to go to production without losing the code for the other one ASAP - what do we do?"

Have you ever thought you messed up your branch on rebase, and then can't figure out what happened, and/or had the fear that you might have lost work during a rebase operation?

What about the time where you accidentally put a secret into GitHub and you need it to look like that commit never happened to avoid getting fired?

In this session, we'll discuss the GIT commands of Amend, Reset, Revert, Rebase, Bisect, and Cherry-Picking to perform surgery on any GIT repository when the stuff hits the fan such as the four scenarios mentioned above.

After learning how to fix these scenarios, you can take the knowledge and use it to handle many more difficult scenarios using these same commands and strategies.

Users will learn about the listed commands and then will get a chance to see them in action. If time allows, other discussions around protecting a repository and squash and rebase strategies can be discussed.

Orchestrate and build serverless solutions with Azure Logic Apps

This presentation will cover how developers can and should be using Azure Logic Apps as a viable solution when building out serverless processes. With over 200 connectors and the ability to orchestrate workflows, Logic Apps can get you up and running fairly quickly. Logic Apps also allow for full integration with the Azure Active Directory, and can easily leverage other pieces of your Azure solutions, including Key Vaults and Azure Functions. This talk will show how to use Logic Apps, as well as discuss the when and why for using logic apps. The talk will also highlight a few gotchas and things every developer should know before committing to using logic apps.

Azure Functions and APIM

You want to go Serverless. You think Azure functions are cool, but you're not sure how to use them to host multiple API Endpoints. You are also worried about the security of the Functions and the ability to throttle requests. You are also concerned that having multiple endpoints could be confusing for your customers and hard for your team to manage, especially when it comes to versioning your endpoints.

In this session, you'll see a practical approach to resolve all of these problems using Azure Functions with Azure API Management (APIM). You'll learn how to lock everything down with Azure Active Directory and Identity management, and you'll see how to use APIM Subscriptions to get the right information to the correct users with just one entry point facade (which can be throttled by subscription for various levels of access like basic and premium - or to just prevent bad players and DDoS attacks). You'll also learn about creating products to group your APIs for customer use, exposing on the APIs and Operations your customers need. You'll see how all of your API endpoints will be hosted from the same public endpoint (which of course can be set to your own custom domain).

Additional concepts will be the ability to enforce specific URI query string parameters that the user doesn't need to know about, and how to utilize additional services that host endpoints, as well as leverage third party APIs without your customers ever knowing where and how the backend is working.

We'll cover Azure Functions and authentication with Azure Active Directory. We'll build an APIM solution to communicate with the functions, setting up products and subscriptions to expose various products and levels of access to the APIs and operations for the customers, and we'll show how to test the various functions as we go using postman to create products and subscriptions.

Architecting and Building Event-Driven Serverless Solutions in Azure

This workshop is an intense dive into working with resources at Azure in an event-driven, serverless architecture, however the material can be utilized to complete the solution no matter what your levels of development and/or azure experience currently are.

In this workshop, you'll build an event-driven architecture with serverless technologies at Azure, leveraging and learning about the following services:
- Azure blob storage (and blob storage created events)
- Azure AI Vision (formerly Cognitive Services - Computer Vision)
- Azure Event Grid for topics and subscriptions
- Azure Functions for processing data and classifying results as needs review or ready for import
- Azure Logic Apps to send email (via SendGrid or another provider)
- Azure SQL to store the finalized results for the "legacy" system
- Service Bus to Queue results for processing so that your team can review and approve or correct results from computer vision asynchronously
- Azure App Service to show the final results of the processing and allow for review/approval of pending import data based on vision results for the images

After completing the workshop, attendees will be able to take the skills they've learned and apply them to solutions for both enterprise and personal projects.

The Attendees will need to be able to access an Azure Subscription and GitHub. This should be done on personal, non-work email accounts and non-work machines, unless the attendee is certain those accounts are in compliance with their company and also will not present access issues from a remote location at the conference.

This workshop is a proven guided activity with step-by-step instructions. The attendees will be able to complete the activities by walking through step-by-step instructions during the workshop and any additional work they want to do can still be completed post workshop.

The first part of the workshop will start by presenting the real-world problem and a bit of brainstorming on the architecture, then it will be all about implementation. We'll talk about the different services within Azure as we go.

The attendees can complete this on their own or in groups.

Attendees will need access to a personal email, Azure Subscription, and GitHub.

All attendees will be directed to the repo for the workshop, where full walkthroughs and resource information exists (so they can take the workshop home and do it again)
https://github.com/AzureCloudWorkshops/ACW-ServerlessArchitecture

Building rugged DevOps pipelines with GitHub Actions

This session dives into using GitHub actions to build out robust DevOps pipelines. In the session, we'll implement an architecture to build a temporary dev environment, and then push the code changes through the pipeline to an end release into production. In addition to just getting the CI/CD implemented, we'll examine what it takes to add in static code scanning and other security considerations for our repositories.

This talk is a rework of my original talk on both ADO.Net and GitHub actions. With the growing ecosystem at GitHub, it is clear this is the direction more teams will be interested in knowing about for the future. Some of the topics will be introductory, like creating the pipeline, but the talk will quickly advance to a higher level with discussions around implementing DevSecOps and a rugged devops pipeline. Demo solution will deploy to Azure but planning to mention that this could also be done against AWS or GCP with a few changes.

Azure Messaging, Queueing, and Events - Which service is right for your solution?

With Event Hub, IoT Hub, Service Bus, and Azure Storage Queue, Azure has a number of PaaS offerings available when it comes to Queueing, Eventing, and Messaging. The number of services and mystery about their purposes can lead to a bit of analysis paralysis when it comes to which service to use, and, more importantly, when to use each service.

This session will help you answer all of the following questions:
- Which service is used for ingesting a stream of data?
- What service responds to a single event?
- Do you need an Event Hub to use Event Grid or an Event Grid to use Event Hub?
- When should you use Azure Storage Queue vs Azure Service Bus Queue?
- Is there a way to have one message go to multiple Queues based on the interest or access level of a customer/client?
- How do you enhance a stream to make sure that critical failures are handled immediately?
- What is "at-most-once" vs. "at-least-once" delivery of messages and which services can guarantee these options?

In this session you will learn about the services available at Azure for queueing, handling events, and messaging, and you'll get to see working examples of when and how to use each of the various services.

By the end of the talk you'll be ready to choose the correct service for your solution with confidence.

Overviews and practical use-cases for each platform offering, with demos to work with each using C#.NET. This material is incredibly important for the AZ-204 exam as well as just to know as a .NET developer with Azure.

Azure Certifications: Your path to success

You are ready to get started with azure certifications, but you don't know where to start or how to proceed. In this talk, I'll show you common paths to different certifications, point you to the Azure certification poster, help you find out about each exam and how to practice, show you various channels and people you can follow for awesome content, and then I'll give you some of my best tips and tricks to prepare for exams.

Making a List and Checking it Twice

In this video, we'll discuss how to deploy a simple TODO application to an Azure App Service (Making a list). We'll then talk about adding Identity (Azure, custom, and other providers) to the application to make sure users are logged in and only able to see their own lists. The app will be a .Net MVC web application backed by SQL Server using Entity Framework and the built-in Identity providers for MVC.

This is a study in deployment to Azure App service and utilization of identity in the Azure ecosystem with MVC

Parse Excel Into Cosmos DB using an Azure Function

Learn how to respond to an event grid trigger with an Azure Function to parse data from an Excel sheet dropped in storage into an Azure Cosmos SQL database. Considerations include using Function Bindings vs using the SDK

Utilizes Azure Storage, Azure Event Grid, Azure Functions, and Azure Cosmos DB. Code considerations include parsing data from Excel and then utilization of an output binding vs. utilizing the Cosmos DB SDK from code without function bindings.

Customizing ASP.Net Identity and adding Third-Party sign-in providers

You have ASP.NET identity baked into your ASP.Net MVC solution, but you want to change some of the default user properties to add additional information about the users. You need to be able to add the fields and then scaffold the correct pages for your application to allow users to provide information for the new custom fields during sign-in and registration.

Additionally, you want to create the ability to sign in to the application via Microsoft, Facebook, or Google, or another third-party provider, and leverage that in tandem with your existing ASP.NET identity solution.

This session will demonstrate how to update the default ASP.NET Identity user with new properties, scaffold the identity pages for modification to allow for gathering information for the custom fields, and will conclude by integrating third-party sign in via Microsoft accounts (with discussions around utilization of Apple/Facebook/Google/others).

Protecting Your Secrets using Azure Key Vault, Azure App Configuration, GitHub, and C# MVC

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.

This talk also has a backing repo with step-by-step instructions. https://github.com/AzureCloudWorkshops/ACW_ProtectingYourApplicationSecrets

Utilizing Private Endpoints from Azure Services to create a secure solution architecture

Azure PaaS offerings are a great way to deploy solutions with services such as App Service, Storage, Key Vault, and more. The default deployment of these resources utilizes the public internet and DNS resolution to direct traffic to the service.

In this talk, we'll take a look at the networking side of the equation to see how to set up a private virtual network and then connect to an Azure Service via a private link from that network. With a private connection, the resources in your network can connect to the Azure Service without leaving the private Microsoft internet backbone (i.e. No more public access to your service).

This talk is in development as I study for AZ-700. I may be adding some more information about locking the service down and also talking about which services can actually be deployed directly to a network vs which require a private link

Securing your Azure Applications using Azure Networking

You (and your team) need to architect a solution for a migration or a new project in Azure, but you're not sure where to start or have a fear that you will run into problems during deployment due to missing services or traffic that won't route correctly. One crucial aspect of your solution is to ensure you your traffic never leaves the Microsoft private network backbone, thereby avoiding routing traffic via the public internet backbone.

This session is your gateway to understanding the fundamental principles and services essential for creating secure private networks for your applications and organization in Azure.

During this session, you'll learn how to architect networking within Azure through examples that explain:
- how to plan and configure IP address ranges
- what subnets are and how to plan for the future
- private DNS zones and private endpoints
- network integration of services
- route tables
- network security gateways
- how to establish secure connections using VPN gateways to on-premises or co-location networks
- configuring seamless communication between deployed services like Key Vault, App Service, and on-premises resources.

After the session, you'll have the knowledge and confidence needed to architect solutions that align with best practices and leverage Azure's robust networking capabilities for your organization and your applications.

Automated resource deployment with Bicep

This hands-on workshop provides a day of training that teaches you how to work with Bicep. The workshop starts by introducing Bicep and the key components that are necessary to understand when working with automated deployments and infrastructure as code.

During the first part of the workshop, you'll learn about:
- Creating Bicep files
- Deploying resources (a simple storage account) to a single resource group using the command line
- Parameters
- Variables
- Modules
- Outputs
- Orchestration of multiple deployment files for a subscription-level deployment from the command line
- How to create Azure Service Principals and set the correct permissions to authorize a third-party solution like GitHub to deploy to your subscription
- Automating your first orchestrated pipeline to your Azure subscription using GitHub actions

As the day progresses, you'll learn how to:
- Create specific Azure resources using Bicep to deploy a robust web application with App Service, Key Vault, Application Insights, Log Analytics, and SQL Server
- Leverage prior modules to get the output from a previous deployment to configure settings like Key Vault Secrets on the App Service configuration page

You'll then see how to set the CI/CD pipeline to deploy the application code.

The day finishes up with a final look at moving your shared secrets into Azure App Configuration with a couple of small changes to the Bicep pipeline and the application code.

This workshop has both a Bicep and a Terraform path, so the attendees will be able to leverage the training materials provided to learn about Terraform as well if they are so inclined, even after the conference is over.

Sam and I delivered both paths at Codemash 2024, with half-day workshops and determined that either path is best served as a full-day workshop.

co-presenter for this is Sam Gomez

GitHub Actions for architecture deployment and CI/CD

As your team has moved to modernize your applications, you are now looking to create robust deployments utilizing GitHub Actions. You know that you will have the responsibility to create pipelines that will both deploy architecture and also the application code.

In this session, you'll learn how to create GitHub Actions that will deploy your architecture using ARM or Bicep to Azure. You will learn about the various parts of the GitHub action, including steps, jobs, and tasks. You'll learn how to create service principals to authorize your GitHub action to deploy to your Azure subscription, and you'll learn how to store the relevant information in GitHub secrets so that the two services (Azure and GitHub) can play nicely together. You'll also learn how to set an environment to ensure that you don't deploy to the wrong subscription if the pipeline is triggered incorrectly.

You'll also learn how to create various triggers on the pipeline, either for push or pull-request, as well as manual workflow triggers. You'll also learn how you can build single-stage or multi-stage pipelines, and how to require the first stage to complete before the second stage will execute.

Your multi-stage pipeline can be useful for either a dev/prod deployment or an architecture/app deployment in multiple environments.

At the end of this session, you'll have the resources and information you need to create robust deployment pipelines for your team, both for the architecture and for the application deployment itself.

This is an introduction and overview that shows some various approaches to building pipelines. Some time will be spent on a few basics of the YAML and layout of the pipeline, what sections are for, and how it all works. No time will be spent on creation of Bicep/ARM or application code. This talk is all about the pipeline and leverages pre-built bicep and an azure web application.
This talk will mention tools for code scanning and other additional devsecops concerns, but will not cover them.

GIT: From beginner to Fearless

This training is an introduction to GIT for source control. We'll take a look at getting started with GIT on our own machines, as well as working with GIT at public/private repositories on GitHub and/or BitBucket. Tools we'll use include BASH and VSCode

GIT can scare people. It shouldn't. GIT is awesome, and it's something that everyone should be using - it can even be used for more than just code [yes, you can version documents and spreadsheets]!

This workshop is primarily geared towards those who do code in any language and/or do web development with any tech stack, however learning the basics and commands of GIT can benefit anyone.

The workshop will cover practical scenarios needed for anyone in a normal GIT workflow, how to interact with other developers, and ends with how to solve some more tricky problems that happen.

By the end of the day, you should no longer have any fear about wrecking your repository or losing your changes.

The workshop general outline will look something like this:

Getting Started
Git Basic Info
A single-person/developer general flow
A simple multiple-person/developer flow
Advanced GIT commands to rescue your material
Release Management
Using GIT from Visual Studio or Eclipse

KCDC 2024 Sessionize Event Upcoming

June 2024 Kansas City, Missouri, United States

CodeMash 2024 Sessionize Event

January 2024 Sandusky, Ohio, United States

Festive Tech Calendar 2023 Sessionize Event

December 2023

Azure Back to School 2023 Sessionize Event

September 2023

dev up 2023 Sessionize Event

August 2023 St. Louis, Missouri, United States

KCDC 2023 Sessionize Event

June 2023 Kansas City, Missouri, United States

Gimme-Cloud-Talks-Global-Azure-2023 Sessionize Event

May 2023

Stir Trek 2023 Sessionize Event

May 2023 Columbus, Ohio, United States

Twin Cities Code Camp 24 Sessionize Event

April 2023

Azure Spring Clean 2023 Sessionize Event

March 2023

Festive Tech Calendar 2022 Sessionize Event

December 2022

Azure Back to School 2022 Sessionize Event

September 2022

KCDC 2022 Sessionize Event

August 2022 Kansas City, Missouri, United States

dev up 2022 Sessionize Event

June 2022 St. Louis, Missouri, United States

SciFiDevConMayTheFourthEvent Sessionize Event

May 2022

Azure Spring Clean 2022 Sessionize Event

March 2022

CodeMash 2022 Sessionize Event

January 2022 Sandusky, Ohio, United States

Festive Tech Calendar 2021 Sessionize Event

December 2021

HRNUG User Group

Virtual Session -
Azure Functions and APIM

September 2021 Norfolk, Virginia, United States

Code PaLOUsa 2021 Sessionize Event

August 2021

Nebraska.Code 2021

AZ-900 Fundamentals Workshop
What's New in EFCore5 and coming in EFCore6
DevOps for .Net 5 web app CI/CD using GitHub Actions or Azure Dev Ops

July 2021 Lincoln, Nebraska, United States

NDC London 2021 Sessionize Event

January 2021 London, United Kingdom

IT Pro|Dev Connections 2020 Sessionize Event

December 2020

Festive Tech Calendar Sessionize Event

December 2020

CodeMash 2020 Sessionize Event

January 2020 Sandusky, Ohio, United States

Prairie Code

Tools of the Trade: Error Logging, Web Request Tracing, and Background Jobs for your .Net applications

September 2019 Des Moines, Iowa, United States

Music City Tech 2019 Sessionize Event

September 2019 Nashville, Tennessee, United States

Nebraska.Code

GIT: From beginner to fearless
Build a Full Stack .Net Core MultiTenancy Web Application with Angular

August 2019 Lincoln, Nebraska, United States

KCDC 2019 Sessionize Event

July 2019 Kansas City, Missouri, United States

Beer City Code 2019 Sessionize Event

May 2019 Grand Rapids, Michigan, United States

Intro to Programming and Coding

Discover the basic principles of coding using C#.Net, a popular programming language. Starting from the ground up, this course will cover the critical concepts required to create and understand basic code and computer applications. Learn about control statements, types and variables, loops, methods and arrays. There are no pre-requisites other than basic computer aptitude, ability to install programs, and basic problem-solving skills. Textbook is included.

April 2019 Waterloo, Iowa, United States

Brian Gorman

Microsoft Azure MVP, Speaker, Author, Trainer, and .Net Developer

Waterloo, Iowa, United States