Craftsmanship to Abstraction: Succeeding as A Software Engineer in the World of AI
The biggest worry I hear from software engineers, especially recent graduates is their concern around AI's ability to code eliminating software engineering jobs. Here is what you can do about it!
Throughout the history of technology, there has been a remarkable and consistent pattern of human resistance to transformative innovations. Software development provides a particularly fascinating lens through which we can understand this phenomenon. Each major technological shift has been met with skepticism, with established practitioners arguing that new approaches are inherently inferior to traditional methods.
The Persistent Narrative of Technological Skepticism
In the 1950s and 60s, Assembly language was king. Programmers painstakingly wrote machine-specific instructions, managing every register and memory address. High-level languages like Fortran or COBOL? Dismissed as bloated and inefficient—tools for amateurs who couldn’t handle "real code." The mantra was clear: true expertise meant controlling the machine at its lowest level.
Fast forward to the 1980s and 90s, and the torch passed to C and C++ programmers. These languages offered more abstraction but still demanded manual memory management—a badge of honor. Java emerged in 1995, with its garbage collector automating memory cleanup, and the purists scoffed. "Real coders don’t need hand-holding," they argued. "It’s laughable to trade control for convenience—so inefficient."
The early 2000s brought another inflection point: the rise of open source. Skeptics predicted its doom. "Good software requires centralized quality control," they insisted. "A ragtag community of volunteers can’t possibly rival proprietary giants." Yet, Linux, Apache, and countless other projects proved them wrong, powering the internet and beyond.
Then came the agile movement and frameworks like Ruby on Rails in the mid-2000s. Writing everything from scratch was suddenly passé; speed and iteration trumped perfectionism. Critics grumbled that these tools diluted craftsmanship, but businesses embraced them for their ability to deliver value fast.
Now, in 2025, we hear echoes of the past: "AI will never compete with human coding. It’s too error-prone, too unpredictable—humans will always be more efficient." Sound familiar? Each era’s gatekeepers clung to their definition of expertise, only to watch the industry leap toward higher abstractions that prioritized outcomes over minutiae.
The Transformative Power of Abstraction
To understand the profound shift happening in software development, we need to appreciate the concept of technological abstraction. Let's explore this through a tangible analogy that illuminates how complexity is systematically simplified over time.
Consider the process of building a wooden cupboard. Historically, a true craftsman would undertake an exhaustive journey: identifying the right forest, selecting the perfect tree, cutting it down, drying the wood, transporting logs, precisely measuring and cutting each piece, assembling the structure, and applying intricate finishing touches. This approach would require months of specialized knowledge and dedicated effort.
In our modern world, the same task is dramatically simplified. A person can visit a store like IKEA, select a pre-designed wardrobe, and assemble it in hours with minimal technical skill. The complex processes of wood selection, cutting, and finish have been abstracted away, allowing individuals with no woodworking expertise to create functional furniture.
Software development is experiencing a similar transformation. Just as the IKEA model democratizes furniture creation, AI and high-level development tools are democratizing software development. The focus is shifting from intricate, low-level implementation to strategic design and problem-solving.
The Emerging Role of Software Engineers
In this world, what will "expertise" mean? The developers who thrive won’t be the ones hunched over low-level syntax or debugging obscure edge cases by hand. Instead, they’ll be the architects of abstraction—the ones who:
Master the Art of Specification: Defining precise, high-level requirements for AI tools will become a core skill. Think of it as "prompt engineering" on steroids—knowing how to ask the right questions to get flawless output.
Build the Next Tools: AI won’t eliminate coding; it’ll shift the focus. Developers will create frameworks, libraries, and platforms that empower novices—think "IKEA for apps"—while ensuring reliability and scalability.
Debug the Debuggers: AI isn’t infallible. Experts will oversee its work, spotting subtle flaws, refining algorithms, and training models to handle edge cases humans once tackled manually.
Bridge Domains: As AI lowers barriers, developers who blend coding with domain knowledge—healthcare, finance, gaming—will craft solutions that resonate with real-world needs.
This new breed of software engineer will need a fundamentally different skill set. Instead of deep expertise in specific programming languages, they will require broad technological fluency, strategic thinking, and the ability to effectively collaborate with AI systems. They'll need to understand not just how to write code, but how to design systems that can write, optimize, and maintain code with minimal human intervention.
This isn’t just a technical shift; it’s a mindset overhaul. The old guard prized control and depth; the new guard will value adaptability and breadth. Clinging to "real coding" as a measure of worth will be as quaint as chopping down your own tree for a cupboard.
Philosophical and Practical Implications
The transition represents more than just a technological shift; it's a profound reimagining of human-machine collaboration. AI is not replacing developers but fundamentally augmenting their capabilities. Just as calculators didn't replace mathematicians but enabled them to solve more complex problems, AI will empower software engineers to tackle more ambitious, creative challenges.
Conclusion: Embracing Technological Evolution
History shows that every leap in abstraction—from Assembly to AI—met resistance before redefining expertise. In 2025, we’re at that cusp again. AI isn’t here to replace developers; it’s here to amplify them. The question isn’t whether AI will outcode humans—it’s how humans will harness AI to outcreate themselves.
Voice of Reader
I hope you found value in this post. Here are 3 ways in which you can engage with me and get more value out of this newsletter:
Whether you agree, disagree or have a different take, please share it below. I would love to hear from you.
Send me feedback on this post, and what I should write about next.
Help your friends and colleagues discover this newsletter.