Portfolio

Blog

Technical Notes From The Hot Path

C#, .NET, memory, performance, and the engineering details that make software feel fast.
Showing 12 articles
August 21, 2026

How to stay a good software engineer despite AI

Preserving the art of sustainable software craftsmanship: building robust, lasting systems rather than succumbing to the cycle of throwaway code

C#.NET
August 10, 2026

This Is the Way: Low-Allocation Request-Response in MQTT 5.0

An in-depth look at how we implemented low-allocation bidirectional RPC over MQTT 5.0 in Beskar.Networking, utilizing Response Topics, Correlation Data, and asynchronous Task Completion Sources.

C#.NETMQTTRPC
July 25, 2026

Resiliency in the Chaos: Source-Generated Framing and Auto-Reconnecting Client-Server Pipelines

How I built a highly resilient, transport-agnostic client-server framework with source-generated framing, custom event pipelines, and verified it using a custom-built network Chaos Simulator.

C#.NETSource GeneratorsSockets
July 18, 2026

Allocations on the Wire: Building a Low-Allocation MQTT Broker with Trie Routing and .NET 10

An inside look at building the protocol layer for Beskar.Networking, covering UTF-8 based topic trie routing, alternate dictionary lookups, QoS tracking, and pooled connection systems.

C#.NETMQTTSockets
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.