Minh Nguyệt - Cô gái xinh xắn dễ thương và hành trình chinh phục chứng chỉ ISTQB

we are vareal

🤖

Góc Công Nghệ

2023.03.01

⏱ 8 min min read

Software Engineers in the Age of AI: Writing Less Code, Expanding More

V

Nguyễn Văn Minh — CTO / AI Lead

Vareal Vietnam

There is a reality that most people in technology can already feel, even if they do not always say it directly.

AI is getting better at writing code.

Not always elegant.
Not always correct.
And certainly not always reliable enough to merge without review.

But compared with just one or two years ago, the shift has been fast. Today, AI can generate a decent function, scaffold an API, draft unit tests, write migrations, suggest refactors, and even produce a UI flow from a rough description. For work that follows recognizable patterns and has enough context, the speed is undeniably impressive.

So what happens to software engineers?

The pessimistic answer would be: “Developers are being replaced.”
But that oversimplifies the situation and misses the most important part.

What is really under pressure is not the entire software engineering role.
What is under pressure is a narrow definition of software engineering.

If someone’s value comes mostly from receiving tasks, writing code from specification, fixing localized issues, and handing the rest to someone else, then yes, AI is moving quickly into exactly that space.

But that is not the full role of a software engineer.

Code is no longer the only advantage

There was a time when a “good developer” was often understood as someone who:

  • coded quickly
  • knew syntax well
  • was comfortable with a framework
  • closed tickets consistently
  • needed little explanation
  • fixed bugs fast within their own area

Those things still matter. But they are no longer enough to create durable differentiation.

The reason is simple: the pure production of code is becoming easier to accelerate.

AI can draft large amounts of code quickly. Some of it is usable, some of it needs real correction, and some of it should only be treated as a first pass. But regardless of quality, one thing is already clear: it is reducing the unique value of simply being the person who types code.

As code becomes cheaper, the more valuable part of the role shifts toward understanding problems, designing solutions, evaluating trade-offs, and taking responsibility for systems that must actually work in the real world.

That is why software engineers need to become broader.

Broader does not mean doing everyone else’s job

Saying engineers need to be broader does not mean one person must become BA, architect, QA, DevOps, and product manager all at once.

It means that in the AI era, software engineers cannot stay confined to a very narrow slice of delivery and expect the rest to always be someone else’s concern. When tools become strong at coding, human value moves upward into judgment and ownership.

A strong engineer does not just ask:

  • “Does this code run?”

They also ask:

  • “What is the real problem behind this task?”
  • “What is still ambiguous in the requirement?”
  • “Will this design survive future scale?”
  • “Is this AI-generated code introducing hidden technical debt?”
  • “What should be tested automatically?”
  • “What are the deployment risks?”
  • “If this breaks in production, do we understand the system well enough to trace it back?”

That is where value is increasing.

Software engineers need to move closer to requirement analysis

In many teams, engineers are still used to a model where requirements arrive already broken down:

  • BA analyzes
  • PM aligns
  • developer receives the task
  • then coding starts

That model still exists. But in an AI-driven environment, if engineers only wait until everything is prepared before they begin, they are pushing themselves toward the lower-value part of the work.

Because turning a clear requirement into code is exactly the area where AI is improving fastest.

What makes engineers more valuable is getting involved earlier:

  • reading requirements and spotting ambiguity
  • identifying assumptions that are still hidden
  • breaking down use cases
  • seeing where business intent conflicts with technical constraints
  • asking the right questions before implementation starts

An engineer who understands requirements well does not just code from the description. They help make the description itself less naive.

That matters more than many teams realize. A large number of technical problems do not begin with bad code. They begin with half-understood requirements that were treated as if they were already complete.

Design is becoming an even clearer line between engineers and AI

AI can generate code quickly. But the more people use it, the more obvious one limitation becomes: it is often better at local output than at system-level structure.

It can write a component quickly.
But it does not truly know where that component should live in the larger architecture.
It can produce an API handler.
But it does not automatically define the right domain boundaries.
It can suggest a schema.
But it does not carry the pain of future migrations if that schema creates problems later.

That is why design matters more.

For software engineers, design does not always mean drawing large architectural diagrams. Very often it means:

  • setting clean boundaries between modules
  • choosing the right level of abstraction
  • knowing what should be separated and what should not
  • balancing speed with maintainability
  • preventing the system from becoming tightly coupled over time

This is where engineers need to become stronger. Not to look more senior on paper, but because when AI writes code faster, humans still need to preserve the integrity of the system.

Code review is no longer just reviewing people, but reviewing AI as well

Another clear shift is that software engineers are no longer just writing code. They are increasingly reviewing code produced by AI.

