LLMs are putting pressure on junior tech jobs. Learn how to stay ahead.
Despite the title, this article chronicles how GPT is threatening nearly all junior jobs, using legal work as an example. Written by Sourcegraph, which makes a FOSS version of GitHub Copilot.
Interesting article. But as a veteran developer the whole AI trend reminds me of the outsourcing trend back in the mid 2000s.
Back then Western developers (especially junior and mid levels) were seen by many companies as a waste of money. "We can pay for three developing world developers for the price we pay for one American/European one! Why are we wasting our money?!"
And so the huge wave of layoffs (fuelled also by the dot com bubble bursting and some other things) kicked off. And many companies contracted out work to India, etc. It was not looking good for us Western developers.
But then the other shoe dropped. The code being sent back was largely absolute shite. Spaghetti code, disparate platforms bound together with proverbial duct tape, no architectural best practices, design anti-patterns, etc etc. And a lot of these systems started falling apart and required Western developers and support engineers to fix them up or outright replace them.
Now, this isn't a sleight on Indian of other developing world developers. I've met lots of phenomenal programmers from that part of the world. And developers there have improved a lot and now there are lots of solid options for outsourcing to there. But there's are still language and culture barriers that are a hurdle, even today.
But I digress. My underlying point is that there are similarities with today's situation with what has happened before. Now, it's very possible LLMs will go to the next level in several years (or more) time. But I still think we are a ways away from having an AI engine that can build a complex, sophisticated system in a holistic way and have it capable of implement the kinda of crazy, wacky, bizarre business rules that are often needed.
Additionally, we've heard this whole "developers are going to be obsolete soon" thing before. For 20 years I've been hearing that self-writing code was just around the corner. But it wasn't even close in reality. And even now it's not just around the corner.
No doubt, AI will hit a whole nother level at some point. The stuff you can do with Chat GPT and the like it's insane, even right now (though as another article here on Lenny earlier today said, quite a lot of LLM code output is of suspect quality to say the least). And I know the market is rough right now for greener developers. But I think we're about to see history repeat itself.
Some companies will lean heavily into AI to write code, with only a few seniors basically just curating it and slapping it together. And other companies will find a middle ground of having juniors and seniors using AI to a more limited and careful level. Those latter companies will fare a lot better with the end product, and they will also be better prepared with regard to tribal knowledge transfer (which is another topic in this altogether). And when that epiphany is realized it will become the default approach. At least for another 10-20 years until AI can change things up again.
Thing is, outsourcing never stopped. It's still going strong, sending jobs to whichever country is cheapest.
India is losing out to Indonesia, to Mexico, and to S American countries.
It's a really stupid drive to the bottom, and you always get what you pay for. Want a good development team in Bengaluru? It might be cheaper than in the US, but not that much cheaper. Want good developers in Mexico? You can get them, but they're not the cheapest. And when a company outsources like this, they've already admitted they're willing to sacrifice quality for cost savings, and you - as a manager - won't be getting those good, more expensive developers. You'll be getting whoever is cheapest.
It is among the most stupid business practices I've had to fight with in my long career, and one of the things I hate the most.
Developers are not cogs. You can't swap them out like such, and any executive who thinks you can is a fool and an incompetent idiot.
Outsourcing is realistically often a tool to get mass, not for cost.
There's a reason so many people went to coding boot camps, there was a huge demand for developers. Here in Germany for quite a while you literally couldn't get developers, unless you paid outrageous salaries. There were none. So if you needed a lot of devs, you had the chance to either outsource or cancel the project.
I actually talked to a manager about our "near shoreing" and it wasn't actually that much cheaper if you accounted for all the friction, but you could deliver volume.
BTW: there's a big difference between hiring the cheapest contractors you can find and opening an office in a low income country. My colleagues from Poland, Estonia and Romania were paid maybe half what I got, but those guys are absolutely solid, no complaints.
Except "mass" is not useful by itself. It's not a chair factory where more people equals faster delivery, just like 9 women won't deliver a baby in a month. I wish companies understood this.
Corporations don't have one projects, they have dozens, maybe hundreds. And those projects need staffing.
Itβs not a chair factory where more people equals faster delivery
And that's the core of your folly - latency versus throughput. Yes, putting 10 new devs in a project won't increase speed magically. But 200 developers can get 20 projects done, where 10 devs only finish one.
Opening an office is a completely different thing; there is an enormous difference between offshore contractors and offshore employees. That much, I'll agree with.
In the US, though, it's usually cost-driven. When offshore mandates come down, it's always in terms of getting more people for less cost. However, in most cases, you don't get more quality code faster by throwing more people at it. It's very much a case of "9 women making a baby in one month." Rarely are software problems solved with larger teams; usually, a single, highly skilled programmer will do more for a software project than 5 junior developers.
Not an projects are the same. Sometimes what you do need is a bunch of people. But it's by far more the exception than the rule, and yet Management (especially in companies where software isn't the core competency) almost always assumes the opposite.
If you performed a survey in the US, I would bet good money that in the majority of cases the decision to offshore was not made by line managers, but by someone higher in the chain who did not have a software engineering degree.
IMHO, the biggest problem with outsourcing is the distance and time gap. There isnβt enough overlap to help people get unblocked in the middle of the day. So they either make stupid assumptions and plow ahead, or freeze up and slow down.
We've reached the power limits of what AI and LLMs are capable of, that's why Google, Microsoft and Amazon are investing in nuclear power and funding projects like reopening three mile Island. They need a good clean source of energy to fuel these data centers running copilot and Gemini. The thing is they don't want us to know they're at their limits right now, because when they admit that, the AI bubble will burst and investment money will dry up. That's where we are right now, humanity has created something that requires so much energy to run that nuclear fuel is the only option to keep up with power demands. At least it's clean and efficient energy.
The closer a job is to the skeleton of an industry, the less replaceable it is.
What that "AI" does attack is learning of all kinds. It eats simpler tasks which would require some understanding and work as a step for someone to learn some area more gradually. It also poisons the common information space with degenerate output.
It's sort of a subtle mass destruction weapon aimed at cultures of people learning to create, as opposed to cultures of people stealing and teaming up to gain some power over what's already created.
That said, I don't understand for whom are such tools useful. Except for the wow-effect. The whole reason I'm looking for documentation, for example, is to find something correct. I don't want the appearance of a correct answer. I want the correct answer. A good enough appearance won't give me the knowledge of reality to make a functional thing.