Top
Best
New

Posted by Bluestein 7/4/2025

Prompting LLMs is not engineering(dmitriid.com)
104 points | 78 comments
floppyd 7/4/2025|
This article is just gatekeeping the word "engineer" for no reason. When I was developing an agent recently I picked a model (thus fixing most of the "uncertainties" mentioned) and started to construct the system prompt, from simpler to more complex, sometimes back to simpler, discovering that to this particular model the name choice means a lot, observing how often I was or wasn't getting desired results, etc etc. I think it would be challenging to find a definition of the word "engineer" that wouldn't include this process, even if it, obviously, wasn't as complex as some other engineering projects.
NotAnOtter 7/4/2025||
Words have meaning. I'm not a prescriptivist but when you have an army of formerly PM's, Designers, etc all at once exclaiming "I'm an engineer too!" that should signal that maybe the thing they're doing isn't really engineering.

Do you count making a square space splash page 'engineering'? Tools improving to the point that the barrier of entry plummets is great. That doesn't mean you're now engaging in the same fundamental task that happened before things got easier/

nerdsniper 7/5/2025|||
Words have meaning, but we can still argue over the meaning of words. For example, I believe that engineering necessarily involves calculus, and if you’re not doing calculus ever in your job, you’re more of a “technician” or “specialist” than an engineer. I have a degree in chemical engineering, and have been titled “chemical engineer”, “controls engineer”, “electrical engineer”, and “field engineer”. Currently my title is “software engineer”.

But I believe the last time I did any engineering was when my title was “Intern” - none of my jobs since then have required actual rigorous engineering and could have been done equally well or better by someone without an engineering degree.

I currently believe “software developer” would be a more appropriate title for me.

