Image by Pexels from Pixabay

Last week during a one on one meeting, someone — let’s call them Sam — mentioned a situation in which they had given harsh criticism in a public forum. The criticism wasn’t unconstructive, but it read to me like “you’ve got this all wrong” in a few hundred words. Inside the criticism, Sam did offer to spend time in a follow-up in-person, which I think was a good choice, but the effect of the feedback was sharp. …


Concrete Stairs with Rainbow Colors Painted on them
Concrete Stairs with Rainbow Colors Painted on them
Photo by George Becker from Pexels

My first real job in programming started on July 5th, 2007, which means I have just over twelve years of experience as I write this. It’s a lot more than nothing, but probably not much more than something. Ten years seems to be about the right amount of time to get good at something, though some amount of natural talent or sheer drive can make it go faster. But growth is not as simple as waiting it out and talent does not supersede the need for experience.

Players get to that intermediate level where they can already play pretty good…


A set of tools on a table
A set of tools on a table
Photo by Pixabay from Pexels

API design sits on a distinguished shelf in my brain. To its left is functional programming in the large and to its right is UI menu design. This shelf is the shelf of contentious things with no right answers. It’s the shelf of someone starting a sentence with “in the real world,” of toy examples, and longing gazes at the work of overfunded startups on their way to acquihire. It’s a shelf filled with hard problems that we have neither the wisdom nor the language to solve.

While I was working at Bronto Software, the architecture team I was leading…


Destroyed ruins in italy
Destroyed ruins in italy
Photo by Skitterphoto from Pexels

Most teams I work with exhibit outward signs of health like collaboration, positive reinforcement amongst peers, and resilience to change. Where those teams consistently fall apart is trust. Positive reinforcement is not a substitute for trust. Trust encourages innovative thinking and outcomes greater than an individual’s own capabilities. When a group develops trust, they can go past positive reinforcement and deliver critique.

Architectural reviews are a form of collaborative critique. The author and reviewers work together to gather the required implementation information and contextualize it within the larger desired outcomes. The work of the reviewers is to answer three questions:


Image by Pexels from Pixabay

Over the weekend, a small storm brewed on twitter: #queuegate. Rick Branson did some thought leader-ing and Tim Bray responded on his blog. It mostly looked like two people talking way past each other, but there is a kernel of truth in what each are pointing out. I’ve spent a good bit of time in the past year thinking about when and how to use queues — informed by a little theory, a little reading, and a lot of building systems with queues and watching how they fail. …

Pat Shields

Architecture line cook, business naïveté and a pathological desire to run towards fires. Chief Architect @ CircleCI

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store