Andrej Karpathy coined “vibe coding” in early 2025: “forget that the code even exists… I ‘Accept All’ always, I don’t read the diffs anymore.” Code becomes disposable, malleable, generated on demand. Karpathy vibe-coded a BPE tokenizer in Rust without deeply knowing Rust. For throwaway projects and weekend experiments, this works.
But Karpathy also proposed “vibe engineering” as the counterpart for production work: automated testing, planning, documentation, code review. Most teams struggle to bridge these two modes.
Language choice matters here. Go’s strong typing, enforced idioms, and tooling constrain AI output in useful ways.