Use async for I/O, not as a substitute for CPU parallelism

Use async to avoid blocking while I/O is in flight, and treat CPU parallelism as a separate measured design decision.

July 28, 2026 · 3 min · Lukas Walter

Use ValueTask only when you know why

Prefer Task unless you have a measured allocation reason and a simple consumption contract.

July 11, 2026 · 2 min · Lukas Walter

Do not hide exceptions inside fire-and-forget tasks

If work can fail, give it ownership, logging, cancellation, and a lifecycle.

July 5, 2026 · 2 min · Lukas Walter

Start independent tasks before awaiting them

Create unrelated asynchronous operations first, then await them together.

July 5, 2026 · 2 min · Lukas Walter