alganet 7/5/2025|||
I held "software engineer" and even "researcher" titles (btw I don't even have a degree). These mean nothing.

I am a troubleshooter, and my troubleshooting skills are measured by how much trouble I can shoot.

Not how much trouble I will be able to shoot once my tool is sharpened, not how much trouble I could shoot _in principle_, nothing of this nonsense. Trouble I can shoot now.

Users who mostly use LLM prompting are currently very limited in the amount of trouble they can shoot. Sometimes, it creates more problems than it solves.

Once that changes, we can open the gates. Show me the works.

bravetraveler 7/5/2025|||
In this spirit, I offer: SRE is less engineering and more controlled opposition
lcnPylGDnU4H9OF 7/5/2025||||
> an army of formerly PM's, Designers, etc all at once exclaiming "I'm an engineer too!" that should signal that maybe the thing they're doing isn't really engineering

Not really disagreeing with your other points but this specific one is an ad hominem. Anyone can engineer, so the only signal to look at is what they are actually doing.

It otherwise implies that PMs, designers, etc. can’t be competent engineers, which I do not believe of the competent PMs, designers, etc. I’ve worked with.

echohack5 7/4/2025||||
If the thing standing in your way to engineering a great product was syntax, and a bunch of gate-kept and inconsistent linux cli tooling, then its fine to call it engineering.

I dunno, do you read bytecode?

GeneralMayhem 7/4/2025|||
I don't think that's the point. If non-technical people are able to make a product happen by asking a machine to do it for them, that's fine. But they're not engineering. It simply means that engineering is no longer required to make such a product. Engineering is the act of solving problems. If there are no problems to solve, then maybe you've brought about the product, but you haven't "engineered" it.

I don't think that memorizing arcane Linux CLI invocations is "engineering" either, to be clear.

thunky 7/4/2025||
If I were to "build" the next big app entirely using llms, never writing a line of code, did I create it and do I own it?

If you answered yes that's really all that matters imo. Label me what you want.

toofy 7/5/2025||
If you hired people to build that product, you never wrote a line of code. No, you didn’t build it. Your team did. You’re not magically a software engineer, you hired someone else to do it.

Is there a product? Yep. Do you own it? Maybe. But again, you’re not suddenly the engineer. A project manager? Maybe.

thunky 7/5/2025||
> No, you didn’t build it

That's why I used the word create. I would be responsible for the creation of the product, so imo I created it. I'm the creator. It wouldn't exist without my vision, direction, and investment (of time and/or money).

Like a movie Producer: they don't actually "build" the movie. They use their money pay people to manifest a movie, and at the end of it they have created a movie and get a share of the profits (or losses) that come with it.

No, they shouldn't call themselves cinematographers, but they can say that they "produced" the movie and nobody takes issue with that.

> Do you own it? Maybe.

If I paid for it then absolutely I own it. I get to keep the future profits because I took the risk. The people that "built" it get nothing more than what I paid them for their labor (unless I offerred them ownership shares).

toofy 7/5/2025||
i think people are trying to make this difficult when it’s honestly super simple.

yes, you can make a product. no, it does not suddenly magically make you a musician.

you did the equivalent of hiring someone else to do it. you did not do it.

if you claim you wrote the novel, you’re lying. someone else did. if someone takes credit for work someone else did, they’re lying. it’s honestly not complicated. at all.

thunky 7/5/2025||
you're not countering what i'm saying, so i think we agree.

i'm just adding that (as an "engineer") i don't care what you call me, or what i call myself, because nobody cares and it doesn't matter. i'm commodified labor. replacable. with no claim on anything. and nobody will ever agree on the correct title anyway.

what actually matters imo is who the owner is.

toofy 7/5/2025||
yeah, it sounds like we both agree with the original post.

it literally doesn’t make someone an engineer.

its not difficult to understand but for some reason when its said it pisses certain people off.

i suspect many of the people upset want to convince themselves they’re suddenly magically a musician, architect, engineer, novelist, programmer, etc… when it just couldn’t be further from the truth. they’re just doing the equivalent of sending a dm to a coder friend and the friend is the actual programmer.

i think some people don’t appreciate being told the truth.

NotAnOtter 7/4/2025|||
If the thing gating your from creating a great product was the engineering, then I would call you a great product designer and not an engineer. If you suddenly can create products with a new tool - you didn't change, the tools did.

You're still a great product designer and not an engineer.

coolKid721 7/4/2025||||
Terms have meaning, and words can refer to different terms. People quibbling about what's an engineer or not is about as helpful as the stupid hotdog sandwich thing, it's arbitrary an engineer is not a determinate thing.

AFAIK the reason why the word engineer has some specific clout people get touchy about is because in normal engineering fields becoming a licensed engineer is kind of a big deal for them so they get really particular about it. I only ever refer to myself as an engineer to bother people who get cunty about it. Get over yourself, why do you care if a designer calls themself an engineer? Are you worried it'll make it hard to find other true engineers so you will have a harder time finding civil engineers to talk about how calling apis is basically the same as building bridges?

OJFord 7/4/2025||
In many countries it has legal meaning, and you can't just say you're an engineer, if you're not.

(I'm not from one of them, fwiw. I had AEG send out an 'engineer' to replace a piece of plastic on a dishwasher; I've been emailed by 'customer support engineers'.)

I don't think it's a 'get over yourself' thing though, SWE is fairly unique in industry in not making a distinction between engineers and technicians. I actually think the rise of LLMs might take us there, not necessarily the terminology, already abused as it is, but the distinction in roles between what were architects and senior+ engineers, and overseeing machinery.

coolKid721 7/4/2025||
People using words in a way you don't like isn't abuse
OJFord 7/10/2025||
I disagree with the premise, but even accepting it, isn't it? Isn't any abuse - physical abuse - just something we decide as a society isn't acceptable?
wetpaws 7/4/2025|||
[dead]
kec 7/5/2025|||
Well, according to ABET Engineering is: “The profession in which a knowledge of the mathematical and natural sciences gained by study, experience, and practice is applied with judgment to develop ways to utilize, economically, the materials and forces of nature for the benefit of mankind”.

By that definition, developing and training an LLM model could be argued to be a form of engineering… but exercising that model definitely isn’t. An analogy to mechanical engineering would be the difference between designing a CNC machine vs programming the machine to carve out a widget.

StrLght 7/4/2025|||
You've described what sounds a lot like experimentation: observing how a black box behaves on different inputs. Conducting experiments is closely related to engineering — I don't think anyone would claim different. But engineering is not limited to experimentation alone.
handfuloflight 7/4/2025||
What level of threshold of illustration do you need to reach for it to be properly said that you are drawing?

What's the analogous threshold to say you're engineering?

StrLght 7/4/2025||
Art is subjective. It isn't about checking boxes and counting how many formal criteria it meets.

Engineering is broad, it uses many different methods and techniques. All I am saying is that I wouldn't call someone a mathematician if they can only find the result of 2+2.

handfuloflight 7/5/2025||
You say art is subjective but didn't answer the question: what are the objective criteria that define engineering?
tiahura 7/4/2025|||
gatekeeping the word "engineer" for no reason

There was value in the word Engineer connoting professionalism and accountability. Checkers and draftsmen were checkers and draftsmen, not engineers.

Then, anyone who knew the difference between a patch cable and a crossover cable became a network engineer.

ineedasername 7/4/2025||
And anyone running a few ETL flows is a Data Engineer.

The gatekeeper holding closed the barn door on "engineer" got trampled long ago. Near as I can tell, it happened in the 90's, around the time lots of comp sci grads started hitting the profession, at a time when lots of programmers already in the field had come over from electrical engineering.

voidhorse 7/4/2025|||
All sorts of human activities involve processes like this. Art, for instance.

Engineering is about precision it's not about this fuzzy sort of "iterate til it works" approach. Sure, iterations is involved, but knowing the precise conditions and bounds under which a system functions in a specific way is what engineering is actually about. I would not want a person building a bridge to use your process of iteration and guess work.

Yes, under this idea a lot of software engineering isn't actual engineering.

TJSomething 7/4/2025||
Under this idea, most engineering isn't engineering. Some of the oldest engineering is ad hoc battlefield engineering to construct siege engines and building tunnels to deliver explosives. That frequently only needed to work one time.

With bridges, you only need that high confidence because there are high costs and risks. Also, the stakeholders are usually governments, who require very predictable results. All that effort is worth it because the artifact will be useful for a long time for a lot of people.

It might be okay if some widget only lasts for 6 months. So, you empirically shave off material until it's as cheap as possible while failing at an acceptable rate.

The cost of shipping is low for software, so the risk profile is even more different. This can be shifted for high stakes software and I think there are some social issues there, but many things are shaped more like Facebook than aircraft control systems. They can fall over and no one's going to actually die.

I think the core of engineering is in evaluating these tradeoffs and figuring out where you can expend effort most efficiently.

reaperducer 7/5/2025|||
This article is just gatekeeping the word "engineer" for no reason.

For a while in the 80's it was a pop culture joke that everyone was an "engineer."

Trashman: Sanitation engineer

Housewife: Domestic engineer

and so on.

The modern tech industry comes along and missed the part where the rest of society isn't impressed by slapping "engineer" at the end of your title unless you have a specific licensee or degree.

exe34 7/4/2025||
Honestly if we call software "engineering" in the first place, without any kind of certification/liability, I don't see the problem with applying it to everything else.
umanwizard 7/4/2025||
Indeed. Engineer is a silly word to gatekeep. Its original literal meaning is just someone who builds engines (in the original, broader sense of “engines” which basically means “machines”). The appropriation of the term to mean formalized categories with certifications etc. came hundreds of years later.
cwillu 7/4/2025|||
A word being fuzzy does not mean it has no meaning and that it can therefore be used for anything. A word being used in a particular (but fuzzy) way hundreds of years ago does not mean that it can't have a different (and fuzzy) meaning today. Yes, words drift, but the vague fuzzy notion that engineering meant 20 years ago still has value, and if the word has lost that meaning with no replacement, that's a problem.
LtWorf 7/4/2025|||
I doubt that's the origin, since "ingegno" means cleverness in italian…
danans 7/4/2025|||
I'm pretty sure the Italian word "ingegno" (like English "ingenious") comes from the same Latin root as "engine": ingenium, meaning "mind or intellect", with "engine" changing its pronunciation and meaning via medieval French.
umanwizard 7/5/2025|||
Well instead of doubting, you can just look it up on wiktionary.
LtWorf 7/5/2025||
You could have done it yourself but you chose to post disinformation instead.
labrador 7/4/2025||
Prompting is more art than engineering. But understanding the basics of LLMs, which are engineered systems, helps you get better results. I think of it like being a good interviewer: you’re not controlling the conversation, but you know how to guide it. A good prompter, like a good interviewer, knows how to ask the kind of question that gets a meaningful answer. I think of LLMs like a giant library and my task is to steer it to the right sections for a good answer.
andy99 7/4/2025|
No,the prompt is a hyperparameter. If you're not treating it as such and systematically experimenting, it's just superstition.
labrador 7/4/2025|||
You're view of it is correct for agents but for my purposes, which are mostly brainstorming, researching and asa thinking tool, I have GPT 4o memory systems turned on. This allows it to be more personable and allows crafting of answers more attuned to my meaning. System and chat history memory obviously introduce global state which is not exactly a tunable hyperparameter for more consistent results. You should probably turn it off for agents so your view is accurate.
Bluestein 7/4/2025|||
> hyperparameter

That's an interesting way to put it. indeed.-

dlevine 7/4/2025||
My theory is that, when done properly, it’s much closer to science than engineering.

And by “done properly,” i mean done in a regimented way with evals to verify that a wide range of inputs produce the desired outputs.

Prompting is much closer to discovering the properties of an already existing system than building something using engineering methods.

NotAnOtter 7/4/2025||
My definition of science is something like "a methodical approach to reach some truth" whereas engineering is something like "a methodical approach to reach some functionality". And I think some version of that is pretty universally accepted.

So by that definition, prompt engineering is much closer to engineering than science. That said, I would consider it closer to product development than either of the above two; I don't count 'tell an llm you'll torture it until your website is hopefully less buggy' a methodical approach.

ankit219 7/4/2025||
"Done properly" anything can be science/engineering. Just make a process, give it a KPI on how well it's performing, and you have an engineering. Movie making done properly is where audience is engaged with every act, you test screen it, see audience reaction, tweak, have a specific set of evals, and then you have something scoring high on the metrics. Part of that happens today, but you would not call that science. It's not what people mean when they call something as science or engineering. Your's is too broad of a definition to mean anything specific.
gundmc 7/4/2025||
I have no problem taking issue with using the term "engineering" for this, but this reads like OP does not believe that you can get better results based on the way you structure your prompt and what information you include. That is wild to me and should be obvious to anyone who spends more than a few hours using LLMs.

For what it's worth, I think about the "engineering" in "Prompt/Context Engineering" almost more akin to how it's used in "Social Engineering". You are influencing the model to produce a desirable result.

troupo 7/5/2025|
> That is wild to me and should be obvious to anyone who spends more than a few hours using LLMs.

And here you're assuming I'm (the author) not doing that.

Just the fact that the US wakes up and the available compute goes down affects model output significantly more than any magical prompting.

I've literally had the same prompt on the same code produce exactly two different results (proper magic and complete broken hallucination).

I've had one-line "do it"s one-shot complex problems, and I've had detailed precise instructions completely ignored producing horrendous code (and vice versa).

Until you have a way to measure your "should be obviously", it's nothing but wishful thinking.

fleischhauf 7/5/2025||
how do you measure ? genuinely interested, because I'm confronted with the same problem
theshrike79 7/5/2025||
Not OP, but what I do is that I have specific test prompts saved I feed to new models. Something that's only from my brain and not copied from the internet.

For example Simon Willison (@simonw) has them draw a SVG of a pelican on a bicycle[0], something that has never ever been photographed ever, nor is it something the LLM can have a reference on, so it has to figure it out.

I have similar things, but not as visual. I know what the result should be and what it should look like. Then I compare and contrast.

Mistral.ai, for example, is by far the fastest (hardware clearly overprovisioned compared to load), but it also produces utter bullshit and hallucinations. With ChatGPT and Claude I can kinda feel the results slowing down or getting worse when USAians are awake and hogging the resources (They're either throttling or just plain using a shittier model unrer load). Deepseek even has a cheaper API price for off-hours.

[0]https://simonwillison.net/2025/Jun/6/six-months-in-llms/

rapatel0 7/4/2025||
There are plenty of engineering disciplines that need to have statistical approaches to solving problems. Prompt engineering, should be approached by creating benchmark datasets and defining measures of efficacy and reliability.

More generally, IMHO engineering is use of physical and informational tools to build a solution. Tools may have unpredictability and reliability concerns. Its the job of an engineer to utilize the power of these tools while overcoming the reliability issues that might be present.

Example: Semiconductor manufacturing involves shooting gases at piece of silicon. There are all sorts of random scattering, distributional anomalies, and patterning problems that arise largely at random. I think you would still call it engineering.

toofy 7/5/2025||
If a founder hires an engineer who develops a product, the founder is not magically an engineer. He hired the work out.

This isn’t complicated but people struggle to understand it for some weird reason.

If I have someone photograph my wedding, and then sit at my computer, once the pictures arrive to me, distribute the photographs, I’m not suddenly magically a photographer.

I could go on and on. Using an LLM to write a biology paper does not make that person a biologist.

Typing out a request to my friend to write me a poem about chickens with red mittens doesn’t magically somehow make me a poet.

It wild that so many struggle with this basic ass concept.

mystraline 7/4/2025||
Doesn't matter that much.

Management thinks they can do our jobs by replacing us with a shell scrip... LLM prompt.

We're always moving up and down the tech ladder, solving problems we thought were solved, and, we fix them. But some prompt is supposedly going to replace understanding of your infra?! Hardly.

But you'll save money for this quarter. Past that is definitely up for discussion.... With your shareholders.

ineedasername 7/4/2025||
Prompting "ChatGPT" is very different than prompting LLMs. For the latter, whether you want to use the E word or not, every one of the unknowns the author cites either don't exist or are greatly reduced when you're using LLMs to construct something purpose-built.

Anyone working in tech should take a few hours, download LangFlow and choose a small model in ollama and just run one of the template flows and peek at their prompt setups. Maybe the author just chose a poor title, there's so much writing like this that is the equivalent of saying "Drills can't make good holes" when what you mean is the $15 harbor freight special hooked up to a janky power source and unsteady hand.

jonplackett 7/4/2025||
I don’t mind people criticising AI.

It’s bad in loads of ways.

But it also has some good bits.

To call it all snake oil is just as much bullshit as to claim it will solve all humanity’s problems.

NotAnOtter 7/4/2025|
To claim AI is useless is ignorant. To claim AI is as good as 99% of people claim it to be, is also ignorant.

A lot of people have drank the 'exponential growth' kool aid but don't have enough understanding of the underlying tech to realize (1) there could be some fundamental limits to how good LLM based AI can be. Or AI in general for that matter. (2) a big part of why it got so good so fast is because we started pumping trillions of dollars of microchips & electricity into it. The hardware and energy consumption cannot continue exponentially.

simonw 7/4/2025|
> "Prompt engineers" will tell you that some specific ways of prompting some specific models will result in a "better result"... without any criteria for what a "better result" might signify.

That's what evals are for. The best developers working on LLM applications are the ones who are addressing the problem described in this quote. Here's a recent thread about that: https://news.ycombinator.com/item?id=44430117

More comments...