My Experience Using AI as Developer

AI is here, but between those who claim it is bad at doing anything and those who claim it solved coding, where do we stand with it?

Share
My Experience Using AI as Developer
Statue of a pigeon near Little Island in Manhattan, New York, USA

To give you a little background about myself, I have been a developer for over 17 years now. Professionally, I have 9 years of work experience. I started coding in HTML and JavaScript for the "Internet Explorer years" and adopted Java 7 later on. Freelance projects were shaped by PHP 5, and my early work experience was mainly in PHP, overseeing the migration of massive monolithic Zend Expressive applications from PHP 5 to 7 to 8. My main focus in those 9 years has always been web development with Angular. From AngularJS to Angular 2 to 21, developing integrated web apps (first with iFrames and then with Web Components).

All this leads me to today. I mostly write mobile apps with Ionic Angular and CapacitorJS. But there are always some oddball jobs like legacy Objective-C iOS and Android Java apps that need maintaining or small design tasks.

This is my experience with AI coding assistance. Both from my own experience as a developer and as a code reviewer, reviewing the code of others who have clearly used AI.

Design Work

I will be honest with you; I am no designer. I love programming and developing solutions, but working in Figma is not my forte. Implementing design features that require mostly CSS and a bit of HTML scaffolding is practically a no-brainer to outsource to AI. And it does a good enough job to not hinder my development. Small features are also fine.

It depends heavily on your tech stack, though. I recently developed a small platform with 10 pages and a few features in Next.js. I decided that this would be a project I mostly write using AI. Using Claude Design to Claude Code in planning mode.

It is both amazing how fast both of these products work and frustrating how badly they can fail at other points. I wanted a few versions, and it delivered. All the points were designed with minor input on changes. Extending the existing design prototype was easy as well.

Next.js comes with a brilliant AGENTS.md (a file that gives instructions to AI agents) that tells them to ignore previously learned information and patterns and look at the current documentation.

For 95% of the design and user experience elements, the AI worked perfectly. For the last 5%: Algorithms and Database Integration. I accidentally used TypeORM, which (as it turns out) is kind of ill-fitted for NextJS. It relies on TypeScript metadata, which is lost in the transpile step of Next.js.

Documentation Dweller

Occasionally, I have some CLI-heavy tasks to do. Like, find the reason why Kubernetes Longhorn Volumes do not want to mount but only sometimes. This is a rather recent example in which I did configure all the elements correctly, but it still would not work.

Claude and potentially other LLMs are great at digesting hundreds of articles and Stack Overflow discussions. Finally, it brought up all the iSCSI debugging steps. But the decisive step was checking if Ubuntu had multipath enabled for the virtual drives. I had never heard of that. Turns out it is a smart piece of software that allows for better communication when you have multiple mount points to the same server (or device). That messes with Longhorn.

Claude generated a configuration (which I checked is correct for the specific use case) that included the required exceptions to that system, and the volumes mounted instantly after activating it.

Could I have found that myself? Sure. Was it 1 hour of debugging instead of multiple days? Also yes.

Bug Hunter

I don't use AI to find specific bugs. I might ask Claude to find any egregious bugs.

When I know a bug exists, I rather isolate it myself and test it before either fixing it myself or describing the issue at hand and asking for a very specific change in behavior. After that, I test the original issue and test the changed behavior.

With the creation of Mythos and Fable, that might change in the future. You could use it to automate another layer of checks before deploying a change. Regression testing is hard enough as is.

Code Review

Don't get me wrong; I'd rather read a merge request than blindly accept the changes. But some merge requests are clearly written primarily with AI, and reading thousands of lines, you might miss a critical bug.

I tried Code Rabbit to help with software review. I would read the merge request, add all of my comments, and then go to Code Rabbit and check the code again. This is time-consuming, but somehow I do not want a stamp on the merge request that says "Checked with Code Rabbit". I have no definitive answer on whether to use AI for code review or not. In the Bug Hunter part, I said it might change with better models, and Mythos already demonstrated that it can find obscure bugs and edge cases. We also saw CURL drop their bug bounty program due to too many hallucinated AI admissions.

Outlook

Predicting where AI is going is hard. Suffice it to say, it is here, and it is a tool to be used. People who augment their workflow with AI are more effective at doing their job. But blindly trusting anything is a sure way to head into obscurity.

If I were to make a prediction: RAM prices are going up regardless of demand for AI.