Software Architecture
41 articles · all categories
Latest Software Architecture articles
August 2026
Agents change the math on big bang migrations
I just did a team's worth of work in 5 days. Honestly I am shook to the core of my 20 YoE
July 2026
How to be useful as a software architect
Software architects have a weird role: Think about the code _tomorrow_. Today's code is what it is, how do we make it good tomorrow? Without slowing down, losing business, or falling off a cliff.
June 2026
Code is the easy part, or how we refactored half the business to fix a janky script
This is a classic startup war story: Someone had built a leaky rowboat. It worked! Then we started flying the rowboat as a Cessna. What we needed was an aircraft carrier.
November 2025
*People* detangle a ball of mud
Ball of mud is the world's most popular software architecture. The one we all use at work. But it sucks to work with. So what do you do?
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?
DRY – a common source of bad abstractions
The worst and hardest to maintain code that I've seen or written has been in pursuit of DRY
Why websites and webapps are different
The website vs webapp debate is at least as old as my career. And it keeps coming up. One camp says "React is too complex you don't need any of that", the other camp goes "I don't understand how you live like this". Both are right.
April 2025
Say no to abstract code
The trick, then, is to keep related code close together to reduce context boundaries and to limit the amount of relevant detail so it fits in your working memory.
re: The Industrialization of IT
I guess if AI is what it takes to finally get people to care about architecture and team structure then mission accomplished?
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
January 2025
Build the abstraction first
Hardcoding logic when you're tight on time doesn't need to make a mess. You can build the abstraction first!
December 2024
Atoms, molecules, organisms
Here it is: 20+ years of programming experience distilled into 378 words. From the book I'm writing.
Empirical evidence for code modularity
Few of your engineering decisions matter long-term. Software is soft. You can change your mind. But how you structure your components is here to stay.
November 2024
Big Ball of Mud – the world's most popular software architecture
Forget Gang of Four, here are the 7 architectural patterns real programmers use:
September 2024
The Laws of Software Evolution
Manny Lehman was one of the first to notice that software is never done. It just continues to evolve forever.
Why software projects fail
5 common themes
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.
DRY – the common source of bad abstractions
Swizec reveals the hidden pitfalls of overusing the DRY principle in coding, leading to bad abstractions. Discover how to write adaptable, efficient code that avoids these common traps.
Scaling Fast, my talk on lessons from tech startups
This talk from C3Fest summarizes the key lessons I've learned in the past ~15 years of working in tech startups. It's a high level overview of a new book I'm writing (60% done).
You can't side-quest a product
Here's a trap that talented engineers fall into all the time. It creates frustration, burnout, and the genre of tweets that read like "Why don't people care about the amazing work I'm doing".
March 2024
Architecture is like a path in the woods
You're doing too much. Sit back, relax, see how people *want* to use the code. THEN build the abstraction.
October 2023
Solve the problem, not a different more difficult problem
Solve the problem at hand, not the one you imagine might come next. A simple fix now often beats a complex one later.
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.