<<

My Tentative Philosophy on Generative AI

4/6/2026

Almost all of my personal code and design-work is done by hand. I generally oppose the usage of generative AI in many of its current applications for reasons I hope to write in further length about in the future. I have however found it to be useful in cases where the process of something matters less than its outcome. For example, writing software tests, writing boilerplate, writing complex shell scripts or SQL queries (things that very few engineers have ever spent the time to master), implementing niche features (a PDF viewer within a larger application), or throwaway prototypes (spinning up a quick web server).

Sitting down and writing code manually has, in my opinion, three main advantages over "vibe-coding": optimization, understanding, and learning. Code written by an expert, or perhaps even an intermediate, will almost always be better optimized than that written by a machine (at least in the case of low-level code). This is due to the intimate understanding an engineer gains while crafting a system out of very fine details, knowledge an LLM is unable to possess because of its innate structure. This understanding is not just important for the quality of the product but also the ability to maintain it. Having an engineer who can be directly accountable for any given piece of a software project is indispensable when patches or refactors need to be made. Lastly, building things from scratch is the tried and true way to learn anything. Taking a shortcut by avoiding this difficult process for something you're supposed to be getting better at (especially in an academic setting) will always betray you eventually.

The above tasks are all ones I've encountered where the advantages of sitting down and writing the code manually were not justified by the time and effort it would have taken. Some other useful tasks I've used LLMs for are code debugging, reverse engineering, extremely niche questions (that Google's page-rank performs poorly at), learning things (primarily through explaining a topic), and practicing foreign languages. I often pursue the AI route when all traditional methods have failed me (Google searches, Wikipedia, StackOverflow, reading documentation, etc).

Much of the "success" AI has had thus far in replacing human workers is unfortunately more of an indictment of the status quo rather than an endorsement of machines. Intelligent engineering, eloquent prose, artistic taste, critical thinking, and simplicity are all virtues slowly being traded for soulless husks that imitate quality.

Regarding image, video, and music generators, outside of some entertaining cat videos on X which I'd be willing to trade a few rainforests for, I think they absolutely devalue any and all art ranging across mediums and authors. The same can be said for generating creative or professional writing (including documentation which is a skill few engineers are truly talented at).

LLMs and other forms of generative AI or neural nets are an extremely interesting application of both mathematics and computing, and one of the largest advancements technologically since the birth of the Internet and mobile computing technology. This I think is hard to deny even by the strongest scepticists. We've managed to build machines that not only understand semantic complexity, but are able to reproduce it in a believable conversational manner (at least enough to fool your grandma). We still don't properly understand the implications of these technologies and I'm excited -- albeit a bit pessimistic -- to see what will become of all of this.