6 ms·
Peer Programming with LLMs, for Senior+ Engineers
- pmbanugo 1y agoI've been experimenting with LLMs for coding for the past year - some wins, plenty of frustrations. Instead of writing another "AI will change everything" post, I collected practical insights from other senior engineers who've figured out what actually works. No hype, just real experiences from people in the trenches.
- nickpsecurity 1y agoI want to note that the headlines gave me an idea for a nonprofit: "Peer Programming with LLM's for Seniors." Somebody jump on that. It's yours. :)
- pmbanugo 1y agore-reading the title makes me feel like I used a wrong title. Could be a good idea for a non-profit like you said. I know someone who’s exploring something similar but for disabled folks who aren’t tech-savvy (for-profit)
- nickpsecurity 1y agoThat's kind of them. I'll pray their effort succeeds.
- westurner 1y agoWhat are some of the differences between Peer Programming with LLMs and Vibe Coding?
- lowbloodsugar 1y agoI would say that the difference is taking an engineering approach to the process itself. Iterating on the context, putting the system into various states, etc. Treating the AI like a very knowledgeable intern who also has a very fixed short term memory and can’t form new long term memories but can be taught to write things down like in Memento. The thing is, though, it has a much much larger short term memory than me.
- diggan 1y ago> What are some of the differences between Peer Programming with LLMs and Vibe Coding? "Vibe Coding" is specifically using the LLM instead of programming anything, barely caring about the output. If something is wrong, don't even open the file, just ask the LLM. Basically "prompting while blindfolded" I guess you could say. Peer programming with an LLM would be to use it as another tool in the toolbox. You still own your program and your code. Edit away, let the LLM do some parts that are either too tricky, or too trite to implement, or anything in-between. Prompts usually are more specific, like "Seems X is broken, look into Y and figure out if Z could be the reason".
- tptacek 1y agoI think the consensus boils down to: you're vibe coding if you don't understand the code before you merge it.
- deleted 1y ago[deleted]
- viraptor 1y agoThis is the origin of vibe coding: https://x.com/karpathy/status/1886192184808149383 https://x.com/karpathy/status/1886192184808149383 > There's a new kind of coding I call "vibe coding", where you fully give in to the vibes, embrace exponentials, and forget that the code even exists. (...) I ask for the dumbest things like "decrease the padding on the sidebar by half" because I'm too lazy to find it. I "Accept All" always, I don't read the diffs anymore. (...) Pair programming still very much deals with code and decisions.
- westurner 1y agoSo, pair programming continues to emphasize software quality (especially with LLMs) but "vibe coding" is more of a "whoo, I'm a reckless magician" (in a less risky application domain) sort of thing? But doesn't a 'vibe-coding' "we'll just sort out the engineering challenges later" ensure that there will be re-work and thus less overall efficiency?
- westurner 1y agoThis is probably important to demo in teaching coding with AI. I suppose the modern difference is the degree of human validation before committing or releasing.
- dietr1ch 1y ago(Site is unreadable for me on Firefox 138, but the text is still there if you select all. Qutebrowser based on Chromium 130 doesn't render it either.)
- vvillena 1y agoNo problems here, both the normal view and reader mode seem to work well.
- diggan 1y ago> Peer Programming with LLMs, For Senior+ Engineers > [...] a collection of blog posts written by other senior or staff+ engineers exploring the use of LLM in their work It seems to be by senior engineers if anything, I don't see anything in the linked articles indicating they're for senior engineers, seems programmers of all seniority could find them useful, if they find LLMs useful.
- OutOfHere 1y agoYes, although those who are not senior engineers will not preemptively see the value in the documented approaches. One has to be a senior to preemptively appreciate the value in them.
- hoppp 1y agoI use the llm as a glorified search engine. Instead of googling I ask it stuff. Its fine for that but its a hit or miss. Often the output is garbage and its better to just use google. I dont use it much to generate code, I ask it higher level questions more often. Like when I need a math formula.
- sam_bristow 1y agoMy most common use is similar: when I'm working on problems in a somewhat unfamiliar domain finding out what their "terms of art" are. The chances that I've just come up with a completely new concept are pretty low so it's just a matter of helping me formulate my questions in the language of the existing body of knowledge.
- NitpickLawyer 1y agoYou should go a step further and integrate search (tavili, searxng, etc) into your flow. You'll get better results, and you can refine sources and gradually build a scored list of trusted sources.
- mattnewton 1y agoThe space is moving so fast that, if I wrote down my workflows and workarounds just two months ago, so much of it would be stale today. I think all these recommendations need to list the models and harnesses being described front and center.
- Aeolun 1y agoYeah. I have Claude 4 correcting code that Claude 3.5 wrote a few months ago.
- bdangubic 1y agohehehe - same :)
- pmbanugo 1y agoI haven’t tried Claude 4. Maybe I’d give it a spin to see if it can improve my design document
- motorest 1y ago> Yeah. I have Claude 4 correcting code that Claude 3.5 wrote a few months ago. You don't even need to switch models. Write a prompt to generate some code and immediately after prompt the same model to review the code it just generated. Sometimes it takes 3 or 4 prompts to get the result to converge. But converge to where?
- brumar 1y agoVery important comment. My workflow changed dramatically with the increased capabilities of these tools.
- motorest 1y ago> The space is moving so fast that, if I wrote down my workflows and workarounds just two months ago, so much of it would be stale today. There is also the problem that none of these workflows were validated or verified. Everyone is free to go on social media or personal blogs and advertise their snake oil. Thus in a scenario where these workflows are found to be lacking, the perceived staleness might actually be ineffectiveness beyond self promotion.
- SoftTalker 1y agoThough I haven't tried it, I would probably enjoy peer programming with an LLM more than I do with a real person (which I have tried and hated). I could assign the LLM the simple drudgery that I don't really want to do, such as writing tests, without feeling bad about it. I could tell the LLM "that's the stupidest fucking thing I've ever seen" whereas I would not say that to a real person.
- gadflyinyoureye 1y agoIt seems like we need to use forceful language with these things now. I've had copilot censor everything I asked it. Finally I had to to say, "listen you cracked up piece of shit, help me generate a uuid matcher. "
- Aeolun 1y agoWe’ve blocked your response because it matches public code.
- pmbanugo 1y agoThat’s what the recent Copilot feature on GitHub can do. You assign it tasks and it comes back with a PR. You could also assign it to review a PR.
- Aeolun 1y agoI really want the LLM to do the opposite. To tell me that’s the stupidest fucking thing it’s ever seen. They’re surprisingly bad at that though.
- jbellis 1y agoI would have said that Harper Reed's workflow (brainstorm spec, then co-plan a plan, then execute using LLM codegen) is basically best practice today and I'm surprised that the author adds that "I’ve not been successful using this technique to build a complete feature or prototype." Here's an example of using this pattern with Brokk to solve a real world bug: https://www.youtube.com/watch?v=t_7MqowT638 https://www.youtube.com/watch?v=t_7MqowT638
- cheshire_cat 1y agoThis is showing the workflow of your tool quite well, but would be way more convincing & impressive if you had actually fixed the bug and linked to the merged PR.
- jbellis 1y agothat's fair! we thought that at 23m it was already pushing attention spans pretty hard :)
- notepad0x90 1y agois it really more efficient to have an LLM generate code, then review that code, fix errors and spend some time to fully understand it? I wish there were tangible stats and metrics around this. Is it really more efficient than just writing the code yourself, but using LLMs to look up things or demo solutions?
- tptacek 1y agoYes, but the bar for skepticism is higher than that, because LLMs also compile code and catch errors, and generate and run tests; compile errors and assertion failures are just more prompts to an LLM agent.
- what 1y agoCitation needed. Here is copilot “fixing” a failing test: https://github.com/dotnet/runtime/commit/fe173fc8f44dbd0a9ed909383f0dc17bc9a36d35 https://github.com/dotnet/runtime/commit/fe173fc8f44dbd0a9ed... It rewrote some comments, changed the test name and added extra assertions to the test. Baby sitting something like that seems like an absolute waste of time.
- BeetleB 1y agoYou want a citation for things so many people are doing daily with LLMs? Just because they can't fix most failures doesn't mean they can't fix many.
- what 1y agoIt’s a failure that it created and when told to fix it did this. It’s beyond bad.
- BeetleB 1y ago> It's a failure that it created and when told to fix it did this. It’s beyond bad. No one's disputing this was bad. People are merely claiming it can also be good. I've dealt with plenty of humans this bad - it's not an argument that humans can't program.
- tracerbulletx 1y agoMy main feeling is that its great as long as I constrain it to working in a conceptual boundary that I can reason about, like a single system component where I am telling it the API. That way each piece that gets built up I have an understanding of it. If you try to let it go to wide it starts to make mistakes and I lose my mental model.
- JSR_FDED 1y agoWell put. That’s my challenge too - losing the mental model of my entire codebase. Sometimes it feels like the time I saved using an LLM I then give right back when reassembling the mental model.
- curtisszmania 1y ago[dead]
- ColinEberhardt 1y agoThanks for sharing pmabanugo, a couple of those posts are new to me too. If you’re taking submissions, I’ve been exploring how to make the most of these tools for the past few months, here’s my latest post: https://blog.scottlogic.com/2025/05/08/new-tools-new-flow-the-cognitive-shift-of-ai-powered-coding.html https://blog.scottlogic.com/2025/05/08/new-tools-new-flow-th...
- easygenes 1y agoI think none of these offer much useful insight beyond the overarching idea of peer programming beating just vibe coding. The best structure I've found which leverages this idea is called BMAD, and treats the LLM as though it were a whole development team in an orchestrated way that you have full control over. https://youtu.be/E_QJ8j74U_0 https://youtu.be/E_QJ8j74U_0 https://github.com/bmadcode/BMAD-METHOD https://github.com/bmadcode/BMAD-METHOD
- pmbanugo 1y agoLooks like an elevated vibe coding method for UI development. Does this work for non-web/UI development?
- easygenes 1y agoYou're always limited by the knowledge gaps of the underlying LLM. The method is otherwise the most coherent way to work to the strengths of the LLM through disciplined context and role management. Nothing about it is UI focused, and leans more on general agile team structures than anything else.
- CompoundEyes 1y agoI write a lot of “defensive” C# code in my day job expecting that someone very inexperienced / offshore will be working with it in the future (and I will be reviewing it four months later when no longer on the project). I call it “corporate coding”. Lots of interfaces that must be adhered to, ioc, injection and annoyingly strong patterns. Anything that makes going off the rails a lot of work — the path of most resistance — glaring in code reviews. But…key logic concentrated in a few taller files so none of the drilling through abstraction so easy to comprehend for a newbie. I want to take some time with a defensive coding approach and LLMs. Particularly scoping it to a certain project or folder in a layered architecture. Why let it know of the front end, back end, database all at once? Of course it’ll get discombobulated. I’ve also been experimenting with giving an LLM coins and a budget. “You have 10 coins to spend doing x, you earn coins if you m,n,o and lose coins if you j,k,l” this has reduced slop and increased succinctness. It will come back, recount what it’s done explaining the economy and spending. I’ve had it ask “All done boss I have 2 left how can i earn some more coins?” It’s fun to spy on the thinking model working through the choices “if I do this it’ll cost me this so maybe I should do this instead in 1 line of code and I’ll earn 3 coins!”
- maximge 1y agoThe article references https://www.seangoedecke.com/practical-ai-techniques https://www.seangoedecke.com/practical-ai-techniques, which states: > AI is much better than strong engineers at writing very short programs: in particular, it can produce ten to thirty lines of straightforward mostly-working code faster than any engineer. > How can you leverage this? There’s not much demand for this kind of program in the day-to-day of a normal software engineer. Usually code either has to be a modification to a large program, or occasionally a short production-data script (such as a data backfill) where accuracy matters a lot more than speed. While this may be technically correct — there’s little demand for standalone small programs — it overlooks a crucial reality: the demand for small code segments within larger workflows is enormous. Software development (in my experience) is built around composing small units — helpers, glue code, input validation, test cases, config wrappers, etc. These aren’t standalone programs, but they’re written constantly. And they’re exactly the kind of 10–30 line tasks where LLMs are most effective. Engineers who break down large tasks into AI-assisted microtasks can move faster. It’s not about replacing developers — it’s about amplifying them.
- james3247 1y ago[dead]