C# / .NET / Java / InfoSec / Cryptography
Randomized Round Robin (Load Balancing) as Fast as Possible
Another episode on gaining performance improvements by doing the as little as possible on the hot-path. Do all heavy-lifting upfront or in…
Running Chrome in Docker for CI/CD
Running Chrome headless in Docker turns out to be surprisingly hard. Many resources on the internet suggest to disable the sandbox, and…
Breaking all existing Hex Encoding Records with .NET Core 3.0
It all started over 10 years ago when someone dared to ask ”how to convert a byte array to a hexadecimal string?” over at Stack Overflow…
Convert Markdown to HTML in an Angular app
Converting Markdown with code fragments to HTML on the client (Angular) can be done in under 50 LoC. This blog post guides you through it…
AES-NI (.NET) - Outperforming C and OpenSSL
This is the third and last post of a small series on AES-NI and .NET Core hardware intrinsics. Please also have a look at the first post and…
AES-NI (.NET) - Key Expansion
This is the second post of a small series on AES-NI and .NET Core hardware intrinsics. Please also have a look at the first post and be…
Improving the performance of .NET crypto code
This is the first (and maybe least interesting) post of a small series on AES-NI and .NET Core hardware intrinsics. The next post starts to…
Pascal's triangle
The challenge As part of a recent job interview process, I was asked to submit an implementation of Pascal’s triangle in Scala. Pascal’s…
Unsafe array access and pointer arithmetics in C#
Before the introduction of ref returns and ref locals in C# 7.0 and following improvements such as conditional ref expressions in C# 7.2 and…
Logging with Context in Spring WebFlux (Part II)
In the first part, we investigated how context information such as MDCs can be passed from and to a Spring WebFlux application. We shall now…
Passing Context with Spring WebFlux (Part I)
With traditional Jakarta EE (Java EE) or Spring projects, we utilize MDCs (Mapped Diagnostic Context) - a feature from SLF4J - to enrich…
Exploring System.Threading.Channels
The namespace provides data structures (stores) for pub/sub scenarios. It enables you to decouple one-to-many publishers from one-to-many…