Karel Zikmund

Information & Communications Technology

.NET OpenSource .net core .NET Standard Visual Studio / .NET .net framework

Redmond, United States

Karel Zikmund

.NET team in Microsoft - Software Engineering Manager

Karel is on .NET team since 2005:
• Started as developer on Runtime/CLR components (7 years).
• Manager of reliability and performance team (incl. Quick Response Team) (3 years).
• Manager of .NET Native toolchain team (1 year).
• Now in the roles of community manager of CoreFX repo and manager of a few CoreFX/BCL areas like Networking (3 years).
Details: https://karelz.github.io

Current sessions

War stories from .NET team

Expect deep dive into a few interesting investigations we faced on .NET team in the last decade.
War stories about:
• Investigations spanning years,
• Dormant bugs coming to life after a decade,
• Root-causes leading to surprising places,
• How we rooted-cause problems with minimal information available,
• Shocking impact of bugs on real world.

We will also cover:
• Root-causing HW bugs (avoid the one-machine problem),
• The value and art of minimal repro,
• Innovation and compatibility - the age-old rivals.

Duration: 30-60 min (variable content)

NDC Oslo 2019: https://www.youtube.com/watch?v=ntGBRi_I3MM&t=48s


Challenges of Managing CoreFX repo

.NET Core's CoreFX repo is a large repo with unique challenges to handle bugs, contributions, triage issues, etc. Its size is a challenge to monitor due to high traffic.
The talk will explore some of the key challenges our team encountered and how we handle them.

We will cover:
• Distributed monitoring model (per-area responsibility),
• Data-driven decisions for porting APIs from .NET Framework,
• Responding to new API proposals,
• Why sometimes you say NO to perf improvements,
How being open-source is shifting our engineering culture and interaction with customers.

Duration: 30-60 min
Presented at:
* DotNext Moscow 2017
* .NET Fringe 2017
* .NET MeetUps in Europe 2017 (Amsterdam, Prague, Brno)
See: https://karelz.github.io/details


.NET Core Networking stack evolution to high-performance

Architecture of .NET Core client-side networking stack focused on portability and performance.
Sharing with server-side networking stack (Kestrel).

The talk will cover:
• Evolution of networking client-stack from .NET Framework to .NET Core 2.1,
• Design goals of the new high-performance networking client-stack (SocketsHttpHandler),
• .NET Core 3.0 roadmap for client-stack (HTTP/2) and beyond,
• Performance goals and strategy,
General CoreFX/BCL performance goals.

Duration: 30-60 min
Early version presented at DotNext 2017 Moscow - https://karelz.github.io/details


Async demystified

Do you struggle to fully understand async in C#? How it works and why?
I did. So I asked the best - the author of async, Stephen Toub. This talk is summary of the most interesting insights from him that helped me finally truly understand the magic behind async.

The talk will cover:
* History and evolution of asynchronous programming patterns in C# and their problems. Leading to async and demonstrating the "why" behind its design choices.
* Touch on the "how" it works behind the scenes.
* Reasons for customizing and hyper-optimizing async for high-performance (like Networking stack).
* Touch on related building block - ThreadPool.
* Hands on sync-over-async pattern and associated problems. Workarounds in your code if you hit it. Potential solutions in future .NET versions.

Duration: 45-60 min (talk in making)

Accepted to NDC Sydney 2019