I’m Lukas, a software engineer and cloud/AI consultant focused on building robust, scalable systems with .NET and Azure.
I write practical guides on .NET, AI, agents, evaluation, observability, retrieval, testing, guardrails, and Azure.
I’m Lukas, a software engineer and cloud/AI consultant focused on building robust, scalable systems with .NET and Azure.
I write practical guides on .NET, AI, agents, evaluation, observability, retrieval, testing, guardrails, and Azure.
Engineering Tips
65 concise, searchable notes for .NET, Azure, and production AI systems. New tips are added regularly.
Start here
Where Agent Framework fits in the .NET AI stack, from agents and tools to MCP integration and workflows.
Read the introductionBuild RAG retrieval in .NET with PostgreSQL, pgvector, and EF Core.
Read the articleTrace model calls, tool calls, token usage, and failures with OpenTelemetry, Aspire, and Application Insights.
Read the guideBuild, containerize, deploy, and call a Streamable HTTP MCP server with the official .NET SDK.
Read the guideLatest posts
Run Qdrant locally, connect with the official .NET client, and create a collection whose vector size and distance match the embedding model.
How to bound time, tokens, retries, tool calls, and estimated cost across a complete AI execution instead of limiting each call in isolation.
A C# implementation for keeping provider coupling at explicit boundaries while making model capabilities and provider-specific behavior visible.
Why bounded retries help with transient faults but cannot resolve unknown outcomes, partial workflows, or duplicated side effects in AI systems.
How to generate text embeddings with Microsoft.Extensions.AI and keep the model, dimensions, comparison metric, and indexing behavior compatible.