Michael Carducci spent years learning to see things as they actually are; first as a magician, then as a software architect, now as both simultaneously. And somehow that’s not even the whole story.
He’s the author of Mastering Software Architecture (Apress, 2025) and is currently writing The Semantic Layer (Packt, 2026). He has spent over 25 years following interesting problems; through roles from individual contributor to CTO and back again, across industries and continents.
As a speaker, he applies the same toolkit he uses in close-up magic: attention, misdirection, timing, storytelling, and the instinct to take the long way around when that’s where the truth lives. Audiences at hundreds of conferences across four continents have described his talks as the kind that change how you think about a problem rather than just what you know about it.
He also makes YouTube videos about technology and curiosity with his wife Kate, because some ideas are too important (or too interesting!) to leave only in conference rooms.
Integration, once a luxury, is now a necessity. Doing this well, however, continues to be elusive. Early attempts to build better distributed systems such as DCOM, CORBA, and SOAP were widely regarded as failures. Today the focus is on REST, RPC, and graphql style APIs. Which is best? The goto answer for architects is, of course, "it depends."
Mob Programming is a style of programming in which the entire team sits together and works on a single task at a time. Teams that have worked this way have found that many of the problems that plague normal development just melted away, possibly because communication and learning increases. Teams also find that the quality of their code increases. They find their capacity to create increases. However, the best part of all this is that teams end up being happier and more cohesive.
The difference between a junior and a senior dev isn't coding skills. A developer's coding skills are just their ante; necessary to get into the game but, like an ante, they only get you into the game.
The web is arguably the single most impactful revolution in human history (to date). By agreeing on a simple set of standards, we have collectively unlocked all the world's information. Documents can be discovered, retrieved, published, and shared so easily we don't even think about it. Data, on the other hand, is a different story. Our data remains stuck in the 1980s. Locked in silos, each with a different format, interface, and conventions that must be interpreted by a human, parsed, mapped, and converted. Data is at the heart of many problems we solve today, and we produce data exponentially faster than we can consume it.
Although the Resource-Oriented Architecture is one of the oldest and most successful distributed architectures, it remains poorly understood and often completely overlooked today. Much of the microservices architecture pattern is focused on taking applications apart although seemingly everyone has different ideas on how to put things back together again.
In tech teams it's a constant firefight. We react. Then we react to the reaction... the cycle continues. In all this noise, in all this chaos, how do we move forward. How do we remain proactive?