Live data from Hacker News

Vibe engineering

simonwillison.net

721–730 of 759 posts

Re: Vibe engineering

#721
post #591

Earlier quoted context omitted.

> effective management requires that you're able to trust that the person tells you when they've hit a snag or anything else you may need to know Nope, effective management is on YOU, not them. If everyone you’re managing is completely transparent and immediately tells you stuff, you’re playing in easy mode

Yes, I want to play in easy mode. Why would I want to play in hard mode? You're trying to sell AI here, right? And the argument is that AI is like hard mode... which developers are already in, but might not be. It's just not a very good sales pitch.

The point you missed entirely, young padawan

Re: Vibe engineering

#722

Earlier quoted context omitted.

I don’t know what you’re trying to imply here but it sounds very strongly like it is put in bad faith.

I’m critiquing the term “vibe engineering ” by highlighting that because of the random, chaotic, black box nature of LLMs it is very difficult to distinguish valid techniques from superstitions. Thus what you are doing is closer to pigeons bobbing their heads to attempt to influence the random reward machine than it is to engineering. For example saying things like “It is critical that you don’t delete working code”…

Ahhh you mean cargo culting!

Re: Vibe engineering

#723
post #622

Earlier quoted context omitted.

I spoke with some professional translators early on and they were just in denial, getting even upset at the idea that an AI could replace them. I didn't push too much but felt bad for them, as they couldn't realize what was going to happen to their field. I really think that translation must be the most impacted field by AI.

Software engineers are the translators. We (as a metaphorical community are in denial). Read the 100s of comments on this post: either (AI code is wrong or this isn’t correct or it’s not effective or some other justification). At the end of the day it’s really hard to accept the change.

> Software engineers are the translators.

True, recently I started feeling that part of what I had been doing is simply translating natural language to programming languages. Though coding also involves things such as algorithm and data structures, context and background knowledge, but these can all be done in natural language. Once the natural language description is given, what remains is only translation. LLMs have good knowledge of almost anything, though they are currently weak on inference or derivation, but this already makes them good on the two end of software engineering -- context knowledge and translation.

I understand those people who hate LLMs for coding, I partly share the feeling, because I enjoy typing on a keyboard, editing part of the code, reading the characters, I am an Emacs user. If LLMs can do the work, even if just save the typing and editing part, some of the fun has been eliminated for me.

Think about chess and Go, though AI can easily beats human now, people are still playing it. For programming, if one day AI can do 80% of the programming work, I guess only few of programmers today can keep doing it as a job. Just like few people can play chess and Go as their job.

Re: Vibe engineering

#724
post #549

Earlier quoted context omitted.

I wish I was! I'm pretty terrible at sales. It's a skill I respect and do not have.

> Sponsor me for $10/month and get a curated email digest of the month's most important LLM developments. > Pay me to send you less!

You are seeing someone asking for a completely voluntary subscription fee for very valuable (I find it at least) work that they give away completely for free—not to mention all the OSS software he has created—and yet you are construing that as being somehow greedy or money grubbing or sleazy.

Re: Vibe engineering

#725
post #703
post #652

Earlier quoted context omitted.

>LLMs make this even worse Not in my experience Better documentation, more test cases, and an NLP interface to query the code Less cognitive load, more complete mental models >even bad developers can do that many times compared to better ones, because for example they mindlessly copy-paste StackOverflow answers whose half of the code is absolutely not necessary Maybe LLMs, much like StackOverflow, make good devs bett…

The exact people who said to me that I’m using LLMs wrongly, and showed their code, showed me bad code. So let’s say, that “more documentation, which is unnecessary most time, ie noise, more test cases, which test not necessarily what they should, and an NLP interface which lies from time-to-time”, and we agree. LLM generated code is noisy as hell, for no good reason. Maybe, it’s good for you, and your type of work.…

>LLM generated code is noisy as hell, for no good reason

You can direct it to generate code/docs in whatever format or structure you want, prioritising the good practices and avoiding bad practices, and then manually edit as needed

For example with documentation I direct it to:

*Goal:* Any code you generate must lower cognitive load and be backed by accurate, minimal, and maintainable documentation

1. *Different docs answer different questions* — don’t duplicate; *link* instead.

2. *Explain _why_, not just what.* Comments carry rationale, invariants, and tradeoffs.

3. *Accurate or absent.* If you can’t keep a doc truthful, remove it and add a TODO + owner.

