Sergiy Teplyakov

Sergiy Teplyakov

@steplyakov.bsky.social

Software Engineer at MSFT. Opinions are my own.

320 followers49 following92 posts

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

I'm super happy to announce that, after 4 months working on it, my course Mastering C# is now live on Dometrain! The internals of records, structs, classes, union types, pattern matching, LINQ and much more: all covered in 3+ hours of advanced content. #dotnet #csharp

Sergiy Teplyakov reposted

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:

I've seen cases when the application code was filled with it "to improve performance" or "to avoid deadlocks". And it was very hard to convince that this is not how ConfigureAwait should be used. In this video I'm covering why we have ConfigureAwait in the first place and how to use it correctly.

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

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!

Sergiy Teplyakov reposted

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

hubs.laFabulous Adventures in Data Structures and Algorithms - Eric LippertAuthor 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...

Sergiy Teplyakov reposted

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!

Sergiy Teplyakov@steplyakov.bsky.social

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

Sergiy Teplyakov@steplyakov.bsky.social

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

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!

Sergiy Teplyakov@steplyakov.bsky.social

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

Sergiy Teplyakov reposted

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!

Sergiy Teplyakov reposted

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.

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.