Michael Carducci is a seasoned IT professional with over 25 years of experience, an author, and an internationally recognized speaker, blending expertise in software architecture with the artistry of magic and mentalism. His upcoming book, “Mastering Software Architecture,” reflects his deep understanding of the multifaceted challenges of building resilient, effective software systems and high-performing teams. Michael's career spans roles from individual contributor to CTO, with a particular focus on strategic enterprise architecture and digital transformation.
As a magician and mentalist, Michael has captivated audiences in dozens of countries, applying the same creativity and problem-solving skills that define his technology career. He excels in transforming complex technical concepts into engaging narratives, making him a sought-after speaker, trainer, and emcee for internal and tech events worldwide.
In his consulting work, Michael adopts a holistic approach to software architecture, ensuring alignment with business strategy and operational realities. He empowers teams, bridges tactical and strategic objectives, and guides organizations through transformative changes, always aiming to create sustainable, adaptable solutions.
Michael's unique blend of technical acumen and performative talent makes him an unparalleled force in both the tech and entertainment industries, driven by a passion for continuous learning and a commitment to excellence.
“Humans became behaviourally modern the moment they committed to storing abstract information outside their brains.” —Lyn Wadley
As architects, we often bridge the gaps that exist between all of the teams and stakeholders involved in the success or failure of a system. Because of this, information is hitting us from every direction. How we capture, organize, distill, and express this information is critical to our own success or failure.
Unfortunately, while excellent at abstract thinking, our brains are equally terrible at random recall. What we need is a second brain that excels at providing us with the right information at the right time. In this session, we're going to learn Digital Knowledge Management workflows and tools that will help us build and use that second brain.
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 this session, we will start with a summary of the resource-oriented architecture along with it's strengths and weaknesses. Michael will share hard-earned, real-world experience applying ROA concepts to complex microservice environments to successfully build an infinitely scalable, extensible, and understandable system.
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.
In this session we introduce the core concepts of mob programming and then get handson mobbing on a coding kata.
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.”
In this session, we look at the various API approaches, how they attempt to deal with the challenge of decoupling client from server, evolvability, extensibility, adaptability, composability.
The biggest challenge is that needs change over time, and APIs must necessarily evolve. Versioning is challenging, and breaking changes are inevitable. You'll leave this session with a highlevel understanding of these approach, their respective tradeoffs and ultimately how to align your API approach with your architectural and organizational goals.
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.
Everything that happens from that point on depends on what else you bring to the table.
In this session, we explore the key skills necessary to make an impact, be effective, and will ultimately pave the way to grow into senior/principal level developers and architects.