Portfolio

Blog

Technical Notes From The Hot Path

C#, .NET, memory, performance, and the engineering details that make software feel fast.
July 11, 2026

ValueTask Deoptimization in .NET 11: How Runtime-Async Turns a Performance Trick into a Bottleneck

An in-depth technical analysis of why the classic synchronous-path ValueTask optimization backfires under the new experimental .NET 11 Runtime Async compilation model.

C#.NET 11ValueTaskPerformance
July 7, 2026

Writing a Zero-Allocation Source Generator: Roslyn, Cache-Safe Nodes, and Ref Struct Builders

A deep-dive guide to writing high-performance Roslyn Incremental Source Generators using cache-friendly syntax nodes, SequenceArray for zero-boilerplate pipeline caching, and CodeTextWriter.

C#.NETSource GeneratorsRoslyn
July 6, 2026

Refactoring to Spans: Making Old, Allocation-Heavy C# APIs Zero-Alloc

A practical guide to refactoring legacy, allocation-heavy C# string parsing, binary decoding, and string formatting APIs into high-performance, zero-allocation span-based code.

C#.NETSpanMemory
July 5, 2026

Sockets on a Pipeline: Low-Allocation Networking with Beskar.Memory

An in-depth technical guide to building an ultra-fast TCP socket transport using System.IO.Pipelines, SocketAsyncEventArgs, and Beskar.Memory pools.

C#.NETSocketsPipelines
May 19, 2026

The Journey to Native Markdown: Frontmatter, Slugs, and Code Interceptors

A deep-dive article detailing the transition from expensive string post-processing to zero-allocation native features in Beskar.Markdown.

C#.NETMarkdownPerformance
May 17, 2026

How Beskar.Markdown stays low on memory and still fast

A code-focused article about the design choices behind Beskar.Markdown: spans, compact nodes, pooled buffers, single-pass parsing, contextual rendering, and honest benchmark tradeoffs.

C#.NETMarkdownPerformance
January 17, 2026

Span<T> in C#: stop allocating for work you can borrow

A practical introduction to Span<T>, ReadOnlySpan<T>, Memory<T>, and pooled buffers for low-allocation C# code.

C#.NETSpanMemory
September 22, 2025

C# 14 extension members: APIs that feel like they belonged there

A practical look at C# 14 extension blocks, extension properties, static extension members, operators, and why they are useful for low-allocation fluent APIs.

C#.NETExtensionsC# 14
An unhandled error has occurred. Reload 🗙

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.