Every Great Product Has a Stack. Every Stack Has a Story.
Deep dives into AI, Azure, cloud architecture, distributed systems, and engineering decisions.
Get new posts by email
Topics
Latest posts
-
Implement ASP.NET Core OpenID Connect with Keycloak to implement Level of Authentication (LoA) requirements
Not every action in an application deserves the same amount of trust. Viewing a dashboard and approving a…
-
Exploring the features of dotnet run app.cs
One of the more practical additions coming in .NET 10 preview is the ability to run a single…
-
Run C# Scripts With dotnet run app.cs (No Project Files Needed)
For years, spinning up a quick C# script meant creating a .csproj file, a Program.cs, and sometimes a…
-
Smarter SK Agents with Contextual Function Selection
Register enough plugins on a Semantic Kernel agent and you run into a problem that has nothing to…
-
Leverage MCP tools with Semantic Kernel Agents
In an earlier piece in this series, we looked at the Model Context Protocol (MCP) at a basic…
-
Handling OpenID Connect error events in ASP.NET Core
ASP.NET Core gives you a lot of extension points for the OpenID Connect handler, but error handling is…
-
Semantic Kernel and Microsoft.Extensions.AI: Better Together, Part 2
Microsoft.Extensions.AI and Semantic Kernel solve overlapping but different problems. Microsoft.Extensions.AI gives you a thin, provider-agnostic abstraction layer for…
-
Semantic Kernel: Multi-agent Orchestration
A single agent handling everything sounds simple until you try it on a task with more than one…
-
Using multiple external identity providers from ASP.NET Core Identity and Duende IdentityServer
Many enterprise applications need to authenticate users coming from more than one identity source. You might have employees…