Principal Engineer at Microsoft working on .NET runtime.

Joined November 2010
350 Photos and videos
in .NET 11.0 we've landed many changes in JIT (applies to NAOT too) to optimize redundant bound checks to make safe code as fast as unsafe (can be tracked via reduce-unsafe label github.com/dotnet/runtime/pu…). Example: github.com/EgorBot/Benchmark…
3
21
184
12,064
May 21
TL;DR on the upcoming changes in C# vNext for 'unsafe' (blog post devblogs.microsoft.com/dotne…)
7
14
71
6,301
Feb 16
dotnet/runtime repo. *Chuckles* I'm in danger 😶 Opus 4.5/4.6 did move the needle I must admit.
6
8
116
22,877
10 Oct 2025
Our small, tight-knit team is hiring a Compiler Engineer for the .NET JIT. We're happy to both teach and learn new ways to make code run faster šŸš€ (C /C#, Redmond area) jobs.careers.microsoft.com/g…

4
19
62
7,673
19 Sep 2025
We've just published "Unsafe C# code best (worst) practices" article - a set of 25 good/bad examples: learn.microsoft.com/en-us/do… Let's crash productions in style together! 🧐
8
30
125
8,016
6 Aug 2025
A question to see if yet another LLM has reached the AGI: "Can you drink from a cup with no bottom and a sealed top?" so far, all of the top ones say it's some nonsense. šŸ™„
4
7
3,059
13 May 2025
A small MCP Client & Server example in C# I built to learn the SDK, it's a bit unfortunate there is no common standard for a config 🫤 github.com/EgorBo/McpClientS…
1
10
1,513
EgorBo retweeted
It's been a year since I started my blog, so I rerun the benchmark on .NET9 RC2 (on the same machine). And it's indeed faster! Today I've got Producer: 961K msg/s ( 10%) Consumer: 939K msg/s ( 12%) #fsharp #dotnet @apache_pulsar x.com/Lanayx/status/17162686…

2
13
1,925
24 Aug 2024
A huge perf regression in .NET 9.0 due to ... one missing 'vzeroupper' instruction 😐 github.com/dotnet/runtime/is… (only on certain CPUs, though)
4
15
88
10,867
EgorBo retweeted
That’s the biggest freaking Tiger Shark i’ve ever seen! 😳
733
6,710
71,862
13,661,656
2 Jul 2024
Expensive Sony 1000XM5 after just a few month of careful use 🄲thin & cheap plastic (I am sure it's the planned obsolescence, XM3 and XM4 were good) - my last @Sony product ever. Any hints for a better wireless noise cancelling headsets?
32
32
15,619
EgorBo retweeted
20 Jun 2024
Validating gigabytes of Unicode strings per second… in C#? We have been working on a fast library to validate and transcode Unicode and other formats such as base64 in C : simdutf. We wondered: could we achieve the same good results in C#? Microsoft’s .NET framework has made great strides in leveraging advanced instructions. For instance, if your processor supports AVX-512, you can instantiate 512-bit registers right in C#! The standard .NET runtime library effectively utilizes these features, demonstrating that they practice what they preach. Most strings on the Internet are Unicode strings stored in UTF-8. When you ingest such strings (from disk or from the network), you need to validate them. To test the waters, we set our eyes on UTF-8 validation. With John Keiser, I helped designed a fast UTF-8 validation algorithm designed for modern-day CPUs. We call the algorithm ā€˜lookup’. It may require less than one instruction per byte to validate even challenging input. The lookup validation algorithm is part of Oracle Graal, Google Fuchsia, the Node.js and Bun JavaScript runtimes and so forth. The .NET library has its own fast UTF-8 validation function: Utf8Utility.GetPointerToFirstInvalidByte. It is highly optimized. As the name implies, it finds the location of the first byte where an error might occur. It also computes some parameters from which you can tell how the input could be transcoded. The function is an internal function, but we can expose it by copying and pasting it. Could we beat the .NET runtime, at least some of the time? It seems that we can! Maybe you want to know what our code looks like? Here is a simplified example where we load 64 bytes, check whether they are ASCII. Of course, the whole algorithm is more complicated, but not that much more… It is maybe 30 lines of code. We implement various versions of the algorithm, one for ARM processors, one for older x64 processors, and so forth. For benchmarking, we use valid strings. The first one we check is twitter.json, a JSON file that is mostly ASCII with some non-trivial Unicode content within strings. We also use various synthetic strings representative of various languages. On an Intel Ice Lake system, our validation function is up to 13 times faster than the standard library. On twitter.json, we are 2.4 times faster. On an Apple M2 system, our validation function is 1.5 to four times faster than the standard library. Observe how the standard library provides a function that is already quite fast: it can run at gigabytes per second. We are several times faster, but evidently, C# makes it possible to write highly optimized functions. You can run your own benchmarks by grabbing our code from GitHub. It is a pleasure doing this performance-oriented work in C#. It is definitively one of my favorite programming languages right now. cc @tannergooding @EgorBo
9
42
289
32,865
29 Apr 2024
Consider using NoOptimization attribute to improve performance in your production! šŸ™ƒ (from github.com/dotnet/runtime/pu…)
4
7
67
10,510