The Hacker vs. The Software Engineer: A Crisis of Identity in the Age of AI
In a provocative essay, a veteran developer with over two decades of experience makes a startling claim: "I am not a software engineer." While the statement sounds like a confession of inadequacy, it is actually a sharp critique of the current state of the industry. By distancing himself from the title of "engineer," the author highlights a growing divide between those who view coding as a craft rooted in determinism, readability, and deep understanding, and a new corporate paradigm that prioritizes speed, KPIs, and the probabilistic outputs of AI agents.
This tension is not merely semantic; it represents a fundamental disagreement over the nature of software development. As the industry pushes toward an "agentic paradigm," we must ask whether we are evolving the craft or simply abandoning the principles that make software reliable and maintainable.
The Craft of the "Hacker"
For the author, the identity of the "hacker"—in the original, non-pejorative sense—is one of curiosity and precision. This approach is characterized by a commitment to the fundamentals that often get sidelined in modern corporate environments:
- Determinism and Reproducibility: The belief that the same input should always produce the same output, and that code should be built on a stable foundation rather than "shifting sands."
- Readability and Reason: A focus on making code comprehensible to humans, ensuring it is efficient and well-reasoned rather than just functional.
- Technical Rigor: A preoccupation with details like Inversion-of-Control, the performance impact of complex subqueries, and the ability to test functionality in isolation.
In the author's experience, these priorities are often viewed as "silly" or unnecessary by those who hold the title of "Software Engineer" but prioritize delivery speed over structural integrity. This creates a paradox where the person worrying about the long-term health of the system is the one claiming they aren't an engineer, while those ignoring these details are the ones embracing the title.
The Rise of the Agentic Paradigm
The core of the author's frustration lies in the shift toward "agentic user flows" and the integration of AI agents into every step of the software development lifecycle (SDLC). The author argues that the current trend of replacing hand-written code with AI-generated snippets is a regression, comparing the warning that hand-coding will become as obsolete as COBOL to a loss of essential human agency.
There are several points of contention regarding this shift:
The Problem of Non-Determinism
One of the primary critiques is that AI does not produce deterministic output. When a machine writes code, the results can vary, introducing a layer of unpredictability into a process that requires absolute precision.
The Erosion of Thought
Beyond the technical, the author expresses a deep concern about the cognitive impact of AI tools. He describes AI as something that "interrupts my thought process when it is not actively co-opting it," suggesting that the reliance on LLMs may erode the deep work and critical thinking required to solve complex problems.
The Ethics of AI
The author also touches upon the systemic issues surrounding AI, citing "theft" and "mass exploitation" as the undercurrents of the current AI boom, and questioning the morality of a future where "intelligence" is treated as a metered commodity.
Community Perspectives: Pragmatism vs. Idealism
The reaction from the developer community reveals a spectrum of opinions on this divide. Some see the author's stance as a necessary defense of craftsmanship, while others view it as "grief-posting" or an inability to adapt.
The Pragmatic View
Some argue that the customer does not care about "beautiful TDD OOP SOLID DRY code," but rather about a product that works and delivers value. From this perspective, the probabilistic nature of AI is simply another tool to be managed through better prompting, specs, and testing.
The Identity Crisis
Other commenters noted that the term "Software Engineer" has become a catch-all title that lacks rigor. One commenter pointed out that in countries like Canada, "Engineer" is a protected legal title with strict liability, highlighting the absurdity of the Bay Area's casual use of the term for anyone who can write code.
The Path Forward
For those who feel alienated by the current trend, some suggest finding niches where "rawdogging" (writing code by hand) is still essential, such as kernel development or the creation of handcrafted libraries, where the cost of failure is too high for probabilistic AI to handle.
Conclusion
The debate over whether one is a "hacker" or a "software engineer" is ultimately a debate about the value of human intentionality in code. While AI agents can accelerate the production of syntax, they cannot yet replace the conscientiousness, creativity, and architectural foresight of a developer who cares about the why and how of a system. As the industry moves toward an agentic future, the challenge will be to integrate these tools without losing the soul of the craft.