A defining feature of software development over here at Bad Science Fiction is my use of AI consultants, primarily OpenAI models and Claude from Anthropic. The core conceit of the Bad Science Fiction experiment is that natural language in the age of the large language model is expressive enough to build complex software. And that it's not just a gimmick—it's a step forward in the evolution of engineering.
Consider:
The entire history of software engineering can be viewed as a steady march toward higher levels of abstraction. Just as the invention of compilers didn't eliminate the need to think programmatically but rather elevated our work to a higher level of abstraction, AI assistants represent the next step in this continual progression. The key difference is that instead of learning a formal programming language, users are learning how to express computational intent through natural language with sufficient precision to generate working code.
From: Personal Software: The Unbundling of the Programmer?
Back in college, I took a lot of cross-country road trips. One of them—completely last-minute and barely planned—was in a 1971 Ford LTD with a cassette deck and exactly one tape. Well, maybe there were a few others, but I don’t remember them. The one that stuck was a Beach Boys album, meant to fill the long stretches across the country where AM radio did its best, but was sparse.
I remember that trip as the “Good Vibrations” road trip—but not in a good way.
Since Andrej Karpathy coined the term “vibe coding” back in the old days — in February 2025, I’ve been ground-hogging that song. In the last month, I’ve read a flood of articles on vibe computing. Most are skeptical, but a few are downright giddy.
To set the stage, I’ll lean on Wikipedia’s summary of Karpathy’s original use:
Karpathy described his approach as conversational, using voice commands while AI generates the actual code… "It's not really coding - I just see things, say things, run things, and copy-paste things, and it mostly works."…Karpathy acknowledged that vibe coding has limitations, noting that AI tools are not always able to fix or understand bugs, requiring him to experiment with unrelated changes until the problems are resolved… He concluded that he found the technique "not too bad for throwaway weekend projects" and described it as "quite amusing."…
Source: Wikipedia (pulled 4/18/2025)
My take is that Andrej wasn’t pitching “good vibrations” as an engineering method—it’s more of a mindset. And like any mindset, it can be helpful or harmful depending on how you use it.
Addy Osmani captures the nuance well in a piece that strikes just the right balance:
At Bad Science Fiction, we’ve long discussed the cautionary tale of over-eager AI consultants — they are a force multiplier but not an excuse.
That’s why we’re fully aligned with Addy’s seven rules for using generative AI consultants (in the vibe):
Rule 1: Always Review AI-Generated Code...
Rule 2: Establish Coding Standards and Follow...
Rule 3: Use AI for Acceleration, Not Autopilot...
Rule 4: Test, Test, Test...
Rule 5: Iterate and Refine...
Rule 6: Know When to Say No...
Rule 7: Document and Share Knowledge...
And in fact. We do vibe coding, we’re all in. But only with the two (great) use cases:
Great Use Cases:
Rapid prototyping is perhaps the sweet spot of vibe coding…
Vibe coding also works well for learning and exploration…
Below are two illustrations from Bad Science Fiction (Figures 2 and 3). BFT-Test is our sandbox, a repository packed with experimental prototypes. It gets purged regularly, and only a small handful of its contents are handpicked for promotion to the main repos.


What is Bad Science Fiction?
BSF, or Bad Science Fiction, describes a collaborative software project on GitHub. As explained in the AI Advances articles, the project is so named because its ostensible goal is to develop a story analysis tool specializing in science fiction—a tool to be developed in collaboration with Generative AI. However, it is as much an experiment on how best to leverage large language models (LLMs) to amplify software.