AI could replace these types of software developers, even today!

Pedro Ortiz
LatinXinAI
Published in
6 min readApr 30, 2023

And if you are like this, you may be at risk…

Lately, there have been several debates about how Artificial Intelligence could replace many, but many jobs. There are several articles, forums, and so on.
With the presentation of ChatGPT, the biggest tech companies are focusing on AI (To the surprise of no one).
It is, without a doubt, one of the most astounding technologies I have seen in the last few years.
But, it could replace developers? Let’s begin!

The curious case about accountants…

Many weeks ago, I went for dining with a group of friends, and there was an accountant. My partner-in-life told her that AI could replace her job (mean). Did she was surprised? No. Did she have any fear? Again, nope.
The reason: She sees the AI as a helpful tool, but not completely replace her.
For example, budget forecasts are something that an AI could do. But what about reconciling payments, auditing financial transactions, and so on? Most of these, yes, but imagine this simple scenario:
John Doe, an employee, received a paycheck higher than he was supposed to (do not debate this could not happen because AI will do better jobs than humans), is it the AI fully knowledgeable to access the bank account, make calls to the bank, and tell John Doe “Hey, there was a problem with your payment. We have to retrieve you one hundred dollars from your account. Sorry ❤”. As the AI is today, no. In the future, mostly yes. And probably, it will be years from now before that happens. Besides, I have been hearing about how accountants could be replaced several years ago, and none, not a single accountant of the company that I work for, nor the ones that I know outside of my job, has been replaced.

Now, what about developers?

Well, it depends! As a senior developer for the company that I work with, I am partially in charge of several projects (yes, partially, because I rejected “just supervision work” because I like to make my hands dirty).
Working with several other developers, including juniors and seniors, I have seen that many of their execution could be replaced, even with ChatGPT as is it today.
My least favorite developers are the ones that you should explain every, minimal, task to do it.
For example, some time ago, I explained to a backend developer what we need, but I forgot to mention something important: validations of users’ input (Well, I did not forget about it. I assumed that every developer should do this besides if it is asked or not).
So the backend developer generated the code, without any, single validations. He worked several weeks on this. When I ask about the validations, he told me “I did not know that I have to do it.”.
What is the problem here? If I have to ask and cover all the instructions, with every minimal detail (as validations), what is the difference between telling the backend developer to generate the code vs. ChatGPT?

As you may know already, ChatGPT can generate a code, but you have to be very specific about what you need. If I prompt the following:
“Generate a Web API .Net Code request (endpoint) for posting the UserModel that includes Username, First Name, Last Name, and Password properties. Validate each of these properties before inserting them into the database. You should use Entity Framework.”
ChatGPT will generate a very nice, but simplistic code about it:

[HttpPost]
public async Task<IActionResult> AddUser([FromBody] UserModel userModel)
{
// Validate the UserModel properties
if (string.IsNullOrEmpty(userModel.Username))
return BadRequest("Username is required");
if (string.IsNullOrEmpty(userModel.FirstName))
return BadRequest("First name is required");
if (string.IsNullOrEmpty(userModel.LastName))
return BadRequest("Last name is required");
if (string.IsNullOrEmpty(userModel.Password))
return BadRequest("Password is required");
// Create a new User entity from the UserModel
var user = new User
{
Username = userModel.Username,
FirstName = userModel.FirstName,
LastName = userModel.LastName,
Password = userModel.Password
};

// Add the user entity to the database using Entity Framework
_context.Users.Add(user);
await _context.SaveChangesAsync();
// Return a success response
return Ok();
}

I was not completely satisfied with the code, so I asked to improve the validations, and it did. Not perfectly, because many names should include spaces, single quotes, Spanish, French characters, etc. But it was a huge improvement:

[HttpPost]
public async Task<IActionResult> AddUser([FromBody] UserModel userModel)
{
// Validate the UserModel properties
if (string.IsNullOrEmpty(userModel.Username))
return BadRequest(“Username is required”);

if (userModel.Username.Length < 3 || userModel.Username.Length > 20)
return BadRequest(“Username must be between 3 and 20 characters”);

if (!Regex.IsMatch(userModel.Username, “^[a-zA-Z0–9]+$”))
return BadRequest(“Username must only contain alphanumeric characters”);

if (string.IsNullOrEmpty(userModel.FirstName))
return BadRequest(“First name is required”);

if (!Regex.IsMatch(userModel.FirstName, “^[a-zA-Z]+$”))
return BadRequest(“First name must only contain letters”);

if (string.IsNullOrEmpty(userModel.LastName))
return BadRequest(“Last name is required”);

if (!Regex.IsMatch(userModel.LastName, “^[a-zA-Z]+$”))
return BadRequest(“Last name must only contain letters”);

if (string.IsNullOrEmpty(userModel.Password))
return BadRequest(“Password is required”);

if (userModel.Password.Length < 8 || userModel.Password.Length > 50)
return BadRequest(“Password must be between 8 and 50 characters”);

if (!Regex.IsMatch(userModel.Password, @”^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^\da-zA-Z]).{8,50}$”))
return BadRequest(“Password must contain at least one uppercase letter, one lowercase letter, one number, and one special character”);

// Create a new User entity from the UserModel
var user = new User
{
Username = userModel.Username,
FirstName = userModel.FirstName,
LastName = userModel.LastName,
Password = userModel.Password
};

// Add the user entity to the database using Entity Framework
_context.Users.Add(user);
await _context.SaveChangesAsync();

// Return a success response
return Ok();
}

Of course, this code stills need some work and improvement. However, I prefer to ask ChatGPT to generate the code, and a junior developer to test it, improve any part, and apply the code to the project, than having an hour or longer meeting and waiting weeks for results. In that more-than-an-hour that I spent telling the developer our needs, that time could have been used to generate and improve the code using ChatGPT. That code was generated in seconds.

We still need a developer to attach the code to the project, improve it, test it, etc, and the one that thinks about every detail that is required to make the project work.

The last one is not a simple task. Sometimes the clients of our business cannot properly explain what they need, and there is a system designer or developer to clarify those ideas and convert them into an APP.
So prompting a business person without any knowledge of IT, to generate a code for their application, could lead to bad designs, not only for the UI, but for the system in general.
There are many sites in WordPress with faulty logic, bad user interface, and bad user experience. Why? Because people are trying to do something that is out of their field.

So, yes, AI could replace some developers even today. Not all of them, though.
The ones that are required to receive every input to just generate code are the ones at higher risks.

Today, we still need human middleware, to prompt the needs, validate, test it, etc. This could create new jobs, and maintain some.
As there exists WordPress Developers, a ChatGPT Prompt Developer position probably will exist in the future.

Add me at LinkedIn and Twitter.

LatinX in AI (LXAI) logo

Do you identify as Latinx and are working in artificial intelligence or know someone who is Latinx and is working in artificial intelligence?

Don’t forget to hit the 👏 below to help support our community — it means a lot!

Thank you :)

--

--

Pedro Ortiz
LatinXinAI

Experienced .Net developer with a passion for Machine Learning. Committed to helping startups grow by creating scalable and innovative software solutions.