Naming is hard: choosing a C# Dictionary
A crisp decision flow for Dictionary, FrozenDictionary, ImmutableDictionary, ConcurrentDictionary, ReadOnlyDictionary, and friends.
Posted by
Wouter van Ranst
on June 14, 2026 ·
10 mins read
Arius 7 and Spec-Driven Development at scale: a failure mode
A follow-up on what spec-driven development got right, where it failed, and why domain judgment still matters.
Posted by
Wouter van Ranst
on June 11, 2026 ·
14 mins read
The Coaching Habit (Book)
A concise summary of the book's seven coaching questions and why they beat reflexive advice-giving.
Posted by
Wouter van Ranst
on March 18, 2026 ·
4 mins read
Coaching with Context: Applying Situational Leadership in 1-on-1s
Situational Leadership gives coaches a practical way to adapt 1-on-1s to the coachee's readiness.
Posted by
Wouter van Ranst
on March 09, 2026 ·
14 mins read
Classic Problems Have Classic Solutions
TRIZ shows that many hard problems reduce to recurring contradictions with recurring solution patterns.
Posted by
Wouter van Ranst
on March 05, 2026 ·
4 mins read
Who's Got The Monkey
A short, modern retelling of the classic delegation essay about keeping the next action with the right person.
Posted by
Wouter van Ranst
on February 26, 2026 ·
5 mins read
The Ackoff Lectures: A Blog Series on Systems Thinking, Management, and the World We're Building
An eight-part introduction to Russell Ackoff's lectures on the shift from the Machine Age to the Systems Age and what that change demands of management, planning, organisations, and education.
Posted by
Wouter van Ranst
on February 25, 2026 ·
91 mins read
Developing Arius 5 during the dawn of AI assisted code
A reflection on rewriting Arius with modern .NET practices and on how copy-paste AI help evolved into full coding-agent workflows.
Posted by
Wouter van Ranst
on November 06, 2025 ·
12 mins read
Modern .NET Configuration Practices (Talk Summary)
A practical summary of modern .NET configuration: typed settings, secure secret handling, and deployment-friendly configuration for cloud and containerized apps.
Posted by
Wouter van Ranst
on November 05, 2025 ·
12 mins read
Choose Boring Technology
"Boring" technology is not a lack of ambition, but a deliberate way to spend your innovation tokens where they matter most.
Posted by
Wouter van Ranst
on June 11, 2025 ·
5 mins read
Validating Dependency Injection
Two small DI container settings that catch scoped-lifetime mistakes and registration errors at startup instead of in production.
Posted by
Wouter van Ranst
on March 21, 2025 ·
1 min read
Understanding High CPU and Memory Usage: When to Act and When to Relax
High CPU or memory usage is not automatically bad; in well-sized cloud systems, it can be either a warning sign or proof you’re using resources well.
Posted by
Wouter van Ranst
on February 10, 2025 ·
5 mins read
Future-proofing Result Libraries
A practical look at today’s .NET `Result` libraries through the lens of future C# type unions and eventual refactoring cost.
Posted by
Wouter van Ranst
on February 08, 2025 ·
10 mins read
Monkeys, bananas and WHY
A short anecdote about how teams keep repeating practices long after everyone has forgotten why they started.
Posted by
Wouter van Ranst
on February 07, 2025 ·
1 min read
Transitive Dependencies Gone Wild: Why Your .NET Microservice Isn’t Running What You Think
In .NET, a downstream team’s NuGet upgrade can silently decide which version your microservice actually runs in production.
Posted by
Wouter van Ranst
on January 27, 2025 ·
6 mins read
Implementing Centralized Package Management
The quickest way to roll out Centralized Package Management in an existing .NET solution.
Posted by
Wouter van Ranst
on January 17, 2025 ·
1 min read
From Layers to Rings – Hexagonal Architectures Explained (by Silas Graffy)
Why layered architectures tend to decay, and how hexagonal, onion, and clean architecture keep business logic at the center.
Posted by
Wouter van Ranst
on January 12, 2025 ·
8 mins read
Exploring options for building REST APIs with C# and deploying to Azure
A practical comparison of the main ways to build REST APIs in .NET and the Azure hosting options that fit them best.
Posted by
Wouter van Ranst
on January 09, 2025 ·
10 mins read
David Deutsch on (un)sustainability & climate optimism
David Deutsch argues that societies collapse not because they run out of resources, but because they stop creating the knowledge needed to solve new problems.
Posted by
Wouter van Ranst
on January 07, 2025 ·
8 mins read
Frequently Overlooked Architectural Characteristics (Video Review)
A concise review of the quality attributes architects most often miss, from feasibility and observability to agility and modularity.
Posted by
Wouter van Ranst
on January 05, 2025 ·
2 mins read
You will be assimilated: Microsoft implementations of formerly popular OSS libraries
A quick summary of popular .NET OSS libraries that now have, or soon may have, first-party Microsoft alternatives.
Posted by
Wouter van Ranst
on January 05, 2025 ·
1 min read
Records and Interfaces: Here Be Dragons
Records give you value-based equality in C#, but that story changes in subtle ways once interfaces enter the picture.
Posted by
Wouter van Ranst
on September 15, 2024 ·
7 mins read
Smart cleanup of unused references
In large, long-lived .NET solutions, unused references accumulate quietly, and removing them safely means understanding transitive dependencies.
Posted by
Wouter van Ranst
on September 06, 2024 ·
1 min read
Eagerly consuming a collection of completing Tasks
How to process a collection of `Task`s in the order they complete instead of the order they were added.
Posted by
Wouter van Ranst
on September 05, 2024 ·
8 mins read
Optimal usage of Global Usings
How to identify your most common namespaces and generate sensible `GlobalUsings.cs` files across a large .NET solution.
Posted by
Wouter van Ranst
on September 04, 2024 ·
6 mins read
Adding a CorrelationId for Exceptions for Application Insights (DRAFT)
How to return the right correlation ID from an ASP.NET Core API exception and line it up with Application Insights `OperationId`.
Posted by
Wouter van Ranst
on July 08, 2024 ·
6 mins read
Overriding Application Insights log levels
How to remove Application Insights’ default logging filter so your configured log levels actually take effect.
Posted by
Wouter van Ranst
on March 04, 2024 ·
2 mins read
Value Objects in C# - Part 2
A practical guide to choosing between `set`, `init`, `get`, and `required` when designing C# value objects.
Posted by
Wouter van Ranst
on February 14, 2024 ·
5 mins read
Choosing a CosmosDB Consistency Level
A practical guide to finding the right middle ground between freshness, ordering, latency, and availability in Cosmos DB.
Posted by
Wouter van Ranst
on February 09, 2024 ·
3 mins read
Value Objects in C# - Part 1
Choosing between `class` and `record` for value objects means trading off mutability, equality semantics, inheritance, and copying behavior.
Posted by
Wouter van Ranst
on February 09, 2024 ·
5 mins read
C# String Comparison Explained
A practical guide to choosing the right C# string comparison mode for culture-sensitive, case-insensitive, and internal comparisons.
Posted by
Wouter van Ranst
on February 06, 2024 ·
3 mins read
Sentix Long Term Investor Trends
A longer-term look at the Sentix Index and the major crises and recoveries that shaped investor sentiment.
Posted by
Wouter van Ranst
on January 16, 2024 ·
3 mins read
Getting Non-Functional Requirements from Business People
A set of conversation starters to help business stakeholders express the quality attributes that will drive architecture and cost.
Posted by
Wouter van Ranst
on January 15, 2024 ·
5 mins read