A Span<T> cannot cross an await boundary

Keep span work between awaits. Carry memory or its backing buffer through asynchronous I/O.

September 29, 2026 · 2 min · Lukas Walter

Graceful Degradation for AI Features

How to keep an AI-enabled product useful when a dependency fails, without hiding reduced capability or returning unsafe substitutes.

September 27, 2026 · 14 min · Lukas Walter

Querying Qdrant from .NET

Turn a question into an embedding, apply payload filters, query Qdrant from .NET, and inspect the ranked results without treating a similarity score as proof of relevance.

September 23, 2026 · 9 min · Lukas Walter

Building the .NET AI App Foundation

A small ASP.NET Core foundation for model access, validated configuration, tracing, buffered and streaming HTTP contracts, and future AI capabilities.

September 20, 2026 · 11 min · Lukas Walter

Use DateTimeOffset for instants that cross system boundaries

Use DateTimeOffset for timestamps sent through APIs, messages, or storage when they must identify one unambiguous point in time.

September 20, 2026 · 3 min · Lukas Walter

Indexing Your First Documents

Index documents in Qdrant from .NET with Azure OpenAI or local Ollama embeddings, stable point IDs, useful payloads, and a read-back check.

September 16, 2026 · 12 min · Lukas Walter

Define what AI telemetry may contain before recording content

Define allowed fields, redaction, access, and retention before capturing AI inputs, outputs, or tool content for debugging.

September 13, 2026 · 2 min · Lukas Walter

nameof(List<>) works without a generic type argument in C# 14

C# 14 lets you write nameof(List<>) instead of supplying a type argument just to get the name. The result is still List.

September 12, 2026 · 2 min · Lukas Walter

Review EF Core migrations as database changes

Review generated EF Core operations, inspect the deployment SQL, and check application compatibility before applying schema changes.

September 11, 2026 · 2 min · Lukas Walter

Pin the .NET SDK with a deliberate roll-forward policy

Commit global.json and choose whether builds require an exact SDK or may use newer installed patches or feature bands.

September 10, 2026 · 2 min · Lukas Walter