Shawn McCool

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 easier to believe . . .

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 typing for more than 8 . . .

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.

This is a draft article.

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 of a module are . . .

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 Verraes' blog post "Sensible . . .

Read More

June 29, 2015

Designing a Model Architecture Talk

Given at SOLIDay 2015

I was happy to be invited to speak in Serbia at the SOLIDay 2015 conference. I decided to deliver a talk that was a modification of some talks I've given previously. I am still quite partial to the ideas in this talk and I was happy to have a chance to tweak the talk a bit here and there.

The talk is about designing multilayered . . .

Read More

June 29, 2015