Welcome

I'm a backend developer focused on building highly scalable distributed systems. I write about javascript, software architecture, building distributed teams & organizations, remote work, and lifestyle in tech.


Skip Your Next Meeting With These Simple Alternatives

Skip Your Next Meeting With These Simple Alternatives

12/26/2019
A new feature was due before a code freeze days before Christmas. We’d committed to a release before the end of the year and the project was…
Understanding the “Repository Pattern”

Understanding the “Repository Pattern”

10/27/2019
The “repository” is a heavily overloaded term within software engineering, so its important to understand repository as an in memory…
Using the “Selectors” design pattern in Node.js

Using the “Selectors” design pattern in Node.js

10/1/2019
As the back-end development world evolves — particularly the Node.js ecosystem — functional decomposition has become an essential strategy…
Building a N-Tier Express App using Dependency Injection

Building a N-Tier Express App using Dependency Injection

1/30/2019
This article assumes that you are already familiar with developing node applications with express and mongo. The aim is to take an existing…
Why Classes are better than Closures

Why Classes are better than Closures

11/21/2018
Classes in JavaScript received a ton of flak by the javascript community when they first came out, but for no good reason. They provide…
You’re not going to replay your event stream

You’re not going to replay your event stream

11/19/2018
One of the selling points of Event Sourcing is this idea of the re-playable event stream. There’s plenty of literature around why event…
Documenting Your Node.js API painlessly with Swagger & Doctopus

Documenting Your Node.js API painlessly with Swagger & Doctopus

11/14/2018
In this article i’m going to show you how to take the pain out of documenting your Node API using Swagger, and take it a step further by…
Using Promises with Express

Using Promises with Express

11/1/2018
A colleague the other day introduced a handy snippet of code enabling async await usage within express route handlers and asked my opinion…
How to migrate data when building micro services

How to migrate data when building micro services

10/27/2018
When you have a big ball of mud monolith and you get this crazy idea to try building micro services, where do you start? You have users…
Why microservices shouldn’t share a database

Why microservices shouldn’t share a database

10/27/2018
So you want to build a new micro service, huh? Just spin up a new process, connect to the database and you’re off on your way! Easy. Six…
Service Oriented Architecture in Client Side Development

Service Oriented Architecture in Client Side Development

12/30/2017
When starting new projects very often developers use starter kits, generators, or boilerplate templates to kick off new projects which focus…
Strategy Pattern: Encapsulating Actions

Strategy Pattern: Encapsulating Actions

12/6/2016
Introduction Very often when writing code you hack some implementation of some business logic together and find yourself needing to either…
Dependency Injection

Dependency Injection

12/5/2016
Introduction Overview Dependency Injection (DI) is one of those concepts that has a really intimidating name but once you get to know it, it…