Recent Posts

Event Sourcing from the Trenches: Domain Events

4 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there, could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've do...

June 17, 2016

Event Sourcing from the Trenches: Aggregates

3 minute read

While visiting QCon New York this year, I realized that a lot of the architectural problems that were discussed there could benefit from the Event Sourcing architecture style. Since I've been in charge of architecting such a system for several years now, I started to reflect on the work we've don...

June 16, 2016

How to optimize your culture for learning, growth and collaboration

3 minute read

At the first day of QCon New York, I attended several talks and open-spaces that had some relation with culture, be it about improving the efficiency of developers, handling disagreement in respectful way, and creating an environment that embraces the learning experience. For instance, one of th...

June 14, 2016

A Git collaboration workflow that provides feedback early and fast

4 minute read

At Aviva Solutions, we’ve been using Git for a little of over two years now and I can wholeheartedly say that after having worked with TFS for years, we'll never go back… ever. But with any new technology, practice or methodology, you need to go through several cycles before you find a way that w...

June 13, 2016

How to get the best performance out of NHibernate (and when not to use it at all)

9 minute read

Use the right tool for the right problem A very common sentiment I'm getting from the .NET community is the aversion against object-relational mappers like NHibernate and Entity Framework. Granted, if I could, I would use an (embeddable) NoSQL solution like RavenDB myself. They remove the object-...

June 9, 2016

The magic of hiding your NuGet dependencies

4 minute read

Welcome to the dependency hell While working on a little open-source demo project, I ran into that well-known challenge of NuGet dependency management again. This little project results in a NuGet package, that on itself also relies on other packages. Now, if I would just add those dependencies ...

May 24, 2016

The definitive guide to extending Fluent Assertions

10 minute read

Some background In my recent post about the responsibilities of an open-source developer I said that the author of an open-source project is fully entitled to reject a contribution. In the case of Fluent Assertions, this is no different. Some things just aren't a good fit for a general purpose a...

May 4, 2016

To DRY or not to DRY, it is a matter of boundaries

4 minute read

For a very VERY long time I've been convinced that aggressively refactoring your code in such a way that every piece of logic is repeated only once is a good thing. This practice, often referred to as DRY, or Don't Repeat Yourself, has been one of the many of my tools of choice and goes hand in h...

April 13, 2016

Why software innovation is not a free pass for doing whatever you want

3 minute read

Somebody on Twitter recently posed the question whether innovation in software and agile development can co-exist or not. To remove any misinterpretation - something quite common for Twitter discussion - I asked him to clarify what he meant with the word 'innovation'. In short, any kind of softwa...

April 3, 2016

The responsibilities of an open-source developer

4 minute read

The proudest moment anybody initiating an open-source project can experience is when that project finally gains the momentum to make a difference within the community it targets. When my colleague Martin and I published the first release of Fluent Assertions on CodePlex in 2011 (yeah, those were ...

March 24, 2016