Sergiy Teplyakov
steplyakov.bsky.social
Sergiy Teplyakov
@steplyakov.bsky.social
Software Engineer at MSFT. Opinions are my own.
Pinned
Hey #dotnet people! I've launched my YouTube channel: "Dissecting the Code".

It's going to be very similar to my blog with a lot of deep dives into #dotnet, #csharp etc.

I've already published the first two videos:
➡️ Episode 0: What You'll Learn Here
➡️ Episode 1: Dissecting Variable Lifetime
Reposted by Sergiy Teplyakov
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
October 30, 2025 at 4:39 PM
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
October 23, 2025 at 1:42 PM
Reposted by Sergiy Teplyakov
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
October 9, 2025 at 8:27 PM
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
October 8, 2025 at 9:07 PM
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!
October 6, 2025 at 2:51 PM
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
October 2, 2025 at 6:40 PM
Reposted by Sergiy Teplyakov
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
September 19, 2025 at 9:24 AM
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?...
Let's debug async/await in C#!
YouTube video by Dissecting The Code
youtu.be
July 23, 2025 at 9:30 PM
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
July 23, 2025 at 9:20 PM
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?...
The way Dispose Pattern should be implemented
YouTube video by Dissecting The Code
youtu.be
July 11, 2025 at 5:59 PM
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
July 11, 2025 at 5:53 PM
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?...
Unlocking Modern C# Features Targeting .NET Framework
YouTube video by Dissecting The Code
youtu.be
July 3, 2025 at 9:06 PM
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
July 3, 2025 at 9:03 PM
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!
June 26, 2025 at 7:57 PM
Reposted by Sergiy Teplyakov
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.
June 21, 2025 at 2:33 AM
Reposted by Sergiy Teplyakov
June 21, 2025 at 7:44 AM
Reposted by Sergiy Teplyakov
Name all the ways this line can cause a NullReferenceException:

if (x == null)
{
...
}
June 20, 2025 at 8:53 PM
Reposted by Sergiy Teplyakov
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
June 20, 2025 at 3:21 PM
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
June 20, 2025 at 4:00 AM
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.
June 19, 2025 at 9:03 PM
New video: Managing Native Resources in .NET.

Have you ever think, why we’re not using a struct for managing resources? It should be more efficient, right? Icover what will happen and why we should use the building blocks like SafeHandle.

#dotnet

youtu.be/DUgtC0OZMtA
Managing Native Resource in NET
YouTube video by Dissecting The Code
youtu.be
June 12, 2025 at 3:41 PM
Hey #dotnet folks.
Do you ever used (or needed) a debug version of a nuget package? The package has only the managed library, no native code, no executables.

Is there a use case for that?
June 9, 2025 at 4:49 PM
Hey #dotnet and other folks.

Another quite exciting news: I've been mentoring colleges at MSFT for quite some time and now I'm available as a mentor at mentor.sh platform.

Here is my profile: mentor.sh/mentors/Serg...
Will be happy to be your mentor and learn from each other!
./mentor.sh - Mentorship platform
Empowering mentors and mentees to build meaningful relationships and accelerate personal and professional growth.
mentor.sh
June 9, 2025 at 4:46 PM
Hey #dotnet people:)
Just published another episode on Dissecting the Code YouTube channel - "Can Tiered Compilation Cause Memory Leaks in .NET".

This video is about a change in behavior between full framework on .net 9 in respect to GCInfo and how it affect memory usage.
June 6, 2025 at 9:13 PM