DEV Community

Semyon Kirekov
Semyon Kirekov

Posted on

AI-Driven Development

In this article, I want to provide an overview of the programming paradigm shift. AI has obviously changed the way we write code. And probably it won't go away.

I'm not going to tell you about specific features of AI agents. First, you can read it in dozens of other articles (or ask your AI assistant about it). Second, AI features evolve so quickly that describing them in particular might become irrelevant in a week.

Instead, I want to focus on the changes in the development process itself.

Table of Contents

  1. Why coding patterns?
  2. Maintainability in the era of AI
  3. Architecture
  4. Juniors
  5. System Design Interviews
  6. Algorithmic Interviews
  7. Conclusion

Meme cover

Why coding patterns?

Why do we have coding patterns? All these things like Decorator, Abstract Factory, and many others. The same question about static analysers like PMD or Checkstyle. What's the purpose behind those tools?

Well, you can say that we need those to keep our code quality high. But why do we need code quality at all? I think the answer is simple. It's all about maintainability.

If a product is profitable, the system behind it can live for years or even decades. So, keeping the system alive, adding new features, and fixing bugs are crucial factors for the product's success. The revenue has to be made, and the salaries have to be paid. To keep this cycle going, we need a stable cash flow. Therefore, the product should be good enough for people. So, they'll want to pay you money.

So, maintainability is crucial. If its level is not high enough, problems with the product evolution might occur. And if you can't make your product competitive enough, you will lose money.

We can say it is even simpler. The level of product maintainability has a direct impact on your future revenue.

Maintainability in the era of AI

A few times ago, the high maintainability level meant reduced expenses for your development team. Because less time is needed to fix that bug or implement a new feature. But I think that AI switched this paradigm.

You see, AI can inspect the code and understand its relations much faster than the human brain. Your project does not need to be written very well. Most likely, an AI agent can look through it and process the required task. Even though you're not sure whether those changes are valid or not, you have several options to overcome them. Just ask AI to do some things in advance:

  1. Write an E2E-test prematurely. Then use it for specification testing.
  2. Generate sequence or C4 diagram of the current workflow. So, you can understand how it works.
  3. Refactor some parts of the code, test it, check that everything remains the same, and only then do additional changes.

Without AI, such tasks might be really big pieces of work requiring planning, discussion, and risk management. But AI agents make those work much less complicated.

My point is that maintainability is not such a big deal as it used to be. If you have some problems with code, you don't need to spend weeks or months to make it better. A few prompts reduce this task to several days or even hours.

Architecture

The architecture of a particular microservice is not as crucial as it used to be. The absence of decorators or the presence of SOLID patterns' violation is no longer a big problem. If something can be rewritten with several prompts, it's not worthy to spend much time on it. But what matters is the system architecture.

The communication between services, integration patterns, the concise API, and aligning with product requirements has become as important as it has ever been before. AI agents can easily work on your microservice, fix bugs, or even rewrite it in a different language. Though API contracts are different.

Of course, you can change the endpoint declaration with AI easily. But it's not about refactoring. API declares a stable communication channel between parts of your system. It's a continuous data flow that results in orders, deliveries, payments, and real company profit. Whether you have an AI agent or not, you cannot change these contracts blindly. The outcomes might be severe.

Previously, we designed each service as a solid piece that can live long and serve our needs. And I think this approach might become obsolete. A particular service is no longer valuable. What matters is the business architecture of the entire system:

  1. What domains do we have?
  2. What are the functional and non-functional requirements?
  3. How do we expect to change the product in a few quarters or years?
  4. What API contracts do we need to establish?

Those questions create the foundation of our system. And services are just small fractions of it. As long as they implement the contracts correctly, it doesn't really matter how you write them internally. If you have any problems, AI will fix it quickly.

Though if you design your system poorly, no AI agent will help you. As I see it, code-writing skills are losing their influence. On the contrary, another ability is becoming a new competitive market value. It includes:

  1. Gathering product requirements as clearly as possible. AI doesn't tolerate ambiguity. If your request is concise, you get better results.
  2. Setting valid contracts that survive product evolution.
  3. Taking into account that services aren't the most important part of the system any more. What matters is data flow and business logic.

I can even say that AI usage turns a software engineer into a system analyst. And the better skills you possess in this discipline, the more benefit you get from using AI tools. Well-written requirements can be a direct prompt to an AI assistant.

Juniors

I often see discussions about the future of junior developers. Some experts claim that AI will eliminate junior positions. And they have their arguments:

  1. Juniors used to train on simple tasks. Refactoring pieces of code, fixing minor bugs, or implementing non-critical features. The irony is that AI can do all this stuff much better and quicker.
  2. A junior costs more than an LLM. You can buy an AI subscription for several hundred dollars. But probably you won't hire a junior developer for that amount of money. Besides, AI doesn't need sleep, weekends, or vacations.
  3. Hiring a junior developer is an investment. Of course, if you're a Big Tech company, you can afford that (and even those start layoffs). But many small companies or startups need the result now. Seems like AI fits here perfectly.

