my take from this article - there's a point you miss. is the organization product driven ? because usually that changes how engineers solve or approach problems. a few organizations are product driven.
if it's product led - and every engineer no matter the level are supposed to understand the business and the requirements that drive value i.e create their own tickets etc - then yeah the value of the junior engineer stays the same or goes up.
with other orgs - where product managers act like high priests and everything has to go through Jira. then the value of not just junior engineers but engineers in general has been always at an all time low.
I think it is less about junior/mid engineers, and more just about the kinds of work inexperienced/cheap developers are often doing: assembly line, JIRA-ticket-taker type development.
This is especially impacting Indian tech workers in the US [0] since these are often the types of roles that InfoSys and other foreign tech consulting firms are staffing. The new $100,000 fee to sponsor an H1B visa has made it difficult to justify hiring foreign tech workers when most of the time they are just going to be using American LLMs to do their work anyway.
> The junior engineer executes it, which nowadays means prompting it to an AI tool, and creating a pull request (PR).
The PR receives feedback from more senior engineers. The junior engineer gets the feedback and takes it to the AI tool again, proposing changes.
Yeah this part should not exist anymore. It doesn’t where I work.
When I get a PR I just ask an agent to make the proposed changes. There is absolutely zero incentive for me to give feedback for you to give to an agent when I can give it to an agent myself.
Coding isn’t the job anymore. It’s understanding systems and architecture design, and ownership of what you work on. Being able to design solutions, understand them, deliver them and support them in production is the job now. Engineering is still engineering. End to end ownership is the job.
Even if AI does the coding, I cannot understand the architecture of a change unless you split it in individual tasks that are "as small as possible but no smaller". And even if AI does the code review, the architecture review falls onto me.
Making changes to someone else’s PR (other than extremely trivial ones) feels like they don’t have much ownership. People often have a reason for doing things the way they did and skipping over them seems like a mistake.
I think the fear is that the "higher" paying webdev jobs will be drying up while those traditional industries you mentioned still have the need for developers but auto, medical, and weapon industries never paid well.
Remember moving to New England to look for work and all the interesting embedded medical device companies paid like $80k less than a react dev job I got at an ISP.
I'm in Medical Devices and while AI is at best a small part of development right now, rest assured that we are actively investigating how to make it an approved part of our process. Then again, coding was only ever a small part of our job.
Nope, whatever the customer hires us for, webdev, distributed systems, desktop, mobile, consulting on architecture, whatever makes them happy and gets us a contract.
> If the assumption is that AI is going to radically simplify the technical portion of the role, then the people who have started their careers with AI will be in the best spot once they have acquired the experience.
This doesn't make sense - AI is to allow unskilled people to produce what was previously only produced by skilled people.
IOW, how does having 2 years of experience using an LLM to generate code beat having 2 months of experience?
The whole point of using the LLM is that very little skill is involved; how does starting earlier with it provide an advantage? If it's as good as it is claimed to be, starting later with it won't make a single iota of difference to the generated results, compared to someone who started earlier.
I'd say I'm in a better position by mostly ignoring AI so far - I haven't wasted any time or effort working out the current week's fashion in AI prompting methods that will be out of date by next week.
This is something I've been thinking about the last couple days: how to get junior engineers to be valuable.
I developed a system to help prepare for leet coding interviews so I never feel lost under pressure solving a problem again. It is like a debugger that steps through the code showing all the values of all the variables with data visualizations that reflect the logic so I can grok what it is doing. [0]
After I had the Claude build it, I started looking at the values and there were some mistakes. So, again, the coding agent ran all the code, recorded all the values, and made sure that they line up.
Here is the really cool thing about that. The coding agents can't be trusted. By observing the values stepping though, what I really was doing was debugging coding agent code. It is debugging code presented in a way that is extremely simplified.
What I've been thinking about yesterday and today is, can I do the same thing with a pull request? Have the coding agent run the code, capture all the values, and create a console for the reviewer to step through looking at with data visualizations that abstractly represent that code.
Two things. 1. Coding agents can't be trusted and 2. reviewing code is very difficult. But is it possible to use coding agents to make reviewing code easy for humans? I think so.
That would be a great way for junior engineers to be extremely useful. They only have to step through the code and make sure that all the values line up.
Is this just an ad for the product? How is this connected specifically to junior engineers? Is it implying that they cannot debug code without this kind of tool while more experienced people can?
It largely depends on the person. We have several junior engineers who cannot solve a problem without AI. When AI can’t solve it, they just keep trying and failing. And I mean weeks to months late. Then rinse and repeat on the next task. It used to be that they would have been forced to seek help from a senior engineer. Combine the teaching with a real struggle is what makes them better.
As it is now, they aren’t being taught and they’re not learning from what the AI is producing because they don’t understand it. The produced code is a black box, and the AI’s development is a black box too. All they know is that running it produces something like what they asked for. They have no idea about failure modes which is a fundamental concept of engineering. The worst part is that AI is covering up their deficiencies. They don’t know what skills they lack. They don’t even know what skills are required because they haven’t put the effort in.
There are obviously good junior engineers that are using AI judiciously and not as a crutch. They’re the ones who still interact with seniors to get help and actually learn. They would have been successful without AI too. These are the ones the author is talking about. In my experience, the momentum is moving towards the worse type of junior the more AI is adopted. Unless that changes, it will erase their value.
It largely depends on the person. We have several junior programmers who cannot solve a problem without FORTRAN. When the compiler can't produce efficient code, they just keep recompiling and failing. And I mean weeks to months late. Then rinse and repeat on the next routine. It used to be that they would have been forced to seek help from a senior programmer who knew the machine. Combining the teaching with a real struggle at the console is what made them better.
As it is now, they aren't being taught, and they're not learning from what the compiler is producing because they don't understand it. The emitted object code is a black box, and the compiler itself is a black box too. All they know is that running it produces something like what they asked for. They have no idea about register allocation or instruction timing, which is a fundamental concept of programming. The worst part is that automatic programming is covering up their deficiencies. They don't know what skills they lack. They don't even know octal exists, because they haven't put the effort in.
There are obviously good junior programmers who use FORTRAN judiciously and still read their core dumps. They're the ones who still interact with the senior operators and actually learn the machine. They would have been successful with a plugboard too. In my experience, the momentum is moving toward the worse type of junior the more automatic programming is adopted. Unless that changes, it will erase their value.
This analogy only works if you’re ready to commit _only prompts_ and have those prompts do a clean “compile” of your production runtime everytime you pull.
See my response to the other comment if you don't understand that analogy is not the same as "identical".
And to state that "This analogy only works if ...." is just PATENTLY wrong. The analogy works fine if you say that it compares analogous situations. Like if we focus on some encumbrance complaining that "kids these days are too stupid because they don't understand the fundamentals like I do" or "These new tools that make it easier for stupid people, not smart people like me, to make stuff is dangerous because they don't know what they are doing". That's just a few of MANY analogous observations we can make for the two situations. But I guess you think that only the thing you care about is the only thing that exists.
And in the end, everybody who complains like this is just going to be shown to be just as mistaken as all the people who complained that "people who don't code in assembly are dangerous!" And it's just marvelous to watch it play out slowly over the last couple of years. And we are just a couple of years in. I'm just making a note of everybody who is mistaken, as a study in denial and biased thinking. The end for all of this was obvious after Opus 4.6 hit. And it's just getting more and more obvious with each model release and harness improvement. This is a gold mine for studying flawed thinking.
It turns out that this almost works. You'd probably want to commit explicit design documents btw, not every last prompt.
FWIW, when people try this out in practice, they tend to commit the design docs alongside the generated tests and the generated code.
Mutating the docs then leads to mutations in the code.
Several friends and I have workflows that look a bit like this, but I know for sure mine isn't 100% strict(yet?), and ymmv. Everyone is still figuring out the best practices I think.
Thank you for the first sensible response that actually engages with the point I made. And your answer is better than mine, and less angry.... :P
The question from glouwbug was just taken for granted to be "no, and therefore the analogy fails." And if I understand your answer, it's basically: "no, but we're visibly closer every quarter, and here's what the intermediate state looks like, and we might even get there"
The interesting thing in all of this to me is what must happen for the same spec to be deterministically certain to generate the same software. Could you delete the code, regenerate from docs alone, and trust the result? And obviously.... not yet. In practice, workflows drift, sometimes you patch the code directly because it's faster, and now code and docs have not been properly updated.
But the entire flow and concept of: [Spec] -> [AI/Harness] -> [Finished software], and how we increasing determinism in that flow, is just immensely interesting to me.
But what’s interesting now is that the degree of determinism is increasing, as the community as a whole keeps refining the individual parts. The importance of spec becomes more obvious when the feedback loop speeds up, from spec to running software. That already made a huge difference in how many think about spec. There are multiple GitHub projects that are "spec only," where the goal is to spec it out in such a way that the software one wants is the inevitable result, if you just input the spec into a AI/harnes.
And the AI gets better, and the harnesses get better. So at some point we probably live in a reality where we can say: "If you spec out the software you want in this specific way, and add in these guidelines in AGENTS.md, and use X AI with Y harness, you almost certainly get identical software out the other end".
And yes "almost" is faaaaar from "always identical output". But the fact that we are even in the game of increasing determinism, in the Spec->AI->Software flow, is just mind-blowingly cool to me.
That is a detour from my main point, though, that on one specific level of analysis (can we move up one level of abstraction and lose some detail understanding, but gain more in productivity), AI, compiler, software frameworks, are all examples of the answer being: Yes.
And I do agree that we need to mitigate the damage that people with less experience can do because they don't know what pitfalls to avoid. But I would rather we focus on fixing that by improving the AI and harness, than the people that just keep saying that "AI is bad". In the same way I would rather make a tractor safer to use, not just complain that it's dangerous because someone drove it into the lake. Because the goal is not to make the perfect deterministic output from a compiler. that's just a step towards the real goal, which should, in my mind, be to help other people solve problems and do useful stuff. In the same way that the goal of the tractor is not to just plow the field, but to plow the field as fast and efficiently as possible so we can feed ourselves.
Wall of text because this topic has been bothering me for a while now, and Im using this thread to sort out my own thinking on it.
> you almost certainly get identical software out the other end
I think you'd get a set of convergent solutions, where the actual implementations might be very different.
This also explains why you might want to keep more artifacts than just the design. There might be different performance overall, or interesting properties/side effects on axes that were not defined in the spec.
Possibly -at the limit- a theoretically 'perfect' spec would be 100% deterministic (eg. by defining the final object code down to the bit) but that wouldn't be a useful operation I don't think?
The other approach to getting bit-perfect output would be to run a specific specified AI at temperature 0, but that makes it less 'smart'.
Arguably (Turing 1936) shows it's impossible in the general case, and ever since then software development has been the story of how to efficiently find close approximations in a finite and affordable amount of time. :-P
I think your FORTRAN analogy depends on the assertion that a design doc is some kind of technical abstraction, like a compiler or a for-loop. And there's a lot of disagreement with that premise. :)
> “…they aren’t being taught and they’re not learning from what the AI is producing because they don’t understand it. […] the ones who still interact with seniors to get help and actually learn.”
You’re describing a gap between those who would otherwise fail in their jobs sooner, and those who already know what to do. Sounds like there is a new paradigm for management, too.
"The worst part is that AI is covering up their deficiencies. They don’t know what skills they lack. They don’t even know what skills are required because they haven’t put the effort in."
This is the biggest issue with AI. It is incredible when in the right hands (Senior devs who know good fundamentals and know how to code) but really bad when in wrong hands (Juniors with no fundamentals but they are made to believe that they know what they are doing).
You cannot speed run human learning. Investing time to read and absorb the material, repeatedly exercising and expanding your understanding, is the only path.
Not coincidentally, this is exactly how we train our AI.
Edit: but to answer your question, an AI harness can only emulate the best teaching methods. Learning is up to the human.
It's a catch-22 because juniors need AI to be competitive, but you need to do the grunt work yourself for a few years before you really build the skills necessary to advance. I can't imagine learning how to do math by simply reading a solution book.
>It used to be that they would have been forced to seek help from a senior engineer
You still have standups, right?
I'd be questioning why at the very least the team lead/manager isn't questioning the lack of progress during those meetings and immediately requesting a more senior engineer help out.
Even before AI this was how it worked. Unless the junior engineer is being purposely secretive about lack of progress, which would have happened back then too, then this isn't an AI problem, it's a team culture one.
Yeah, I can’t imagine having something “weeks or months” late without intervention. That isn’t a failing of AI or the junior, that’s a failing on the team processes/manager/everyone else on the team.
I once (before ai) had a junior waste two months trying and failing to make a relatively simple change. As it turns out she it never occurred to her that she might want to copy the newly compiled executable ("it's the thing visual studio builds for you when you press build!" I had to explain this) to the server she was trying to run it on. So she never once managed to execute her changed code, which kept degrading as more and more changes accumulated trying to "fix" it
Sort of like how there's a running joke, "this meeting could have been an email"; I think that for all the substance I found in this "4 minutes to read" blog post, it could have been a one-sentence comment in some discussion thread somewhere instead.
I couldn't disagree more. Juniors have very poor design sense and can't guide the AI to land in the right spot. Consistently on my team the developers who are the most reliant on AI are causing me the most trouble. They produce a lot of code but constantly make the same mistakes and can't seem to learn and improve their own design skills, or are doing it at a snail's pace.
If the task is simple enough that you can throw AI at it with an intern and get it solved, then it should've been solved already in the first place. I'd argue in more mature organizations all the things that are "backlog todos" are such because there is inherent complexity that can not be solved simply by throwing tokens at it or there are too many unknown unknowns.
> This summer, we assigned the problem to an intern (that’s less tenure than a junior engineer). The intern led the development of this feature. They talked to the product manager to understand the problem and requirements. They wrote the design document on how to approach it, aligned with the team, and built it. Of course they did that with the help of AI, and the team they were working with.
So, interns can still produce some value. How much value?
> In our product, there was a feature which had been requested for years, but had not been built yet. It wasn’t overly complex, but it was not critical.
Said another way: The feature was of so little value that it was not even worth assigning to a non-AI-assisted intern! This is what most of us mean when we say “AI lowers the value of…”
Thanks. How do you think that lowers the value of an intern, can you explain it?
You're right that pre-AI that feature would not have been given to an intern (because they wouldn't be able to own it). So pre-AI, customers had a problem, we paid the intern, but could not solve the problem. Post-AI, the same problem exist, we pay the same intern. The customer problem is solved.
Every single time I see an article like this come out on hacker news I have the same reaction “sure, this year”.
There is still room for juniors… in fall of 2026. Will there be in fall of 2030? If your thesis rests on LLMs and AI systems not dramatically improving over where they are today, is it worth anything?
The real value of a junior engineer is that they will become a senior. That's really always been the case IME. Juniors in the first year or two of their career are routinely a net negative, maybe break even. But the thing is, unless you're making the bet that LLMs are going to _entirely_ replace human SWE, we as an industry have to maintain a pipeline to take in juniors and level them up. If we don't, we're going to be in real trouble in about 10 years.
I think reducing junior value to something like time to first merge is playing with fire. Semblance of value is not value, and the value increase here, if there is any, is from the AI.
I trust junior + claude significantly less than I trusted pre-AI juniors. I do not think it will age well to put so much pressure on juniors to make contributions early and with mostly automated mentorship before they really understand what they are doing and why.
"They don’t know what skills they lack. They don’t even know what skills are required because they haven’t put the effort in."
This is it.
Evolving into a developer role was more or less directly proportional to the effort you put in. Before AI I used to ask applicants to the department I oversaw whether they have a GitHub Account with a project to show, and bonus, which they are immensely proud of, no matter what.
You had to grind and hustle, no shortcuts, and no amount of stackoverflow.com copy and paste could save you.
And that leads me to two problems for the disguise of one: effort. This not only means reading and redoing simple exercises to complex projects, but committing to it instead of doom scrolling or TikTok frenzy.
I reserved weekends for certain technical books and was frustrated, that there was so few time and so much book left.
AI gave instant gratification a new dimension. It is horrible until AI gets as good as a perfect project from a prompt or we need to abandon it.
Poor young guys, the joy of tuning out is over either by design or habit.
And make no mistake. I don't blame them. We are all victims and perpetrators at the same time but on a different level.
> It is horrible until AI gets as good as a perfect project from a prompt or we need to abandon it.
Getting close to it with my recent test of cursor cloud workflow.
I've spent 300M tokens in a day and it achieved what I wanted. Manually would take me a month instead of day so it's not 2x it's 20x faster but project was quite simple rewrite of 20k lines of C++ and there was reference implementation. It also improved on original implementation perf wise.
The problem is with fuzzy ideas for new development and with catching up with comprehension when working on something new - I guess we need better visualization tools for code. Product manager work seems like bottleneck currently and monitoring because coding can move quite fast.
In a world where code can be generated rapidly, it's super critical that you have a core few set of people who really understand the macro design of the codebase and can continue to factor it well and iterate quickly.
Adding more people and contributors just increases the probability that nobody really understands the structure of the codebase, it degrades into DRY and unfactored slop.
The cost of reviewing other people's code is almost too high to be worthwhile now... It's much easier to just cut them out and do it yourself.
A core set of very skilled people can just implement whatever change you are doing, but better, cleaner and faster.
I built a fairly large and complex project with Codex and had to spend about 50% of my time factoring things down as I went into well contained modules, had a full understanding of the architecture at a high level. It would have been pretty difficult to do this if bringing in other contributors.
That makes sense from an engineering perspective, but from a business perspective you don't want the understanding to live in the heads of a small team of people. Companies own the codebase, they don't own their employees. If losing a single employee means losing the understanding for a significant chunk of the codebase, that's a serious risk. With the senior/junior model where you have a senior engineer architecting the system and a small team implementing that architecture, the understanding lives in the senior engineer's head, but it also lives in the head of the person who implemented it, and their teammates who implemented the parts that interact with it and were present for the discussions probably have enough knowledge to figure it out pretty quickly, so as long as the company doesn't lose the whole team all at once they're okay. If you make the team more productive with AI tools you can have the team do more, which still cuts down the total headcount, if to a lesser degree, but preserves the redundant understanding.
Not sure about that, I have seen hiring frozen, as smaller teams can deliver more, and most of the tasks one could give juniors like cleaning up code, documentation, unit tests, and co, are now basically automated.
71 comments
[ 206 ms ] story [ 983 ms ] threadif it's product led - and every engineer no matter the level are supposed to understand the business and the requirements that drive value i.e create their own tickets etc - then yeah the value of the junior engineer stays the same or goes up.
with other orgs - where product managers act like high priests and everything has to go through Jira. then the value of not just junior engineers but engineers in general has been always at an all time low.
This is especially impacting Indian tech workers in the US [0] since these are often the types of roles that InfoSys and other foreign tech consulting firms are staffing. The new $100,000 fee to sponsor an H1B visa has made it difficult to justify hiring foreign tech workers when most of the time they are just going to be using American LLMs to do their work anyway.
[0] https://thefederal.com/category/news/h1b-visa-indian-tech-wo...
Yeah this part should not exist anymore. It doesn’t where I work.
When I get a PR I just ask an agent to make the proposed changes. There is absolutely zero incentive for me to give feedback for you to give to an agent when I can give it to an agent myself.
Coding isn’t the job anymore. It’s understanding systems and architecture design, and ownership of what you work on. Being able to design solutions, understand them, deliver them and support them in production is the job now. Engineering is still engineering. End to end ownership is the job.
AI just made it obvious.
This is an incredibly good and concise articulation of where the role is going. Thank you.
Remember moving to New England to look for work and all the interesting embedded medical device companies paid like $80k less than a react dev job I got at an ISP.
This doesn't make sense - AI is to allow unskilled people to produce what was previously only produced by skilled people.
IOW, how does having 2 years of experience using an LLM to generate code beat having 2 months of experience?
The whole point of using the LLM is that very little skill is involved; how does starting earlier with it provide an advantage? If it's as good as it is claimed to be, starting later with it won't make a single iota of difference to the generated results, compared to someone who started earlier.
I developed a system to help prepare for leet coding interviews so I never feel lost under pressure solving a problem again. It is like a debugger that steps through the code showing all the values of all the variables with data visualizations that reflect the logic so I can grok what it is doing. [0]
After I had the Claude build it, I started looking at the values and there were some mistakes. So, again, the coding agent ran all the code, recorded all the values, and made sure that they line up.
Here is the really cool thing about that. The coding agents can't be trusted. By observing the values stepping though, what I really was doing was debugging coding agent code. It is debugging code presented in a way that is extremely simplified.
What I've been thinking about yesterday and today is, can I do the same thing with a pull request? Have the coding agent run the code, capture all the values, and create a console for the reviewer to step through looking at with data visualizations that abstractly represent that code.
Two things. 1. Coding agents can't be trusted and 2. reviewing code is very difficult. But is it possible to use coding agents to make reviewing code easy for humans? I think so.
That would be a great way for junior engineers to be extremely useful. They only have to step through the code and make sure that all the values line up.
[0] https://adamsohn.com/algoviz/
As it is now, they aren’t being taught and they’re not learning from what the AI is producing because they don’t understand it. The produced code is a black box, and the AI’s development is a black box too. All they know is that running it produces something like what they asked for. They have no idea about failure modes which is a fundamental concept of engineering. The worst part is that AI is covering up their deficiencies. They don’t know what skills they lack. They don’t even know what skills are required because they haven’t put the effort in.
There are obviously good junior engineers that are using AI judiciously and not as a crutch. They’re the ones who still interact with seniors to get help and actually learn. They would have been successful without AI too. These are the ones the author is talking about. In my experience, the momentum is moving towards the worse type of junior the more AI is adopted. Unless that changes, it will erase their value.
As it is now, they aren't being taught, and they're not learning from what the compiler is producing because they don't understand it. The emitted object code is a black box, and the compiler itself is a black box too. All they know is that running it produces something like what they asked for. They have no idea about register allocation or instruction timing, which is a fundamental concept of programming. The worst part is that automatic programming is covering up their deficiencies. They don't know what skills they lack. They don't even know octal exists, because they haven't put the effort in.
There are obviously good junior programmers who use FORTRAN judiciously and still read their core dumps. They're the ones who still interact with the senior operators and actually learn the machine. They would have been successful with a plugboard too. In my experience, the momentum is moving toward the worse type of junior the more automatic programming is adopted. Unless that changes, it will erase their value.
Are you ready to do that?
And to state that "This analogy only works if ...." is just PATENTLY wrong. The analogy works fine if you say that it compares analogous situations. Like if we focus on some encumbrance complaining that "kids these days are too stupid because they don't understand the fundamentals like I do" or "These new tools that make it easier for stupid people, not smart people like me, to make stuff is dangerous because they don't know what they are doing". That's just a few of MANY analogous observations we can make for the two situations. But I guess you think that only the thing you care about is the only thing that exists.
And in the end, everybody who complains like this is just going to be shown to be just as mistaken as all the people who complained that "people who don't code in assembly are dangerous!" And it's just marvelous to watch it play out slowly over the last couple of years. And we are just a couple of years in. I'm just making a note of everybody who is mistaken, as a study in denial and biased thinking. The end for all of this was obvious after Opus 4.6 hit. And it's just getting more and more obvious with each model release and harness improvement. This is a gold mine for studying flawed thinking.
FWIW, when people try this out in practice, they tend to commit the design docs alongside the generated tests and the generated code.
Mutating the docs then leads to mutations in the code.
Several friends and I have workflows that look a bit like this, but I know for sure mine isn't 100% strict(yet?), and ymmv. Everyone is still figuring out the best practices I think.
The question from glouwbug was just taken for granted to be "no, and therefore the analogy fails." And if I understand your answer, it's basically: "no, but we're visibly closer every quarter, and here's what the intermediate state looks like, and we might even get there"
The interesting thing in all of this to me is what must happen for the same spec to be deterministically certain to generate the same software. Could you delete the code, regenerate from docs alone, and trust the result? And obviously.... not yet. In practice, workflows drift, sometimes you patch the code directly because it's faster, and now code and docs have not been properly updated.
But the entire flow and concept of: [Spec] -> [AI/Harness] -> [Finished software], and how we increasing determinism in that flow, is just immensely interesting to me.
But what’s interesting now is that the degree of determinism is increasing, as the community as a whole keeps refining the individual parts. The importance of spec becomes more obvious when the feedback loop speeds up, from spec to running software. That already made a huge difference in how many think about spec. There are multiple GitHub projects that are "spec only," where the goal is to spec it out in such a way that the software one wants is the inevitable result, if you just input the spec into a AI/harnes.
And the AI gets better, and the harnesses get better. So at some point we probably live in a reality where we can say: "If you spec out the software you want in this specific way, and add in these guidelines in AGENTS.md, and use X AI with Y harness, you almost certainly get identical software out the other end".
And yes "almost" is faaaaar from "always identical output". But the fact that we are even in the game of increasing determinism, in the Spec->AI->Software flow, is just mind-blowingly cool to me.
That is a detour from my main point, though, that on one specific level of analysis (can we move up one level of abstraction and lose some detail understanding, but gain more in productivity), AI, compiler, software frameworks, are all examples of the answer being: Yes.
And I do agree that we need to mitigate the damage that people with less experience can do because they don't know what pitfalls to avoid. But I would rather we focus on fixing that by improving the AI and harness, than the people that just keep saying that "AI is bad". In the same way I would rather make a tractor safer to use, not just complain that it's dangerous because someone drove it into the lake. Because the goal is not to make the perfect deterministic output from a compiler. that's just a step towards the real goal, which should, in my mind, be to help other people solve problems and do useful stuff. In the same way that the goal of the tractor is not to just plow the field, but to plow the field as fast and efficiently as possible so we can feed ourselves.
Wall of text because this topic has been bothering me for a while now, and Im using this thread to sort out my own thinking on it.
I think you'd get a set of convergent solutions, where the actual implementations might be very different.
This also explains why you might want to keep more artifacts than just the design. There might be different performance overall, or interesting properties/side effects on axes that were not defined in the spec.
Possibly -at the limit- a theoretically 'perfect' spec would be 100% deterministic (eg. by defining the final object code down to the bit) but that wouldn't be a useful operation I don't think?
The other approach to getting bit-perfect output would be to run a specific specified AI at temperature 0, but that makes it less 'smart'.
You’re describing a gap between those who would otherwise fail in their jobs sooner, and those who already know what to do. Sounds like there is a new paradigm for management, too.
This is the biggest issue with AI. It is incredible when in the right hands (Senior devs who know good fundamentals and know how to code) but really bad when in wrong hands (Juniors with no fundamentals but they are made to believe that they know what they are doing).
And if they can do that- could they do it to themselves- going from a junior to a pro conversation?
Not coincidentally, this is exactly how we train our AI.
Edit: but to answer your question, an AI harness can only emulate the best teaching methods. Learning is up to the human.
The same way you wouldn't let a junior electrician near a drill, he gets screwdrivers till he learns to be gentle.
AI should only be for people with existing knowledge of a trade.
You still have standups, right?
I'd be questioning why at the very least the team lead/manager isn't questioning the lack of progress during those meetings and immediately requesting a more senior engineer help out.
Even before AI this was how it worked. Unless the junior engineer is being purposely secretive about lack of progress, which would have happened back then too, then this isn't an AI problem, it's a team culture one.
So, interns can still produce some value. How much value?
> In our product, there was a feature which had been requested for years, but had not been built yet. It wasn’t overly complex, but it was not critical.
Said another way: The feature was of so little value that it was not even worth assigning to a non-AI-assisted intern! This is what most of us mean when we say “AI lowers the value of…”
You're right that pre-AI that feature would not have been given to an intern (because they wouldn't be able to own it). So pre-AI, customers had a problem, we paid the intern, but could not solve the problem. Post-AI, the same problem exist, we pay the same intern. The customer problem is solved.
The article shows that the market value of the intern is lower: Work was not prioritized and given to a higher-cost junior engineer.
> … pre-AI that feature would not have been given to an intern (because they wouldn't be able to own it)…
Meaning, a more-skilled, higher-cost employee would have to do some or all of the work.
There is still room for juniors… in fall of 2026. Will there be in fall of 2030? If your thesis rests on LLMs and AI systems not dramatically improving over where they are today, is it worth anything?
I trust junior + claude significantly less than I trusted pre-AI juniors. I do not think it will age well to put so much pressure on juniors to make contributions early and with mostly automated mentorship before they really understand what they are doing and why.
They use it like a crutch and are unable to think critically or do tasks manually.
I wouldn't want to hire anyone to my team with that deficiency.
This article is wrong.
This is it.
Evolving into a developer role was more or less directly proportional to the effort you put in. Before AI I used to ask applicants to the department I oversaw whether they have a GitHub Account with a project to show, and bonus, which they are immensely proud of, no matter what.
You had to grind and hustle, no shortcuts, and no amount of stackoverflow.com copy and paste could save you.
And that leads me to two problems for the disguise of one: effort. This not only means reading and redoing simple exercises to complex projects, but committing to it instead of doom scrolling or TikTok frenzy.
I reserved weekends for certain technical books and was frustrated, that there was so few time and so much book left.
AI gave instant gratification a new dimension. It is horrible until AI gets as good as a perfect project from a prompt or we need to abandon it.
Poor young guys, the joy of tuning out is over either by design or habit.
And make no mistake. I don't blame them. We are all victims and perpetrators at the same time but on a different level.
Getting close to it with my recent test of cursor cloud workflow.
I've spent 300M tokens in a day and it achieved what I wanted. Manually would take me a month instead of day so it's not 2x it's 20x faster but project was quite simple rewrite of 20k lines of C++ and there was reference implementation. It also improved on original implementation perf wise.
The problem is with fuzzy ideas for new development and with catching up with comprehension when working on something new - I guess we need better visualization tools for code. Product manager work seems like bottleneck currently and monitoring because coding can move quite fast.
In a world where code can be generated rapidly, it's super critical that you have a core few set of people who really understand the macro design of the codebase and can continue to factor it well and iterate quickly.
Adding more people and contributors just increases the probability that nobody really understands the structure of the codebase, it degrades into DRY and unfactored slop.
The cost of reviewing other people's code is almost too high to be worthwhile now... It's much easier to just cut them out and do it yourself.
A core set of very skilled people can just implement whatever change you are doing, but better, cleaner and faster.
I built a fairly large and complex project with Codex and had to spend about 50% of my time factoring things down as I went into well contained modules, had a full understanding of the architecture at a high level. It would have been pretty difficult to do this if bringing in other contributors.
Reviewing 100 lines of Junior dev slop was bad enough. Now 1000 lines of misguided jr dev ai slop?
Ugh.