Thoughts on software engineering, architecture, and the .NET ecosystem
A RAG system without a maintained evaluation dataset is a system that cannot be improved or safely changed. A practical guide to the Minimum Viable Evaluation Dataset (MVED), the five essential categories, LLM-as-Judge architectures, and connecting evaluation to deployment gates.
The choice of retrieval unit is the most consequential design decision in a RAG pipeline. Why character splitting fails, the precision/recall trade-off, parent-child and hierarchical patterns, the lost-in-the-middle constraint, and a unit-selection table.
The jump from Senior to Principal is not a linear climb — it's a career pivot. A field note on impact radius, problem sourcing, ambiguity, and the day-to-day reality of moving from individual execution to organizational leverage.
RAG answer quality is determined at four separate stages — Retrieval, Context, Answer, Operations — each testable independently. A stage-by-stage framework with metrics, ten common failure modes, and a senior-engineer checklist.
Most RAG PoCs fail not because the technology is broken, but because the architecture was built on unexamined assumptions. Five questions every technical lead should answer before writing the first line of orchestration code — covering retrieval units, evaluation, corpus ownership, latency/cost, and failure UX.
Enterprise RAG on .NET is a system with eight distinct decision surfaces, each with its own failure modes. A staff-level reference architecture covering ingestion, vector stores, hybrid retrieval, reranking, and observability on Azure.
A field guide for CTOs on closing the gap between a working AI demo and a governed, production-ready enterprise system — covering architecture, reliability, security, cost, and ownership.
An LLM call is not an architecture. A field guide for technical leads and architects on the seven non-negotiable surfaces — retrieval, evaluation, economics, ownership, and failure UX — that separate a prototype from a production system.
Explore the exciting new features in .NET 11 — from runtime-native async and C# 15 to massive performance improvements and ASP.NET Core 11 enhancements.