Now Everyone Can Code

But Should Everyone Code Everything

LLMs are similar to compilers in the way that they are democratizing the creation of software. Before LLMs and compilers, many more humans were needed to create and maintain software. Compilers allowed us to program in plain English words rather than numbers and symbols. Many jobs of the original programmers became obsolete, but computing was also opened up to fields beyond scientists and mathematicians. LLMs have taken that a step further, allowing not only programming in English words, but in all forms of natural language. While software architecture remains important, many more people can now program as knowing coding syntax is no longer necessary. Many jobs of software engineers today will become obsolete, but we will see a creation of new fields as building software becomes available to more people. There are still some pieces of foundational software that LLMs cannot recreate, but application programming will be available to the masses. It is up to the software engineers of today to shepherd this transition in a safe and secure way.

Before compilers, entire teams of human programmers were needed to operate early machines such as the ENIAC during World War II. There were six women: Jean Bartik, Kathleen Antonelli, Marlyn Meltzer, Betty Holberton, Frances Spence, and Ruth Teitelbaum who were fundamental to the operation of the machine. They are perhaps the predecessors of us all, the first programmers to program on a computer.

In 1952, Grace Hopper would develop the first compiler. The A-0 used English words rather than numbers and symbols for programming. Her goal was to allow programs to be written not only by scientists and mathematicians, but also by regular people for business applications. An unseen effect of compilers and programming languages was that the old jobs such as human computers and punch card operators that ran the ENIAC and its descendants were made obsolete. Nevertheless, with Hopper’s later inventions such as COBOL, which we still use today, there was an explosion in computing and that we have been riding up until now. The software engineer job that we know of today largely came from Hopper’s development of these early compilers and languages.

Similarly, before November 2025 and the release of Opus 4.5, entire teams of software engineers were needed to build and maintain consumer software. Between the early 2010s until 2022, computer science became incredibly popular between universities and coding boot camps alike. New graduates were almost guaranteed a six-figure salary from top tech companies.

Since 2023, there have been mass layoffs and the job market has slowed. Some of this can be attributed to the over-hiring in the post-pandemic period but it’s hard to ignore AI lurking in the shadows. Most new graduates cannot find jobs. Teams are becoming smaller and more efficient with the use of LLMs. Jobs adjacent to software engineering such as product, design, and quality assurance have begun leveraging LLMs to write and maintain software alongside software engineers. Similar to Hopper’s original goal of opening up computing beyond the fields of science and mathematics, LLMs are democratizing software to an even wider audience. In the near future, everyone will be able to code, but should everyone be coding everything?

Some software cannot be recreated by LLMs. Foundational software such as operating systems, databases, compilers, web browsers, networking, and server infrastructure cannot be easily rebuilt using LLMs. What they’re really good at is building applications. The web is just a bunch of specialized databases interacting with each other. Most websites and mobile apps are thin clients over a specialized database. These clients can be supplanted by agents that can either directly interact with these databases or build custom applications on top of these specialized databases. Vibe coding platforms such as Lovable, Base44, Bolt, and Vercel’s V0 have all exploded in popularity. These platforms have led non-engineers to seek out tools like Cursor and Claude Code for building even more complex applications. The vibe coding platforms are able to abstract away certain software architectural decisions such as tech-stack choices and infrastructure concerns but they can’t make up for a vibe coder’s lack of knowledge about software security.

I'm Under Attack Meme

Most vibe coders simply aren’t aware of the implications of security in software engineering. In fact, the frequency of data leaks despite standards like SOC2 should indicate that even software engineers are not fully aware of security implications. In order to stop vibe coders from leaking confidential company data, software engineers will have to create safe and secure sandboxes where vibe coders can still create applications.

Software engineers are also at the forefront of agentic work. It takes time to learn what an agent can and cannot do. The more time I spend with Claude or Codex, the more I learn the intricacies of the particular model and the best way to prompt to get desirable output. Most people who have been vibe coding for a while also pick up this sense but it’s not something most people get instantly.

Make No Mistakes Meme

A prompt engineer is already a job title today but I imagine a better title in the future will be prompt consultant. These will be people who understand what the different agentic solutions are good at and can evaluate business practices to see what can be optimized, automated, and standardized across an organization. They will also be able to advise on what vibe-coded software can be built to best meet these goals. Just because everyone can code doesn’t mean everyone already knows what they need to build. As the adage says, you don’t know what you don’t know. The software engineers of yore do know what you don’t know.

Even with the proliferation of vibe coding, traditional software engineering will not go away. We will still need people to maintain open source pillars such as Postgres and Linux. Companies will still employ software engineers to maintain their specialized databases. While users may no longer interact with the web and mobile interfaces for all tasks, they will still rely on the complex custom logic that existing platforms and networks have. For example, while you may no longer need the Uber app to call a car, you still need Uber’s network of drivers to have a Toyota Camry show up at your door.

While LLMs open the door to vibe coding, my hope is that vibe coders will also leverage LLMs to learn more about software. It’s even easier now than ever to learn something new, especially with the help of LLMs that can explain complex topics in a way tailored to the individual. My hope is that vibe coders will want to learn more about software architecture, security, and maybe even actual programming languages, similar to how universities today still teach Assembly. Anything that gets someone to think about writing code is a huge win to me.

It is hard to see the future. There is a lot of fear and doubt in the world of software engineers (especially in San Francisco) about the future of the industry. Some of it is founded on truth; many of the jobs we think of as software engineering will no longer exist in the near future. While the definition may change, rest assured, software engineering is here to stay, and for a long time. In addition, the adoption of AI will naturally lead to new jobs needed to facilitate the adoption of AI. We are currently in a transitory period, much like during the advent of the compiler. I hope to see a Cambrian explosion of software as the models get better and as society reconciles with the use of AI. I love programming and my hope is that now, anyone can learn to love it like I do.