However, I disagree that juniors will disappear. I think that the current idea of junior developers will definitely go away. But the juniors themselves are safe.

To explain my point, let's go back in time. Fifteen years ago, juniors existed like today. Though if they tried to pass an interview in 2026, they would think the requirements are too high and barely reachable. In the late 2000's, you needed to know much less to become a junior developer. Because the industry itself wasn't so developed. The systems were easier, and the clients were less demanding. Having basic knowledge of computer science was enough to be hired as an intern or even a junior developer.

But things changed dramatically. Supposing you're learning Java and looking for junior positions. It won't be enough to know the principles of OOP. You would have to understand a big set of things:

  1. Version Control Systems (Git)
  2. HTTP/gRPC, authorization.
  3. Basics of CI/CD. Pull requests, automatic builds, deploying, etc.
  4. How to write unit and integration tests?
  5. What is Spring Framework?
  6. What's the idea of Aspect Oriented Programming?
  7. Relational Databases, Hibernate, Spring Data.
  8. Concurrency Issues.

Some companies might demand one thing, and tolerate the absence of knowledge of others. The point is that currently juniors have to now much more things than juniors fifteen years ago. And AI is going to make it even more difficult.

I think that in one or two years the ability to apply AI tools in your daily job won't be a nice-to-have feature. It'll be a requirement. Almost no company hires you as a Junior Java Developer if you don't know what the Spring Framework is. The same thing will happen to AI.

I can give you my advice here. For some reason, if you still don't use AI tools in your working routine (whether you're an employee or a student), start to learn them as soon as possible. You won't even notice how quickly it'll become a regular requirement. Choose whatever vendor you like; it really doesn't matter now. But make sure you understand all basic concepts clearly and how to benefit from them.

System Design Interviews

The same switch is happening to System Design interviews. Previously, AI used to arise as part of the questions only in certain positions (ones related to ML or AI). Or maybe it occurred with very specific job domains.

Soon, AI will become just a regular component like a relational database, S3 storage, or a load balancer. Almost every technical product either integrates AI into its pipelines or has already done so. AI is not a fancy thing for big players anymore. It's a common stuff for many businesses. Whether you have a grocery shop franchise or you run a global cloud environment. It's only a matter of time before companies start to treat AI as a common tool like a PostgreSQL instance.

Algorithmic Interviews

Nobody really likes algorithmic interviews. Neither do they show your real experience, nor demonstrate your problem-solving skills. Because those kind of interviews demands you to complete a task quickly without searching for any additional information. And such cases never happen in real work.

Anyway, algorithmic interviews have a certain goal. If you want to build a general pipeline for all candidates, you need something to make a calculated decision for everyone. You need one-metric-to-rule-them-all. And algorithms come in handy:

  1. The language doesn't matter.
  2. The speciality is also not important. Whether you're a frontend developer, a backend developer, or even a data engineer. You can still write algorithms.
  3. Judgement methodology is also easy. You have a list of test cases. If you pass them, the task is solved.

Though now we have something even better that unites every developer, analyst, product owner, quality engineer, or anybody else. And that is AI usage. And specifically prompting.

Prompting is a must-have skill now. Without that, AI becomes useless. And if it's useless for a worker, then one is probably out of the market.

I think that algorithmic interviews might be replaced with prompting interviews. Instead of finding the longest subsequence, an interviewer will ask you to write a prompt to solve a business problem. Then an internal LLM on the employer side can analyse it, score it, and give structural feedback.

The difference with algorithms here is about applicability. Algorithmic interviews set environmental conditions which never occur in real work. But prompting is different. It happens really often. So, I think companies will soon realise that an engineer who has great prompting skills is more valuable than one who can leetcode yet another medium task.

Conclusion

In my opinion, AI will change many things related to software engineering (or it has done it already). Here is the list.

  1. Coding patterns will become less important because AI doesn't need a perfect code to work on it.
  2. System architecture will become even more crucial. A specific microservice can be easily rewritten with AI, but the existing data flow remains for a long time.
  3. System analysis is a new essential skill. Good product requirements are good prompts. If you can express your thoughts on paper, then AI will boost your performance tremendously.
  4. Juniors as a social class won't disappear. Though they will change. Fluent AI usage will become as common as the ability to make a pull request. So, if you're still not familiar with AI assistants, you should start to fix it as soon as possible.
  5. If you're a senior engineer, pay attention to AI while preparing for system design interviews. Not every question demands to apply it. But if you do it correctly, you will get extra points.
  6. Algorithmic sections are still common and important. But their presence is going to shrink eventually. Maybe in a year, we'll start to face interviews requiring solving a task with prompting instead of writing an algorithm.

Hope you enjoyed that piece. Leave your thoughts about AI and the future of development. Thank you for reading!

Top comments (0)