How expensive is throwing exceptions in .NET - and does it actually matter?

If you’ve been developing in .NET for a while, you’ve probably come across the Result type: an error-as-value representation of either success or failure, often modeled as a discriminated union in languages that support them directly. Developers working with functional programming languages typically take discriminated unions for granted, using them extensively during their work. In contrast, developers using object-oriented languages such as C# are often introduced to Result types as another programming pattern that can be used instead of exceptions. ...

September 7, 2026 · 14 min · Jan Kliszcz

Cocker: The Docker CLI Wrapper Nobody Asked For

Developers like to pretend we write code with precision and intention. Reality check: half of software engineering is fixing things caused by our own mistakes. For years, my most frequent typo has been typing cocker instead of docker. At first I shrugged it off. Then I started getting irrationally angry about it. And then came the moment every engineer knows too well: Okay, I can’t fix the root problem… so I’ll build an overengineered workaround. ...

December 8, 2025 · 2 min · Jan Kliszcz

Effortless Selenium Setups in Docker for .NET with Selenium Manager

I’ve been using Selenium in my projects for automation, web scraping and even for some minor workarounds not related to website navigation at all. However, because I’ve been usually deploying my .NET apps using Docker containers, I had to overcome some obstacles. In this article, I’ll share my experiences, from handling dependencies and image sizes to navigating versioning challenges. We’ll also explore Selenium Manager’s latest features and its game-changing impact on Selenium + Docker + .NET integration. ...

October 29, 2023 · 8 min · Jan Kliszcz