Store a source checksum to skip unchanged documents

Compare a document’s source checksum, metadata, and ingestion profile before repeating extraction, chunking, embedding, and index writes.

September 4, 2026 · 4 min · Lukas Walter

Pin culture and time zone in tests that depend on them

Make culture and time zone explicit inputs when parsing, formatting, or local-time conversion depends on them.

September 3, 2026 · 2 min · Lukas Walter

Keep tool results inside a token budget

Bound every model-visible tool result before it enters the next prompt.

September 2, 2026 · 3 min · Lukas Walter

Your First Qdrant Collection

Run Qdrant locally, connect with the official .NET client, and create a collection whose vector size and distance match the embedding model.

September 2, 2026 · 7 min · Lukas Walter

Run production evaluations outside the user response path

Hand production samples to a separate evaluation worker instead of making users wait for an evaluator model.

September 1, 2026 · 4 min · Lukas Walter

Attach build identity to operational telemetry

Stamp telemetry with the immutable build that produced it so incidents can be compared across releases and rolling deployments.

August 31, 2026 · 2 min · Lukas Walter

Use FrozenDictionary for stable, read-heavy lookup data

Build stable lookup tables once with FrozenDictionary, reuse them across reads, and measure whether lookup savings justify the construction cost.

August 30, 2026 · 2 min · Lukas Walter

Return Retry-After when a client should back off

Tell API clients when another attempt may succeed instead of leaving them to guess a retry delay.

August 29, 2026 · 2 min · Lukas Walter

Version prompts, models, datasets, and evaluation results together

Keep every evaluation result tied to the exact prompt, model identities, dataset, evaluator, and configuration that produced it.

August 27, 2026 · 4 min · Lukas Walter

Choose histogram boundaries from the service objective

Put the latency objective into the histogram boundaries so compliance can be calculated without interpolating between buckets.

August 26, 2026 · 3 min · Lukas Walter