4. *Progressive disclosure.* One‑screen summaries first; details behind links/sections.

5. *Examples beat prose.* Provide minimal, runnable examples close to the API.

6. *Consistency > cleverness.* Uniform structure, tone, and placement.

I also give it a note to refuse the prompt if it cannot satisfy these conditions

>I don’t know why we pretend that “good code”, “good documentation”, “good tests” etc are the same for everybody

Of course code, docs, tests are all subjective and maybe even closer to an art than a science

But there's also objectively good habits, and objectively bad habits, and you can steer an LLM pretty well

Re: Vibe engineering

#726

I've been successfully "vibe engineering" with Claude Code for a week now on a side quest at my job. I want the result to be of high enough quality to maybe survive in our codebase long-term, but I don't want to write it myself. So I've added unit tests, e2e tests, formatting checks to help Claude to self-correct as much as possible. And I make him do a TON of self-review, after each feature I say something like: > Y…

Do you really believe that if you miss the "Read Clean Code" or "Read Effective Typescript" part, then the output would be significantly different?

No offense, but I feel this kind of talking is ridiculous. If it is a better practice, then it should be done without explicitly telling so. You do not tell them "Do not get things wrong," right? If it is a matter of choice over design patterns, for example, use functional programming or object oriented programming paradigm, then it should be said more clearly as what I have done.

Now, if it is neither something that is definitely a better practice nor something you can state clearly with a known, well-defined word, how can you make sure what you have said really make a difference if you have not said it?

Re: Vibe engineering

#727

Earlier quoted context omitted.

I’m critiquing the term “vibe engineering ” by highlighting that because of the random, chaotic, black box nature of LLMs it is very difficult to distinguish valid techniques from superstitions. Thus what you are doing is closer to pigeons bobbing their heads to attempt to influence the random reward machine than it is to engineering. For example saying things like “It is critical that you don’t delete working code”…

Ahhh you mean cargo culting!

Yeah it’s definitely cargo culting!

Re: Vibe engineering

#728

Earlier quoted context omitted.

Can we all agree that "mentoring" LLMs is actually a waste of time, please? The reason we invest this time in Junior devs is so they improve. LLMs do not

> Can we all agree that "mentoring" LLMs is actually a waste of time, please? Sorry, we can't. While it's true that you can't really modify the underlying model, updating your AGENTS.md (or whatever) with your expected coding style, best practices, common gotchas etc is a type of mentoring.

> updating your AGENTS.md (or whatever) with your expected coding style, best practices, common gotchas etc is a type of mentoring

We'll have to agree to disagree, because I don't think that has anything remotely in common with mentoring

Re: Vibe engineering

#729
post #690

Earlier quoted context omitted.

Those are some obvious potential superstitious incantations. They might not be superstitions though. They might actually work. It’s entirely feasible that bribes produce higher quality code. Unfortunately it’s not as easy as avoiding things that sound ridiculous. The black box, random, chaotic nature of LLMs virtually ensures that you will pick up superstitions even if they aren’t as obvious as the above. Numbered li…

I just realized I picked up a new superstition quite recently involving ChatGPT search. I've been asking it for "credible" reports on topics, because when I use that word its thinking trace seems to consider the source of the information more carefully. I've noticed it saying things like "but that's just a random blog, I should find a story from a news organization". But... I haven't done a measured comparison, so fo…

Great example!

Re: Vibe engineering

#730
post #554
post #466

Earlier quoted context omitted.

I'm not sure that having the patience to work with something with a very inconsistent performance and that frequently lies is an extension of existing development skills. It doesn't work like tools developers use and it doesn't work like people developers work with. Furthermore, techniques of working with agents today may be completely outdated a year from now. The acceleration is also inconsistent: sometimes there's…

> I'm not sure that having the patience to work with something with a very inconsistent performance and that frequently lies is an extension of existing development skills. If you’ve be been tasked with leadership of an engineering effort involving multiple engineers and stakeholders you know that this is in fact a crucial part of the role the more senior you get. It is much the same with people: know their limitatio…

1000% this. Today LLMs are like enthusiastic, energetic, over-confident, well-read junior engineers.

Does it take effort to work with them and get them to be effective in your code base? Yes. But is there a way to lead them in such a way that your "team" (you in this case) gets more done? Yes.

But it does take effort. That's why I love "vibe engineering" as a term because the engineering (or "senior" or "lead" engineering) is STILL what we are doing.

Post reply on HN