scienceDeep Dive
Azure
·
Jul 9, 2026
·
16 min read The exact RBAC role, disable-local-auth switch, and DefaultAzureCredential snippet for every Azure hop an agent uses — OpenAI, AI Search, Cosmos, SQL, Blob, Key Vault, and more.
scienceDeep Dive
.NET
·
Dec 20, 2025
·
10 min read The exact steps to add Aspire to a running .NET + Angular + PostgreSQL app: two projects, one line in Program.cs, and a project reference.
scienceDeep Dive
.NET
·
Dec 6, 2025
·
24 min read A production-quality .NET Aspire demo — five microservices, PostgreSQL, Redis, and RabbitMQ, all orchestrated from a single C# AppHost file.
scienceDeep Dive
Software Architecture
·
Jul 5, 2025
·
46 min read .NET Architecture at Scale: Visual Guide to Modern Design Patterns # I keep a page like this open in a browser tab. When a team asks which pattern fits a new service, I would rather point at a decision tree and a comparison table than argue it from memory for the third time that month. So I wrote the reference I wanted: the 16 patterns I actually reach for in .NET systems, each with its diagram, a code sketch, and the trade-off it forces on you.
scienceDeep Dive
.NET
·
Jan 14, 2025
·
11 min read Our support team used to open the Azure portal every time someone needed a user’s group memberships. Click through Azure AD, find the user, expand groups, copy the list, paste it into a ticket. A dozen times a day. It was slow, and it needed portal access we would rather not hand out widely.
scienceDeep Dive
.NET
·
Jan 6, 2025
·
13 min read Business users kept asking my team for one-off data pulls: how many orders above $150 in December, which products are low on stock, that sort of thing. Every request meant a developer dropping their work to write a throwaway SQL query. So I built a REST API that does the translation instead. It feeds the database schema to an LLM, gets back a SQL query, runs it, and returns JSON. One codebase, four interchangeable providers (OpenAI, Azure OpenAI, Claude, and Gemini), switched by a single environment variable.
scienceDeep Dive
.NET
·
Dec 29, 2024
·
22 min read The short version # Four ways to get a file into Azure Blob Storage from a .NET and Angular app, and when each one earns its keep:
scienceDeep Dive
.NET
·
Dec 24, 2024
·
11 min read Introduction # Storing files in SharePoint from a .NET service sounds like it should be a solved problem, and it is, as long as you make one decision early: delegated or application permissions. That single choice changes who shows up as “Created by” on every file and whether your service needs a signed-in user at all. Get it wrong and you rebuild the auth layer later.
scienceDeep Dive
.NET
·
Dec 7, 2024
·
11 min read Introduction # I built this chat app to answer a narrow question: how little infrastructure do you actually need to stream tokens from Azure OpenAI into a browser? Less than most tutorials assume. There is no SignalR here and no WebSocket hub.
scienceDeep Dive
.NET
·
Dec 1, 2024
·
6 min read Introduction # Validation is the one part of a request I refuse to trust anywhere but the edge. Domain objects assume they are already valid; rejecting a malformed email or a missing name belongs at the API boundary, before that data reaches a service or a repository.
scienceDeep Dive
.NET
·
Dec 1, 2024
·
9 min read Introduction # On the Contact Management Application I reached for Dapper instead of Entity Framework Core, and the reason was boring: I wanted to see the SQL. EF Core is fine until a generated query does something surprising under load, and then you are reverse-engineering LINQ translations at 2 a.m.
scienceDeep Dive
.NET
·
Dec 1, 2024
·
6 min read The bug that makes people care about the Unit of Work pattern is the partial write. An operation inserts a row in one table, fails on the second, and the database lands in a state nobody designed for. I’ve spent enough late evenings reconstructing “how did this record end up half-created” timelines to want transaction boundaries stated explicitly in code, not implied by hope.