Despite rapid progress in artificial intelligence and automated tooling, the craft of software development remains fundamentally unsolved. Developer Alex Ewerlöf makes this case in a recent reflection titled "Coding Is Not Solved – Alex Ewerlöf Notes," pushing back against the growing assumption that programming has become a commodity. The post, which has drawn significant attention in developer forums, underscores a persistent tension between AI hype and the messy reality of building software.

What You Need to Know

The idea that coding is a solved problem has gained traction as AI coding assistants like GitHub Copilot and ChatGPT have proliferated. Many developers, however, argue that real-world software engineering still requires deep reasoning, domain knowledge and human judgment. Alex Ewerlöf's notes serve as a counterpoint to the hype, reminding the industry that the fundamentals remain essential. The comments on the original post reveal similar sentiments from experienced engineers who see AI as a complement, not a replacement.

The Persistent Complexity of Software

Ewerlöf's argument centers on the gap between simple code generation and actual problem solving. Writing code that compiles is not the same as writing code that works under real-world constraints. Factors like system integration, performance optimization, security hardening and long-term maintainability still demand human insight. These challenges have not vanished with the arrival of large language models.

Ewerlöf notes that debugging alone remains a deeply non-trivial activity. A developer must understand the intended behavior of a system, diagnose why reality differs and craft a precise fix. Automated tools can assist but often introduce subtle errors or miss context that only a human can perceive. The craft, in other words, goes far beyond syntax.

AI as a Tool, Not a Replacement

The current wave of AI coding assistants excels at pattern matching and generating boilerplate. They struggle, however, with novel problems, ambiguous requirements and the kind of nuanced decision making that defines professional engineering. Ewerlöf's reflection aligns with a broader industry recognition that these tools are best used as accelerators, not substitutes.

  • System integration: Combining disparate services, handling edge cases and ensuring reliability remain human-intensive.
  • Legacy maintenance: Understanding and modifying existing codebases often requires years of accumulated context.
  • Security and correctness: Automated code can introduce vulnerabilities that only experienced reviewers catch.

The comments on the original post reinforce this view. Developers share stories of AI-generated code that looked correct but failed in production, or that ignored critical business logic. The consensus is clear: AI can amplify a skilled developer but cannot replace one.

Why This Matters

If the industry adopts the narrative that coding is solved, the consequences will be significant. Companies may underinvest in training and mentoring, assuming junior developers can be replaced by prompts. Engineering teams might cut quality assurance or skip code reviews, trusting AI outputs too heavily. The result could be a rise in technical debt, security incidents and brittle systems.

For individual developers, the risk is equally real. Believing that their craft has been automated away could discourage deep learning and specialization. Yet the demand for engineers who can navigate complexity, communicate with stakeholders and make sound architectural decisions will not diminish. Ewerlöf's notes serve as a timely reminder that the human element in software engineering is not going anywhere.