<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ethan Zhang</title>
    <description>The latest articles on DEV Community by Ethan Zhang (@ethan-zhang-dev).</description>
    <link>https://dev.to/ethan-zhang-dev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3893744%2F1720bdcc-3126-4d83-95b0-63c0868269f1.png</url>
      <title>DEV Community: Ethan Zhang</title>
      <link>https://dev.to/ethan-zhang-dev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ethan-zhang-dev"/>
    <language>en</language>
    <item>
      <title>When code becomes cheaper, what still makes an engineer valuable?</title>
      <dc:creator>Ethan Zhang</dc:creator>
      <pubDate>Fri, 12 Jun 2026 09:56:24 +0000</pubDate>
      <link>https://dev.to/ethan-zhang-dev/when-code-becomes-cheaper-what-still-makes-an-engineer-valuable-24hm</link>
      <guid>https://dev.to/ethan-zhang-dev/when-code-becomes-cheaper-what-still-makes-an-engineer-valuable-24hm</guid>
      <description>&lt;p&gt;&lt;strong&gt;When code becomes cheaper, what still makes an engineer valuable?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Recently, while writing my cover letter for remote roles and Upwork projects, I asked myself a very direct question:&lt;/p&gt;

&lt;p&gt;Why should a remote team or client choose me, especially in the AI era?&lt;/p&gt;

&lt;p&gt;I do not think the answer should be: “Because I am the strongest engineer technically.”&lt;/p&gt;

&lt;p&gt;That is not how I want to position myself.&lt;/p&gt;

&lt;p&gt;What I want to become is this:&lt;/p&gt;

&lt;p&gt;A backend engineer who can turn unclear business problems into reliable, maintainable systems.&lt;/p&gt;

&lt;p&gt;AI is making implementation faster. It can generate code, explain technologies, and provide alternatives. At the same time, remote work and platforms like Upwork make competition more global. We are not only competing with engineers nearby, but also with engineers from everywhere.&lt;/p&gt;

&lt;p&gt;If the only question is “Who knows more frameworks, patterns, or tools?”, many ordinary engineers may feel hopeless.&lt;/p&gt;

&lt;p&gt;But I believe there is another path.&lt;/p&gt;

&lt;p&gt;In real systems, code is only part of the work. Someone still needs to understand the business workflow. Someone still needs to define what “correct” means. Someone still needs to identify risks, edge cases, performance concerns, and reliability boundaries.&lt;/p&gt;

&lt;p&gt;My usual way of working starts from these questions:&lt;/p&gt;

&lt;p&gt;What is the real requirement?&lt;br&gt;
What does correctness mean in this workflow?&lt;br&gt;
What data must stay consistent?&lt;br&gt;
What edge cases could break the process?&lt;br&gt;
What performance or reliability signals should be protected?&lt;br&gt;
Where should the module boundary be?&lt;br&gt;
Who should orchestrate the main flow, and who should act as collaborators?&lt;/p&gt;

&lt;p&gt;This “orchestrator + collaborators” thinking helps me keep the main business process clear. The orchestrator owns the workflow. The collaborators handle specific responsibilities such as validation, translation, persistence, messaging, or external integration.&lt;/p&gt;

&lt;p&gt;I also use AI in this process, but not only to generate code. I use it to challenge my assumptions, explore alternatives, find missing cases, improve naming, review design trade-offs, and refine the implementation. AI is an accelerator, not a replacement for engineering judgment.&lt;/p&gt;

&lt;p&gt;One example is a definition-driven batch import/export module I worked on for a return-order system.&lt;/p&gt;

&lt;p&gt;At first, it looked like a normal Excel import/export feature. But the real challenge was not Excel itself. The business template changed over time, and import and export had to stay aligned with the same rules.&lt;/p&gt;

&lt;p&gt;So I designed the module around template definitions instead of hard-coded columns. The import flow included raw validation, translation, business validation, and database update. The export flow reused the same definition model to keep the output consistent with the import contract.&lt;/p&gt;

&lt;p&gt;This made the system easier to reason about: where the data came from, which rule failed, which cell caused the problem, and how future template changes should be handled.&lt;/p&gt;

&lt;p&gt;That is the kind of work I care about.&lt;/p&gt;

&lt;p&gt;So I keep asking myself:&lt;/p&gt;

&lt;p&gt;In the AI era, do remote teams and Upwork clients only need someone who can write code faster?&lt;/p&gt;

&lt;p&gt;Or do they also need someone who can understand the problem, reduce uncertainty, communicate clearly, and take responsibility for the result?&lt;/p&gt;

&lt;p&gt;I do not know if this makes me the best engineer.&lt;/p&gt;

&lt;p&gt;But this is the kind of engineer I want to keep becoming:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A backend engineer who turns unclear business problems into reliable, maintainable systems, using AI as an accelerator while still owning correctness, judgment, and delivery.&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>backendengineering</category>
      <category>java</category>
      <category>remotework</category>
      <category>aiera</category>
    </item>
  </channel>
</rss>
