Sergiy Teplyakov
@steplyakov.bsky.social
Software Engineer at MSFT. Opinions are my own.
New video on Dissecting the Code YouTube Channel: "How LINQ works?" - youtu.be/hFKCOeUfZaA?... To understand LINQ we should understand iterator blocks. And this is what I'm covering for almost 20 minutes! :)
How LINQ works
YouTube video by Dissecting The Code
youtu.be
PerfView can record all managed exceptions in all processes system-wide thanks to the .NET ETW provider, with callstacks. I built a viewer for these .etl files:
Next video on Dissecting the Code channel. This time I cover .NET 10 performance improvements around de-abstracting the delegates. In .NET 10, the LINQ Any method can easily outperform a manual loop over a list! Awesome job, .NET team! youtu.be/-h5251IWv-Y?... And, as always, thanks for watching!
NET 10 Delegate De Abstraction
YouTube video by Dissecting The Code
youtu.be
Another video on Dissecting the Code YouTube channel: "ConfigureAwait best practices". I feel we have a cargo cult on using ConfigureAwait without thinking too much. youtu.be/bUHQeY-DlBc?...
Stop using ConfigureAwait(false) incorrectly!
YouTube video by Dissecting The Code
youtu.be
Do you know that just changing the C# langversion might affect performance? The code generation for method group conversion has changed in C# 11 to avoid allocations in certain cases.
New video on Dissecting the Code YouTube channel: ".NET 10 De-Abstraction in Action", that covers how .NET 10 almost completely eliminates the abstraction penalty when iterating over interfaces. #dotnet10, #performance
TIL that dotnet/runtime github repo has an awesome bot for running the benchmarks to compare the before and after! Here is an example:
Do you know that .NET 10 massively reduces the overhead of using any built-in collections via interfaces (yes, not only for arrays)? Iterating a list via IList<T>, or dictionary via 'IDictionary<K,V>', etc., now has almost zero abstraction penalty!
I'm writing another book, and the first few chapters are available through Manning Early Access now! For 50% off! hubs.la/Q03Q9PGP0 More details, and the story of how I came to write it, are on my blog at ericlippert.com/2025/10/30/i... It feels great to be writing again after a long break. :)
Fabulous Adventures in Data Structures and Algorithms - Eric Lippert
Author Eric Lippert introduces fabulous solutions using uncommon algorithms and data structures. There’s a lot more to algorithms than the useful-but-boring recipes you recite for every interview. Th...
hubs.la
I want to fail the build on compiler warnings, but keep the diagnostics warnings as warnings. One option that I've found is to set 'TreatWarningsAsErrors' to true, and set 'CodeAnalysisTreatWarningsAsErrors' to false. Is there a better way? /cc: @jaredpar.bsky.social, @terrajobst.net
New blog post: In 2021 I found an invisible memory leak in a tool (VS Code) that I have never used. Impossible? Easy: randomascii.wordpress.com/2025/10/09/f...
Finding a VS Code Memory Leak
In 2021 I found a huge memory leak in VS code, totalling around 64 GB when I first saw it, but with no actual limit on how high it could go. I found this leak despite two obstacles that should have…
randomascii.wordpress.com
New video on Dissecting the Code YouTube Channel. This time, it's about Parallel Stacks - my very favorite @visualstudio.com feature that you probably are not using enough! I can't even count how many times it helped me production incidents investigations! youtu.be/Z5mN0VCB-KA?...
Parallel Stacks: The best Visual Studio feature for asynchronous and parallel code
YouTube video by Dissecting The Code
youtu.be
Hey #dotnet people. First milestone for Dissecting the Code YouTube channel - 1k subscribers! Thanks a lot everyone for your support and warm feedback that I'm getting!
After a short break I'm back with the new video on Dissecting the Code YouTube channel. This time its all about ConfigureAwait, why we ended up having it and how it works under the hood! #dotnet folks, please share! I'll really appreciate it! youtu.be/RZsLA_R8i9s?...
Dissecting ConfigureAwait in C#
YouTube video by Dissecting The Code
youtu.be
Egor landed yesterday a great document about C# "Unsafe code best practices" https://github.com/dotnet/docs/blob/main/docs/standard/unsafe-code/best-practices.md 📜 Even if you think you know them, it is a good read as a reminder! 😎 #dotnet #csharp
docs/docs/standard/unsafe-code/best-practices.md at main · dotnet/docs
This repository contains .NET Documentation. Contribute to dotnet/docs development by creating an account on GitHub.
github.com
Hey #dotnet folks! Please share latest deep-dive video to spread the knowledge about async internals and tips&tricks on debugging .NET code! Your support means the world! /cc: @scott.hanselman.com, @ardalis.com, @terrajobst.net, @migueldeicaza.bsky.social and every other member of .net community!
Hey guys. Async methods might be scary for some, but they're not that complicated if you can debug the async machinery to understand how they work! This is exactly what I did in the last video - "Let's debug async/await in C#". youtu.be/oHKyzgGjKHQ?...
Hey guys. Async methods might be scary for some, but they're not that complicated if you can debug the async machinery to understand how they work! This is exactly what I did in the last video - "Let's debug async/await in C#". youtu.be/oHKyzgGjKHQ?...
Let's debug async/await in C#!
YouTube video by Dissecting The Code
youtu.be
Hey #dotnet community! Please share and let's simplify the way we deal with resources in .NET! /cc: @migueldeicaza.bsky.social, @scott.hanselman.com and other folks, I love to discuss this topic! You might disagree with my take! But its time to reconsider some old patterns.
Posted another episode on YouTube: "The way Dispose Pattern Should Be Implemented". It’s time to reconsider the Dispose Pattern and abandon Dispose(bool disposing) nonsense. Let’s move to a simpler approach and never mix managed and native resources. youtu.be/E6tQDczhrUM?...
Posted another episode on YouTube: "The way Dispose Pattern Should Be Implemented". It’s time to reconsider the Dispose Pattern and abandon Dispose(bool disposing) nonsense. Let’s move to a simpler approach and never mix managed and native resources. youtu.be/E6tQDczhrUM?...
The way Dispose Pattern should be implemented
YouTube video by Dissecting The Code
youtu.be
Hey @davidfowl.com, @scott.hanselman.com, @jaredpar.bsky.social, @terrajobst.net and other #dotnet community members! Could you please share this tweet about how to unlock most of the C# productivity features even targeting .NET Framework or .netstandard2.0. Appreciate your support!
Posted another episode on YouTube: "Unlocking Modern C# Features Targeting .NET Framework". Quite a few devs limit themselves with C# 7.3 when they target full framework or .netstandard2.0. You still can leverage most of the latest C# features in this case. youtu.be/5eNtdj68qW4?...
Posted another episode on YouTube: "Unlocking Modern C# Features Targeting .NET Framework". Quite a few devs limit themselves with C# 7.3 when they target full framework or .netstandard2.0. You still can leverage most of the latest C# features in this case. youtu.be/5eNtdj68qW4?...
Unlocking Modern C# Features Targeting .NET Framework
YouTube video by Dissecting The Code
youtu.be
How to Find Public Symbols That Can Be Internal Using Roslyn #dotnet #roslyn https://www.meziantou.net/how-to-find-public-symbols-that-can-be-internal-using-roslyn.htm?utm_medium=social&utm_source=bluesky
How to Find Public Symbols That Can Be Internal Using Roslyn - Gérald Barré
Learn how to use Roslyn to analyze your .NET solution and identify public symbols that are only used internally and can be safely changed to internal.
meziantou.net
Hey #dotnet people! Just published another episode on Dissecting the Code channel: How Google Broken the Internet and Why It Took 3 Hours to Recover? It's about null pointer bugs, retry logic and a bit of .NET Aspire used for visualizing the metrics. Please share and sub!
New in MSBuild Structured Log Viewer: Project Reference Graph New tab that shows the project graph layered by project "height". Each project only references projects above it. Clicking a project highlights all directly referenced projects above, and all projects below it that reference this one.
Name all the ways this line can cause a NullReferenceException: if (x == null) { ... }
Hey friends, my YouTube channel is 18 YEARS OLD today! Please like and subscribe ;) youtube.com/shanselman
Scott Hanselman
I'm a teacher. I speak all over to whomever will listen. I have written code that you've likely used. I've been blogging for over a decade and podcasting for about half that. I speak, code, write, emp...
youtube.com
Hey #dotnet people! Just published another episode on Dissecting the Code YouTube channel: “Shooting yourself in a foot with the finalizers”. Crashes due to NullReferenceException, race conditions, constructors that finish before the finalizers, and all the fun stuff! youtu.be/Wh2Zl1d57lo?...
Finalizers are trickier than you might think
YouTube video by Dissecting The Code
youtu.be
TIL about ValueTask.Preserve() helper method that returns a value task that may be used at any point in the future. ValueTasks are tricky and they can't be stored in a field, or awaited multiple times. Preserve "fixes" that by allocating Task<T> under the hood.