Tim Etler

Do What AI Can't Do: How to Protect Your Role as a Developer

July 19, 2025

I'm in Danger

Using AI in your development workflow can be a double edged sword. If you’re using AI to do your thinking for you, you’re self sabotaging your skills. Over reliance on AI will lead to your skills atrophying if you stop learning.

If you’re just passing tasks along to an AI, you’re adding very little value, and it’s very likely it will replace you.

If you don’t want to be replaced by AI, you’ll need to be good at the things that AI is bad at and focus on improving your ability to do the tasks it can’t do well, while offloading menial tasks that it can do well.

There are some use cases I’ve found that AI is particularly good at:

  • One shotting boilerplate or very pattern matchy features
  • Producing prototypes to demonstrate that a concept works with throwaway code
  • Using it as a learning tool

I think the people who are in the most danger are those that fall under the umbrella of “technicians”. I classify them as people who implement patterns, but don’t create new ones. In other fields, that would be like an electrician as opposed to an electrical engineer.

In software development, this looks like developers who primarily implement business logic within well-defined patterns and frameworks. These kinds of tasks are particularly pattern matchy, such as writing CRUD operations or translating designs to components. They’re skilled at following established patterns but rarely need to think at a system design level or solve novel technical problems.

Those very pattern matchy roles can be replaced by AI, and it’s one of the areas where AI has shown significant improvement. With better emerging context management strategies, AI will be able to do those tasks with very high proficiency.

However, in my experience it has barely gotten better at producing high-quality code in a vacuum unless you have very rigid examples or very common boilerplate it can follow.

I’ve also seen a dramatic slowdown in improvements to its ability to reason about foundational and complex problems. I have not been happy with its output for architectural-level tasks, both in and out of codebases.

These architectural tasks tend to look like this:

  • Choosing ideal abstractions to cleanly solve a problem
  • Determining ideal project structures for the problem
  • Deciding on and enforcing up-to-date best practices
  • Setting up novel optimized tooling flows
  • Iterating on a complex problem and finding more elegant alternative solutions

It’s also bad at certain classes of problems:

  • Knowing when it doesn’t know something
  • Proactively searching for better solutions
  • Identifying the root of novel problems
  • Debugging obscure bugs and bugs in underlying code layers

To differentiate yourself from AI and provide value that AI cannot, you will need to level up at those kinds of tasks. Luckily, we have a great tool available to us to help us uplevel: AI.

While AI is not good at applying these concepts, it’s still an amazing research and learning tool. Using it as a learning assistant can rapidly help you progress your personal development. I have found that using it as a learning and prototyping tool in a loop helps me quickly grasp new concepts deeply.

If you are offloading your thinking and work to it and being lazy, you are not learning, and you will not build the skills you will need to keep your job. AI will move every job function up a level of abstraction, and that’s the area where improvement will provide the greatest rewards.