Recent posts

Union Types in C#

15 August 2026

For a long time in C# we got really good at modeling what things are, but we’re still not that good at modeling what things can’t be.

This will change, as a long awaited feature in C# is arriving with .NET 11 and C# 15.

This feature isn’t just syntactic sugar, it actually changes how we model data, and will let the compiler enforces more correctness.

This is going to be an introduction to look at what union types solve, and what they help with. Note that the article reflects the current preview syntax and behavior.

Read more →


SSE vs SignalR: choosing the right real-time tool in .NET 10

01 August 2026

In modern applications, and for a long time now, real-time communication between clients and servers has been very important. It’s used in streaming, dashboards, notifications, and many more features.

In .NET, we have many options: we can either use the SignalR library to achieve this, or rely on the newly introduced native support for server-sent events (SSE) in ASP.NET Core 10.

Choosing which one to use isn’t that hard; it really depends on what your application needs. Is it one-way communication, or two-way communication? Let’s explore the difference between the two, and where each one shines best.

We’ll look at what SSE is and how to create a basic implementation with it, as well as what SignalR is and how to create a basic implementation with it. Later on, in a future post, we’ll dive deeper into both of them to see how we can utilize most of their features.

Read more →


Estimates: Science, Art, or Educated Guess?

23 July 2026

In my experience, many experienced developers still struggle with estimates. The reason is different for each team, but the outcome is usually the same: if estimates are not handled well, misunderstandings happen between teams and management. Developers might be seen as struggling to complete a sprint, or the opposite, it might look like they don’t have enough to do.

This is my personal opinion based on what I’ve seen in projects. It’s not a universal truth, and different teams can absolutely succeed with different approaches. But these are the pitfalls I keep seeing, and what helped us get better.

Read more →


Two Real-World Performance Incidents and How We Solved Them

16 July 2026

We all face performance issues at some point: a long-running process, a process that never finishes, or workflows that silently fail under load.

In this article, I share two challenges I faced with one of my clients, the solutions we implemented, and what I learned from both incidents.

Read more →


Builder Pattern

08 July 2026

We previously discussed one of the structural software design patterns: the Decorator Pattern. Today, we’re diving into another well‑known pattern, one of the creational one, called the Builder pattern.

Read more →



➡️ Browse all posts