Shawn McCool

Avoiding Unified Data Models

a talk about boundaries in architecture

Recently at the Dutch PHP Conference (DPC) I gave a talk on architectural boundaries.

I target Laravel developers as an audience and use some Laravel syntax. But the talk is not about Laravel and it doesn't require any prerequisite knowledge at all.

The talk is purely about architecture.

Read More

August 13, 2018

Social Media Extremism

becoming our ugliest selves

On social media voices carry and extreme voices carry the most.

We're exposed to much more extremism than we would normally be exposed to. It's natural to react to extreme positions by forming extreme positions.

We see some ridiculous thing that someone does in the name of civil rights and it becomes a little bit . . .

Read More

December 13, 2017

More Relaxed Typing with DVORAK

Excel at your most frequent activity.

Human Interface

In high-school I maxed out at 125 words per minute on a QWERTY keyboard. It didn't cross my mind that there were alternatives for another 10 years. I remained locked at that typing speed, using the same typing techniques that I nurtured as a child.

After some reflection, I concluded that I was often . . .

Read More

August 06, 2016

Event Sourcery

Introduction to DDD, CQRS, and Event Sourcing.

A few years ago, my associate Mitchell van Wijngaarden and I were looking for some techniques for handling an increasing amount of complexity in some of our applications. We ended up discovering Domain-Driven Design and interfacing with that community. This led us through a process that significantly improved both of us as developers and . . .

Read More

July 20, 2016


A comprehensive look at and around the pattern.

The Goal

The goal of this post is to contain as much information related to the ActiveRecord pattern as possible.

My motivation is in the fact that I've found it difficult to engage developers in analysis of this pattern due to political factors.

Do you want me to update something? Post in the comments and . . .

Read More

February 23, 2016

Domain Modeling

What is a Domain?

Software modules operate against a context. That context may be the rendering of windows, the construction of HTTP responses, database persistence, or the definition of business requirements.

The context of the problem in which a module is designed as a solution is called the domain. All applicable contexts . . .

Read More

February 23, 2016

A Talk About Naming Things Talk

given at DPC 2015's uncon track

This is a talk that Mitchell van Wijngaarden and I hastily created for the Dutch PHP Conference 2015 uncon track.

It's a talk about some gripes that we have with the way that much of our culture approaches naming and organizing things.

Please feel free to post any comments below.

Read Mathias . . .

Read More

June 29, 2015