Category Archives: Design

CQRS applied

In this post I have discussed CQRS, an architectural pattern from a high level perspective. CQRS is one of my favorite patterns when it comes to complex line of business applications. Let’s discuss CQRS on a specific sample. Imagine we … Continue reading 


Combating the lava-layer anti-pattern with rolling refactoring

Mike Hadlow blogged about the lava-layer anti-pattern, describing, which I have ranted about in nearly every talk I do, the nefarious issue of opinionated but lazy tech leads introducing new concepts into a system but never really seeing the idea … Continue reading 


Tackling cross-cutting concerns with a mediator pipeline

Originally posted on the Skills Matter website In most of the projects I’ve worked on in the last several years, I’ve put in place a mediator to manage the delivery of messages to handlers. I’ve covered the motivation behind such … Continue reading 


Put your controllers on a diet: GETs and queries

Previous posts in this series: Redux Defactoring A survey In the last post, we surveyed the field to determine the path forward. Looking at our controller (and others), our controllers aren’t too messy, but they’re well on their way. On … Continue reading 


Group By Count With MongoDB And MongooseJS

In my last post about reports, I showed a simple script that gave me a count of customers. I used a similar query in SignalLeaf to give me the count of listens / downloads for episodes, too. This gave me … Continue reading 


Put your controllers on a diet: a survey

Previous posts in this series: Redux Defactoring In the last post, I removed all the abstractions and layers from my application in order to provide a better view on what my next steps should be. This is like climbing to … Continue reading 


Evolutionary architecture boundaries

At Headspring, we’re fairly obstinate in our approach in evolving a system’s design and architecture over time. As a consulting company, we get to see a LOT of different codebases, and while it may be selection bias, we are generally … Continue reading 


Curbing long tail design

One of the perks of my job (and talking to a lot of folks) is that I get to see a lot of people’s actual code. Not gists, blog examples, or GitHub playgrounds, but real, actual, production code. Some code … Continue reading 


Tip to become a successful software engineer.

This post is a follow up to Derick’s great post. I could not agree with his view point any more., but it struck a chord with me.  There is more to it. To actually call yourself a software engineer you … Continue reading 

| Leave a comment

Is ThreadStatic a leaky abstraction?

Reading Ayende’s post on integrating Rhino Service Bus and RavenDB, one thing that caught my eye was the use of the ThreadStatic attribute to control the lifecycle of a private field: One of the things that really bothers me about … Continue reading