Architecture

17 articles · all categories

August 2025

Quick tips for distributed event-based systems

Hidden lessons painfully learned over the years.

May 2025

Software architecture IS Conway's Law

Can you even have architecture before there's a team?

February 2025

I was wrong about databases

The best part about writing is that you get to learn new and exciting ways you were wrong. Databases are smarter than I thought!

*Why* the relational data model is so good

You've heard that array or list columns in a database are bad. But why? Yesterday it clicked for me

December 2024

Atoms, molecules, organisms

Here it is: 20+ years of programming experience distilled into 378 words. From the book I'm writing.

August 2024

What helps you ship confidently?

Been thinking about what needs to be in place for engineers to ship with confidence

July 2024

Why SQL is Forever

Never underestimate the power of good marketing for bad products. NoSQL was fun but SQL is here to stay.

August 2023

Avoid spooky action at a distance

Shared state in programming isn't the enemy, it's unclear dependencies that tangle your code. Keep it clean with explicit state dependencies and strict access guidelines

Finding modules in a Big Ball of Mud with ChatGPT

Detangling a Big Ball of Mud is hard. You have to find domain boundaries where none exist. Looks like AI can help 🤩

Followup answers to Forget complicated code, focus on the system

Why are utility files bad? How do you recognize architectural complexity? What the hell is a transitive dependency?

Forget complicated code, focus on the system

Clean code matters, but it's the architectural complexity that truly impacts your productivity and bug count. Focus on simplifying the system, not just the code.

July 2023

What I learned from Team Topologies

You can't escape Conway's Law. Might as well use it for good.

April 2023

A backend service nobody can grok

a little case study from an upcoming book I'm writing with Manning about software rewrites

Own the outcome, not the work

Efficient problem-solving in engineering with a shift in perspective – focusing on user outcomes can lead to innovative solutions and change your approach to system design.

March 2023

Clever technical hackery can't solve the wrong design

A simple change in perspective can help you overcome complex technical challenges and save time on future projects.

May 2022

What microservices are for

Microservices are a pain in the ass. They turn every system into a byzantine mess of complexity. But this week ... they saved my butt.

February 2021

The Magic Function principle

Write functions, mostly magic.