4 min read

When Coding Is No Longer the Hardest Part

Is AI killing or boost a software engineer
Photo by Bernd 📷 Dittrich / Unsplash

The rise of AI-assisted development has created an unusual tension within the software industry. Engineers are usually expected to embrace new technology, yet many now view AI primarily as a threat to their profession.

Some of that concern is reasonable. AI will automate tasks that once required significant human effort, and it may reduce the demand for certain roles. But this does not necessarily mean engineering is disappearing. It may simply mean that engineering is changing shape.

Coding is becoming cheaper

closeup photo of eyeglasses
Photo by Kevin Ku / Unsplash

A large part of software development has always consisted of necessary but repetitive work: setting up projects, connecting APIs, creating data models, writing boilerplate, producing test scaffolding and configuring deployment environments.

AI can now complete much of this work remarkably quickly.

It can generate the first version of a frontend, suggest a backend structure, create unit and end-to-end tests, explain unfamiliar code and propose solutions to implementation problems. Work that previously took hours can sometimes be reduced to minutes.

This changes the economics of software development. Producing code is becoming faster and cheaper, allowing individuals and small teams to attempt projects that previously required far more time and resources.

However, generating more code is not the same as producing better software.

Engineering judgement becomes more important

shallow focus photograph of black and gray compass
Photo by AbsolutVision / Unsplash

AI is good at proposing plausible solutions. It is less capable of determining whether the underlying problem has been understood correctly.

A system can be technically well implemented and still solve the wrong problem. It can contain extensive automated tests while missing the cases that matter most. It can produce an attractive interface that becomes frustrating when used in a real environment.

This is where the engineer’s role begins to shift.

Instead of spending most of the time manually producing every line, the engineer increasingly needs to:

  • Define the problem clearly
  • Evaluate alternative solutions
  • Recognise incorrect assumptions
  • Identify missing edge cases
  • Verify generated code and tests
  • Understand how the product will be used
  • Take responsibility for the completed system

For example, AI can generate the initial structure of a test suite. The engineer still needs to determine what has not been tested, where the system is most likely to fail and whether the tests reflect real user behaviour.

AI reduces the cost of implementation. It does not remove the need for judgement.

Domain knowledge cannot be generated on demand

A person using a caliper to measure technical engineering drawings on a desk
Photo by ThisisEngineering / Unsplash

This distinction becomes clearer when software is built around real-world experience.

A tool for managing player rotations in junior football may initially appear to be a scheduling problem. In practice, it is affected by late arrivals, injuries, missed substitutions, position preferences and decisions made during a live match.

Similarly, AI can quickly generate code for a trading strategy or backtest. It cannot automatically determine whether the market data, session definitions, execution assumptions, transaction costs or results are trustworthy.

In both cases, AI can help implement the solution, but it cannot supply years of accumulated context. Domain knowledge is what allows someone to recognise that the original framing may be incomplete—or entirely wrong.

As implementation becomes easier, the ability to connect technical knowledge with experience from other fields becomes more valuable.

The return of the generalist engineer

Modern software development has gradually divided engineering into increasingly specialised roles: frontend, backend, database, infrastructure, security, DevOps and site reliability engineering.

Specialisation remains valuable, particularly for complex systems. But AI may also give generalist engineers a new advantage.

Earlier generations of engineers often had to manage an entire product lifecycle themselves—from requirements and database design to testing, deployment and production support. AI allows that breadth of knowledge to be applied with much greater speed.

It does not give one person perfect expertise in every discipline. Instead, it helps someone move between disciplines more efficiently, explore unfamiliar areas and complete routine work without losing sight of the overall product.

In that sense, AI acts as a force multiplier. The more context, judgement and cross-domain knowledge an engineer brings, the more effectively that leverage can be used.

Engineering is changing shape

A scrabble block spelling change on a table
Photo by Markus Winkler / Unsplash

AI may replace some development tasks and perhaps some roles. It will almost certainly change how software teams are organised.

But it also creates opportunities for engineers to spend less time on repetitive implementation and more time on problem discovery, system design, validation and user experience.

The difficult part of software development has not disappeared. It has moved.

When code becomes easier to produce, the real challenge is knowing what should be built, recognising when the generated answer is wrong and turning an initial idea into a product that people can genuinely rely on.

Engineering is not dying. Its value is becoming more visible.