That sounds simple, but it is not a small skill.

Reviewing AI-generated code is not just about checking whether it compiles. It requires seeing:

  • whether the logic is actually correct
  • which edge cases are missing
  • where performance may become a problem
  • where security risks may be hidden
  • whether the code is more complicated than necessary
  • whether the pattern fits the existing codebase
  • whether it introduces subtle technical debt

The challenge is that AI-generated code often looks convincing. It can appear clean, complete, even well-commented. But convincing is not the same as appropriate.

That means software engineers in the AI era need to become stronger at critical review. Not just of other people’s work, but of output that is polished enough to be misleading.

Quality is no longer only QA’s concern

This is another mindset shift engineers need to make.

As AI makes coding faster, the cycle from idea to working output becomes shorter. That is a good thing. But it also means risk can move faster if quality is still treated as someone else’s job at the next stage.

A valuable software engineer cannot stop at:

  • code written
  • code pushed
  • “QA will test the rest”

They need to understand enough to:

  • write meaningful unit tests
  • think through integration points
  • use AI to help scaffold tests when useful
  • know when automation is needed
  • stop treating quality as a final checkpoint owned by another role

This does not mean engineers replace testers. It means they stop pretending quality begins only after development ends.

Deployment and operations are part of the value too

A strong software engineer in the AI era cannot stay too far from deployment.

In some environments, development has traditionally been highly segmented:

  • code gets written
  • deployment is someone else’s job
  • production issues get escalated elsewhere first

But when delivery speeds up, that separation limits both learning and ownership.

Engineers do not need to become deep DevOps specialists. But they should understand enough to know:

  • how CI/CD works
  • where the sensitive points in deployment are
  • which configurations tend to break across environments
  • which logs to read when something goes wrong
  • what rollback or hotfix decisions imply
  • how the system behaves once it is actually running

Because in the end, customers do not care how elegant the code looked in a pull request if the system fails in production.

From “someone who writes code” to “someone who creates working software”

This may be the most important mindset shift of all.

If you define yourself mainly as a coder, AI will naturally feel like a threat:

  • it writes faster
  • it does not get tired
  • it does not complain
  • it does not slow down

That is not a very enjoyable comparison.

But if you define yourself as someone who creates software that can actually operate in the real world, the picture changes.

In that case, code becomes just one part of your value.

The deeper value lies in:

  • understanding the problem
  • turning vague requirements into a concrete solution
  • designing something that can survive
  • reviewing output carefully enough to avoid careless technical debt
  • embedding quality into the work, not pushing it to the end
  • getting software into a real environment
  • handling the reality of failure when the system does not behave as expected

AI can help across many parts of that chain. But it still does not own that chain the way a real engineer does.

The real concern is not that AI can code well

The real concern is continuing to practice software engineering as if coding were the only meaningful part of it.

Receiving tasks and coding them quickly.
Asking very few questions about requirements.
Avoiding design thinking.
Treating testing as QA’s problem.
Treating deployment as someone else’s problem.
Treating review as nothing more than checking whether code compiles.

If that mindset stays unchanged, the stronger AI gets, the more engineers risk being squeezed into a narrower and narrower value zone.

But if AI is treated as a force multiplier for execution, software engineers gain the chance to move upward:

  • into stronger analysis
  • stronger design
  • stronger review
  • stronger quality ownership
  • stronger real-world delivery

In that sense, AI does not necessarily weaken software engineers.
It simply forces them to become more complete.

Conclusion

Software engineers in the age of AI do not need to beat AI at typing speed.

That is the wrong competition.

What matters more is:

  • understanding requirements more deeply
  • designing systems more carefully
  • reviewing output more critically
  • treating quality as an early responsibility
  • understanding deployment more realistically
  • and most importantly, owning the end-to-end result, not just the code in a single commit

As code becomes easier to accelerate with AI, the value of a software engineer will depend less on writing more and more on being broader, sharper, and more accountable.

So the real question is not:

“Will AI replace software engineers?”

It is:

“Which software engineers will still create clear value when coding is no longer the only advantage?”

Probably not the ones who type the fastest.

But the ones who can turn a vague idea into a working, testable, deployable system that survives outside production demos.

VAREAL Vietnam

AI-first software company — kiến tạo giải pháp thông minh đặt AI làm cốt lõi.

MST: 0108704322 — Hà Nội

Dịch vụ

AI Development

Process Automation

Web & Enterprise

AI Consulting

Liên hệ

contact@vareal.vn

(+84) 982 894 859

Cầu Giấy, Hà Nội

© 2026 Vareal Vietnam Co., Ltd. All rights reserved.

Đại diện pháp lý: Teramoto Masahiro — Chairman