Pros and cons of AI coding

If you want to become well-rounded as a modern technology professional, a good exercise is to implement a substantial piece of software TWICE, in two completely different ways:

  1. Hand-code everything. No code generated by AI at all.

  2. Completely develop the app using an AI coding agent. You may not hand-edit a single char.

In practice, on the job, you do both. But the point of the exercise is to make sure you are effective in both extremes.

As a concrete example of a "substantial piece of software", here's what I heard was an interview coding project for an engineering role at OpenAI:

"48 hour window to build a Webhook Delivery System. Register endpoints, receive events, deliver reliably, retries with backoff, dead letter queue for permanently failed stuff, and an API to check status.

Did it in Python with FastAPl and SQLite... They said they care more about clean code and tests than feature completeness.

The retry mechanism was the interesting part, separate worker process polling for pending deliveries, exponential backoff, circuit breaking after 10 consecutive failures."

This is certainly a substantial software system. And pretty intense for an interview question, I might add.

And personally, I feel it would be easier for me to develop this with 100% hand-coding, than with 100% AI.

Just because I have built so many systems like this already, most of them before LLMs became viable for quality software development; and the precision required for parts of it, that I'd find hard to even put into English words at all.

One challenge with using AI coding agents is to create a sequence of prompts which are:

Another factor is that since I "think" in code, there are certain tasks which I find MUCH easier to hand-code.

And for which prompting the coding agent to do what I want (and not do what I don't want) seems much harder. Even though I am an experienced writer (I always hand-write every word of these emails).

Among other factors I could expound on as well, such as the structure of the test suite that's created; the mental models implied by the program's choice of data structures; what I know how to do, vs. the perhaps better techniques the LLM knows about, which I discover by reviewing its code (this happens to me a lot); and more.

All of this is why I urge every technology professional to become adept at both writing code directly, and producing it using AI coding tools. They each have their benefits and downsides.

Reply and tell me your thoughts on this topic.

About Boosted Code