AI's Coming Industrialization of Coding - How Teams Need to Rethink Hiring

-

AI coding assistants signal the industrialization of the programming profession where production of code changes from a bespoke craft to a high-output process; it's time to rethink the "operators" of the future.

The age of AI coding assistants is upon us and with this comes an industrialization of the profession of programming and software engineering.

Despite many decades of attempts to formalize the act of programming, by and large, it is still more accurate to think of it as a craft rather than an engineering discipline. UML, for example, was intended to be a transformative tool that formalized the craft through detailed descriptions of design, logic, and flow from which entire systems could be generated automatically. But decades on, its practice has largely faded having fallen far from the lofty vision of replacing coding with diagraming.

To this day, it is more accurate to think of each program as bespoke and hand shaped by artisans, skilled in their craft. AI coding assistants -- even in their current fledgling state -- shift this dynamic from bespoke creation by skilled artisans to industrial operators.


Consider the humble, every-day hardware fastener: the nail. Before the industrialization of their manufacturing, if one needed fasteners, one needed a skilled blacksmith to transform raw metals into functional hardware through a process of shaping and hammering by hand.

Prior to industrial manufacturing of fasteners, each one was hand crafted and bespoke.

Today, the process of creating hardware fasteners is very different with machines capable of mass producing nearly identical fasteners. While a skilled blacksmith may produce a few hundred fasteners a day, modern industrial machines can produce hundreds per minute.

Modern day industrial manufacturing of hardware fasteners like nails occurs so fast that the process is only discernible when slowed down.

Some might object that this analogy is perhaps inaccurate because a machine that produces nails can only produce nails. This is true; so it is rather more accurate to imagine that the LLM is like a fantastical industrial metal fabrication machine capable of producing anything the customer asks. Yet this machine still requires a skilled operator to ensure that the output is fit for purpose and meets the standards of its intended use. After all, using un-galvanized hardware outdoors in treated wood might not be such a good idea!


The transition from the craft age to the industrial age of hardware fasteners means that it is no longer necessary to have a skilled blacksmith to produce hundreds of bespoke fasteners a day; a modern machine can produce the same volume in a fraction of that time. It follows, then, that to produce fasteners in the modern age, a hiring process selecting for skilled blacksmiths is probably the wrong choice; the right choice is to instead hire the "operators" that:

  • Oversee these industrial machines,
  • Maintain them as needed,
  • And check to ensure the quality of the output

It's easy to see the parallels to how AI coding copilots will change the profession of software engineering. When an industrial machine can produce lines of code 100x or even 1000x faster than even the most competent engineers, then it would seem that teams should consider selecting for the right "operators" of these machines that can quickly and efficiently verify quality, correctness, and fitness for purpose.

As an example, the N-Queens family of leetcode challenges are both considered "hard":

Both are considered "hard" problems and would be challenging for anyone seeing them the first time!

Yet GPT makes short work of this, generating the output hundreds of times faster than even a developer could -- even if the developer already knew the algorithm and solution.

Like modern machines producing nails, LLMs can produce consistent output so fast that it's hard to follow!

This huge disparity is not unlike the gap between a blacksmith and a modern industrial machine producing nails; there's simply no comparison. Is the solution for teams to make even more convoluted and complicated puzzles? To select for the few superhuman engineers that could even solve them? Or perhaps the right direction is to embrace this coming era of industrialized coding?

Companies that want to enter the fastener business today surely would not select for skilled blacksmiths, yet this seems to still be the singular focus of tech companies selecting for software engineers through leetcode.

What software teams need in this dawn of the industrial era of coding are operators that understand the problem domain and the objective of the software solution. The role of the programmer changes from that of an artisan to that of a machine engineer, ensuring that the machinery churns out quality code that's fit for purpose.


For teams that are in the process of hiring technical talent, solely focusing on an engineer's ability to craft bespoke code is perhaps the wrong way to go about it. In this age of AI coding copilots and the industrialization of the craft of programming, what teams should consider is selecting for a different set of skills that focus more on the safe, efficient operation of that fantastic machinery as well as ensure the quality of its output and fitness for purpose.

Teams that fail to incorporate code reviews into their hiring process will be selecting for "codesmiths" in this coming era of industrial code production machines.


Read more

CodeRev.app is a lightweight, free and open source tool to help you organize and conduct technical interviews using code reviews rather than leetcode.

Charles Chen
Charles Chen
chrlschn
chrlschn