AI, the elephant in the room

August 20263 min read

Coding agents have made incredible progress in the past few years. I have started using agents about a year ago; at work, and like many developers, I've benefited from faster product delivery.

I have recently been thinking about my career and whether I would have any relevance in the job market 5 years from now. Seeing agents generate code so fast, code that gets more accurate and intelligent with every model version that gets released. Also hearing about other fields like mathematics and how a 4-year long PhD program can simply be replaced by a trained model that is able to prove lemmas and conjectures in minutes if not even less.

I think it is now clear that being able to write code has no intrinsic value at the present moment. What should the job of a software developer be defined as in that case.

I think it is leaning more towards deciding on what to do rather than how to do things.

Understanding the different components in a system is important. Why X is being used instead of Y. The right questions to ask when building a resilient and scalable platform. The bigger picture such as business requirements and project direction.

About learning a new programming language

As someone who's been interested in the Rust programming language, the right approach I can follow would be to understand the internals of the language and what differentiates it from other languages. Being able to read complex Rust code and to reason as to why it was written the way it was. This can help me keep up with the code that an AI produces. A human overlooking what gets generated and understanding what is happening is quite valuable.

It is no longer about building a tool using Rust i.e. hand written code that a human spends hours or days on. This can be simply delegated to AI. It is more about what to build and the steps to go about building and releasing it instead of the effort of writing the actual code.

A final thought

At the present moment at work, I mostly tell AI what to do. The reasoning and decision making is still part of my role. Sometimes it gets things wrong, in which case I have to correct it and tell it to try again. Sometimes it is not capable of producing a result that is good enough in which case I abandon what it produced and resort to something different.


Another Rust blog

(with the occasional DevOps article) 😬