In the early 2000s, my career took an exciting turn. With a background deeply rooted in hands-on technical work, I was always the one diving into the depths of technical challenges, transforming chaos into structure. This phase of my career was marked by a shift to a pure architecture role, a move that humorously made me a 'fluffy' – a term we used for those who conceptualize how things should work without delving into the nitty-gritty of making it happen. It was a time when the cloud was just a fledgling concept, and the IT world was on the cusp of an innovation boom.
Transitioning to architecture meant a supposed farewell to hands-on tool work. This change was akin to fasting; beneficial but increasingly challenging the longer I abstained. For four years, I immersed myself in the world of pure architecture – designing, analyzing, documenting, and collaborating with engineers. It was during this period that I experienced what I call an "architecture awakening," thanks to two pivotal books: "The Timeless Way of Building" and "The Pattern Language."
"The Timeless Way of Building" was a spiritual journey, helping me discover an inner quality, a passion that was uniquely mine. "The Pattern Language," on the other hand, revolutionized my thinking, equipping me with a 'pattern lens' to dissect complex problems into manageable patterns, creating reusable solutions within various contexts. This transformation was profound; I had reached a point in my architecture career where the hunger to handle tools had dissipated.
However not long after, an emerging problem pattern in the vendor space rekindled my interest in tools. As I navigated through complex projects, creating architecture documentation and liaising with various teams, I noticed a significant gap between Architecture and Engineering. This gap resulted in a plethora of great ideas but a stark inability to execute them at scale due to a shortage of practical doers.
Determined to bridge this chasm, I delved into my architecture toolbox, seeking a solution. The quest led me down a rabbit hole of tooling aspects, where I encountered the realm of Infrastructure as Code (IaC). IaC tools, I realized, fell into two categories: Engineering-first and Developer-first approaches, each with its subgroups.
Initially inclined towards the Developer-first tools, I explored various C/SDK's but quickly realized that this approach, while fitting for cloud-native app developers, was impractical for engineering teams. It was during this exploration that Python caught my attention. Python's rise in popularity was due to its simplicity, versatility, and a supportive community. Its application spanned web development, data science, and now, it seemed, Infrastructure as Code (IaC).
Experimenting with Python was a revelation. Its simplicity, combined with IaC C/SDK's, allowed me to redefine my architectural approach, integrating a hands-on tool perspective once again. Python was not just a programming language; it was a bridge connecting architecture to engineering, a tool that dissolved the barriers I had been struggling with.
Using Python in my IaC endeavors, I could absorb the challenges faced by the engineering team. It enabled me to concurrently create infrastructure as code while developing solution architectures, transforming the way proof of concepts and detailed designs were produced. Python's role in my workflow was transformative – it was no longer about just infrastructure; I could now venture into data analytics and generative AI. This wasn't just career development; it was career-proofing.
Years have passed since this pivotal moment, and my journey with Python and IaC has been rich and rewarding. It's led me to a point where I'm ready to share my experiences and insights, to help others navigate this evolving landscape of the technology.
Reflecting on this journey, I extend my gratitude to Guido van Rossum, the creator of Python, for his visionary work. Additionally, my appreciation goes to AWS, Pulumi, and HashiCorp for their groundbreaking contributions to IaC technologies. Their efforts have not only shaped the field of IaC but also enabled professionals like me to bridge gaps, innovate, and evolve in ways that were once unimaginable.
Through this journey, Python emerged as my preferred tool for IaC development. It's a testament to the power of innovation, the importance of adaptability in technology, and the endless possibilities when architecture meets hands-on problem-solving. Here's to the future, where architecture and engineering continue to intertwine, creating new pathways and opportunities for those willing to explore them.
Authored by Carel Wentzel