Sergiy Teplyakov's Avatar

Sergiy Teplyakov

@steplyakov.bsky.social

Software Engineer at MSFT. Opinions are my own.

315 Followers  |  46 Following  |  74 Posts  |  Joined: 06.12.2024  |  1.849

Latest posts by steplyakov.bsky.social on Bluesky

Preview
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...

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. :)

30.10.2025 16:39 β€” πŸ‘ 43    πŸ” 17    πŸ’¬ 5    πŸ“Œ 0

Yep. But this is something that I've figured out just earlier today.
Was hoping for something in .editorconfig: `dotnet_diagnostics.category-Compiler.severity = error'. But I don't think that's available.
The point is that its a roundabout way to achieving this. And not easy to find.

23.10.2025 14:55 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

its a bit too much :). I would definitely prefer one liner.
My option is two liners which is ok, but requires directory.build.props. I'm surprised that it's seems impossible to do that in one line in .editorconfig.

23.10.2025 14:13 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Correction: I want to keep static analysis warnings as warnings.

23.10.2025 13:44 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

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

23.10.2025 13:42 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
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…

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...

09.10.2025 20:27 β€” πŸ‘ 53    πŸ” 15    πŸ’¬ 1    πŸ“Œ 0

As always, I'll appreciate the feedback and I would love if you share the video with your network! It means a lot to me!

/cc: @visualstudio.com, @migueldeicaza.bsky.social, @rephuffman.bsky.social, @scott.hanselman.com, @davidfowl.com

08.10.2025 21:07 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Parallel Stacks: The best Visual Studio feature for asynchronous and parallel code
YouTube video by Dissecting The Code Parallel Stacks: The best Visual Studio feature for asynchronous and parallel code

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?...

08.10.2025 21:07 β€” πŸ‘ 2    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
Preview
Dissecting The Code Dissecting the Code is a channel for developers who want to master .NET from the inside out. If you're tired of surface-level tutorials and want to truly understand what’s happening under the hood, y...

And if by any chance you haven't subscribed yet, here is the link to the channel ;)

www.youtube.com/@DissectingT...

06.10.2025 14:51 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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!

06.10.2025 14:51 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

Oh! They use a custom taskscheduler for that. Interesting!

02.10.2025 21:14 β€” πŸ‘ 1    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0

/cc: @migueldeicaza.bsky.social, @terrajobst.net, @scott.hanselman.com, @visualstudio.com, @damianedwards.com and other. I would really appreciate if you'll share the link!

02.10.2025 18:40 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Dissecting ConfigureAwait in C#
YouTube video by Dissecting The Code Dissecting ConfigureAwait in C#

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?...

02.10.2025 18:40 β€” πŸ‘ 11    πŸ” 5    πŸ’¬ 2    πŸ“Œ 0
Preview
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.

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

19.09.2025 09:24 β€” πŸ‘ 8    πŸ” 6    πŸ’¬ 0    πŸ“Œ 0

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!

23.07.2025 21:30 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Let's debug async/await in C#!
YouTube video by Dissecting The Code Let's debug async/await in C#!

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?...

23.07.2025 21:20 β€” πŸ‘ 13    πŸ” 3    πŸ’¬ 0    πŸ“Œ 1

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.

11.07.2025 17:59 β€” πŸ‘ 3    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
The way Dispose Pattern should be implemented
YouTube video by Dissecting The Code The way Dispose Pattern should be implemented

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?...

11.07.2025 17:52 β€” πŸ‘ 6    πŸ” 1    πŸ’¬ 0    πŸ“Œ 1

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!

03.07.2025 21:06 β€” πŸ‘ 7    πŸ” 2    πŸ’¬ 0    πŸ“Œ 0
Unlocking Modern C# Features Targeting .NET Framework
YouTube video by Dissecting The Code Unlocking Modern C# Features Targeting .NET Framework

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?...

03.07.2025 21:03 β€” πŸ‘ 9    πŸ” 5    πŸ’¬ 1    πŸ“Œ 2
Preview
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.

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

01.07.2025 14:35 β€” πŸ‘ 4    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0
How Google Broke The Internet and Why It took 3 hours to recover? (feat. .NET Aspire)
YouTube video by Dissecting The Code How Google Broke The Internet and Why It took 3 hours to recover? (feat. .NET Aspire)

The link to the video:
youtu.be/mAPKDtnpRBU?...

It was fun and easy using .NET Aspire for orchestration and visualization!

/cc: @migueldeicaza.bsky.social, @davidfowl.com, @scott.hanselman.com

26.06.2025 19:57 β€” πŸ‘ 2    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0
Post image

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!

26.06.2025 19:57 β€” πŸ‘ 3    πŸ” 1    πŸ’¬ 1    πŸ“Œ 0
many rows of multiple rectangles per row, each rectangle is the project name, some rectangles are bigger and bluer (they are referenced more). One rectangle is selected and green, it has outgoing arrows above it that point to other rectangles, with purple border. Those are the referenced projects. Arrows also go down, to rectangles with green borders. Those are projects that reference the selected one.

many rows of multiple rectangles per row, each rectangle is the project name, some rectangles are bigger and bluer (they are referenced more). One rectangle is selected and green, it has outgoing arrows above it that point to other rectangles, with purple border. Those are the referenced projects. Arrows also go down, to rectangles with green borders. Those are projects that reference the selected one.

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.

21.06.2025 02:33 β€” πŸ‘ 33    πŸ” 8    πŸ’¬ 1    πŸ“Œ 1

try ref12.io/net472

21.06.2025 07:44 β€” πŸ‘ 7    πŸ” 2    πŸ’¬ 1    πŸ“Œ 0

True

20.06.2025 23:06 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

Name all the ways this line can cause a NullReferenceException:

if (x == null)
{
...
}

20.06.2025 20:53 β€” πŸ‘ 8    πŸ” 3    πŸ’¬ 7    πŸ“Œ 0

X is a field and β€˜this’ pointer is null.
Operator == is overloaded and throws.

20.06.2025 23:00 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 1    πŸ“Œ 0
Preview
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...

Hey friends, my YouTube channel is 18 YEARS OLD today! Please like and subscribe ;) youtube.com/shanselman

20.06.2025 15:21 β€” πŸ‘ 169    πŸ” 11    πŸ’¬ 8    πŸ“Œ 0

Thanks a lot, Tomasz!

20.06.2025 16:14 β€” πŸ‘ 0    πŸ” 0    πŸ’¬ 0    πŸ“Œ 0

@steplyakov is following 20 prominent accounts