The Brain Sandwich
Posted by keyle 4 days ago
Comments
Comment by coldtea 3 days ago
So such posts will make as much change as "trade, but be ethical" would make on a late 80s Wall Street trading floor:
"Before you tell the agent to start building anything, you go there and read and understand it first."
Yeah, not gonna happen. 1 in 100 might do that.
Comment by uludag 3 days ago
- AI generates too much code that overwhelms humans
- AI deskills users concerning the gritty details of coding by having them not do it themselves
- Having most of one's co-workers become meat proxy will put pressure for others to convert
- Lack of effort or expertise invested into codebase leads people to care less; caring less -> not caring about optimal outcome -> not expending brain power on problems we don't care about.
I think since we as an industry are still on this slope, we're still having systems propped up by people actually using their brains. I personally think this situation is regrettable. We should as an industry consider if the direction we're going truly is something we want.Comment by Alive-in-2025 3 days ago
If one can't understand the monstrosity that was built up over time, where the code base is enormous, millions and millions of lines and components, all with a few buggy corners that the tests didn't touch, and a human didn't have the insight to write a test that understands and verifies the corner cases, it will be like a magic machine that we can't change because we don't understand it and we can't afford years of effort. Some may hope their LLM will be able to understand it.
We'll have things that are buggy in ways that become very difficult to understand or fix, and no one can afford the effort. Remember when we had all those huge old programs from the 60s or early 70s, before there were tests maybe, or unit tests. Code written at a lot of human effort, but before the ideas of software engineering made it more tractable to build large programs reliably, testable.
We are creating a new problem for the people that take over our new code, just like the "vast for the time" 1960s huge cobol program can't be changed.
Comment by AIorNot 3 days ago
If we assume that AI coding is just beginning- we can assume that humans will create systems to help Manage the increasingly complex interactions that machines will code - ie we are still early like when we first introduced the industrial revolution to the peasants (which led to decades of chaos- for sure)
But Just like a 787 is not flown by hand either - doesn't mean anyone is qualified to autopilot it
Complex engineering systems will require sme humans to help manage the underlying complex interactions in way that is comprehensible to human intelligence
No one except for a smaller group of specialists for example these days does much understanding of assembly or compilers.. but we build complex SaaS apps all the time without that knowledge
Comment by coldtea 3 days ago
In this case, we're the peasants.
Comment by BobbyTables2 3 days ago
Humans have been building stuff too complex to understand for a long time.
But yeah, AI is going to accelerate this…
Comment by coldtea 3 days ago
Comment by BoggleOhYeah 3 days ago
Comment by Terr_ 3 days ago
1. I wrote a status-update without actually looking at the status.
2. I made a proposal without really knowing the pros and cons.
3. I provided you information without really knowing what your question was.
Comment by fwipsy 3 days ago
Comment by sublinear 3 days ago
If the software makes money because it's expected to work reliably, every edge case matters. Web games aren't exempt from engineering challenges. In fact, the more trivial the problem seems on the surface, the more likely it is to have edge cases.
Bugs are always prioritized based on how big of a deal it is for the customer. They don't like to wait and they rarely give second chances.
AI doesn't fit into any dev workflow except greenfield or analysis. Everything else needs a lot of close human attention and human discussion. AI doesn't read minds.
Comment by fwipsy 2 days ago
A raytracer demo doesn't need to be engineered to the same standard as the Apollo onboard computer software. A $20 paint app doesn't need to work as reliably as banking software that handles millions of dollars of transfers every day. All software exists on a scale from trivial to critical. It's like saying a toy drone needs to be designed the same way as a F-16.
Comment by NewsaHackO 3 days ago
Comment by sublinear 3 days ago
Why wouldn't a game dev do the same? It's pretty common for initial game releases to lack features.
Comment by AIorNot 3 days ago
Ie you are making the mistake of assuming the tech is static when it most assuredly is not
Comment by coldtea 3 days ago
Comment by AIorNot 2 days ago
That difference is enough to unlock AI coding for so many real life teams
Comment by kpmcc 3 days ago
Pedantic addendum: this is an AI sandwich, not a brain sandwich.
Comment by derpyzza 3 days ago
Comment by etcetcetcetceta 3 days ago
Besides don't most people refer to the croissant in substitute for sandwich "ham and cheese croissant"?
Comment by passive 3 days ago
I'll try using Brain Sandwich as guidance for less technical folk.
Comment by themgt 3 days ago
1. Your brain, and then
2. John von Neumann, and then
3. Your brain
Explaining a bit more… Before you tell John von Neumann to start working on anything, you go there and read and understand it first. And when John von Neumann brings you the solution, you will know if it’s right, or if it’s too much, or if it’s completely solving the wrong problem, etc.
Comment by rbongers 3 days ago
Comment by mcculley 3 days ago
When I was in charge of companies, I understood the technical tasks, but delegated understanding of things like tax law. This was okay, but I was definitely at a disadvantage compared to companies that could better optimize capital allocation around understanding of tax law.
AI means more humans in every organization are having to learn how to be managers/leaders of these agents. Those who actually understand the work they delegate will maintain an advantage over those who do not.
Comment by rbongers 3 days ago
Comment by tonyedgecombe 3 days ago
Comment by algernonramone 3 days ago
But the Fall Festival just ended, it's the perfect time to bring it up!
Comment by jonathanlydall 4 days ago
The sentence is maybe ambiguous, but it sounds like it's saying to not use the AI at all until you understand what's happening in the area that needs to change.
I don't agree with this as you can spend quite a bit of time digging around to first find the correct place which needs to be updated and then more time reading the code (likely in multiple files or places) to build up a mental model of what's going on.
I typically have more than one AI conversation on the go at any given time, so I'll always start by asking it to make a plan to solve a problem and while it's busy exploring to make a plan I review some other AI conversation's work in the meantime, when the AI's plan is ready I review it.
If at this point there is anything that is unclear to me about its approach to implement the plan, or I don't already have familiarity with the part of the system it's proposing to update, I start questioning the AI on how the system works. I will scrutinize the AI's plan until I'm absolutely sure that it's going to implement something that is sound from a system design perspective and as a senior software developer with architecture level experience I am capable of making such judgments.
I'm not sure what it might be like for comparitively inexperienced developers, but I would expect that AI's capacity for infinite patience allows them to ask as many questions as they need to get a clear mental model of what's happening, so if I were mentoring such a person in this age of AI I would drill into them on how to interact with AIs to ensure they have this clarity before the AI starts implementing anything.
The difference between vibe coding and highly accelerated agentic development is having the expertise and judgment to ensure you're building properly sound software.
Comment by stefan_lec 3 days ago
1) While pointing the agent at the task, poke it with annoying questions until I understand the problem and its context well enough to explain it.
2) Have it write the solution, help it work past problems it encounters during testing, then go through simplification, performance and correctness reviews.
3) Have the agent draft a pr, then poke it with annoying questions about the PR until I understand where we’re at, and why we don’t need to do more work. Also try to rewrite it into readable prose instead of Claud-ish while doing so.
#2 and #3 can repeat quite a bit, depending on how stubborn the problem is.
Comment by ewy1 3 days ago
Comment by SubiculumCode 3 days ago
Comment by fluxusars 3 days ago
Comment by bzmrgonz 3 days ago
Comment by aozgaa 4 days ago
Yes, but the amount of work needed here is overstated. With good orchestration/prompting in the task[1] (and token budget), the work on this end is significantly reduced.
… and then the brain drain issue returns.
[1] https://claude.dev/blog/solving-code-review-at-anthropic/
Comment by beej71 4 days ago
Comment by StilesCrisis 4 days ago
(Before someone asks: "not using it right" could mean a lot of things, but intentionally constraining its search by telling it how to do everything is one example. Or by not giving it a way to hill-climb: no tests, no iteration on a solution, etc.)
Comment by sowhat1 3 days ago
These types of people will get the least out of AI as their ego prevents them from letting it outshine themselves.
Comment by StilesCrisis 3 days ago
Comment by 0c3ca83 3 days ago
AI is reasonable at reviewing code, with only a 50-60% false-positive rate, and its persistence at broadening scope often finds things human reviewers would miss. It's still actually still pretty shitty at writing code, though, again, with enough ground truth and persistence, it'll often generate something that's a functional turd. It will sometimes come up with better suggestions if you prompt for it, but it needs a ton of hand-holding at the moment. And usually the suggestions are still overly complicated messes that you can trim down to 1/10th the size, while keeping the core idea.
Comment by StilesCrisis 3 days ago
Comment by 0c3ca83 3 days ago
Comment by StilesCrisis 3 days ago
And of course, there are things like build systems (CMake, ninja, blaze) where I know the basics, but I've never been an expert and don't care to be. Before I'd offload build features to another team; now I'd offload it to an AI. It's not something I need to be an expert in. I just want builds to work well.
Comment by 0c3ca83 3 days ago
Comment by StilesCrisis 3 days ago
Sometimes in review I'll be surprised that my understanding was flawed and the AI subtly misled me during the discussion, but that's super rare and that's honestly still helping me learn and understand.
Frankly it's no different than if I were pair-coding with a teammate who happened to type 25,000 wpm, and who never takes a day off.
Comment by 0c3ca83 3 days ago
Comment by StilesCrisis 3 days ago
Comment by 0c3ca83 3 days ago
They are not going to do a good job.
Software engineers used to mock non-coding architects for good reason.
Comment by StilesCrisis 3 days ago
Comment by 0c3ca83 3 days ago
Comment by StilesCrisis 3 days ago
Comment by 0c3ca83 3 days ago
Comment by StilesCrisis 3 days ago
Comment by beej71 2 days ago
Comment by spuz 4 days ago
Comment by nk_kolja 3 days ago
Comment by RunSet 4 days ago
Comment by tehnoslow 3 days ago
Comment by pazimzadeh 3 days ago
Comment by etcetcetcetceta 3 days ago
>AI, and then
>Your brain
I'm sorry but this is not a "brain sandwich" this is an ai sandwich...when a slice of ham is between two slices of bread do we call it a "bread sandwich"?
Comment by thedailymail 3 days ago
Comment by jmarlow47 4 days ago
> The rule of thumb is: if you can’t explain what’s changing and why, it’s not ready for someone else to take a look
I have observed firsthand that the metric or "understanding" can be irrelevant to management. When delivery dominates, understanding can be deferred to future agents who will gladly consume your codebase and convince you they grasp it, and further, that you do too. If I invest substantial effort in my PRs only for them to be /review'd, does it still matter? Perhaps reviewers should practice brain sandwich as well.
The worst offenders seem to sit at either extreme: fully AI firms that treat understanding as a human weakness and prioritize outcomes alone, or large corporate teams building internal CRUD apps whose middle management merely pretends to value good engineering to satisfy finicky senior engineers.
Not a criticism on the authors work at all, I like the idea (and I don't think they were trying to solve anything to do with work culture), but ultimately if my company doesn't find my practice valuable, I can't easily justify taking it on. Especially if I have to sell to them that I'm going to be spending _more_ time delivering. Fun times!
Comment by apical_dendrite 3 days ago
This is anecdotal of course, but at least at my company it's getting a bit easier to advocate for humans to do the thinking and understanding.
Comment by ThrowawayR2 3 days ago
Comment by AnaMaria09 1 day ago
Comment by hncbw02z5a 4 days ago