Programmer salaries in the age of LLMs
milkyeggs.com
milkyeggs.com
The top peak in the law is due to human bias just the same.
>Just like how a partner at Cravath likely sketches an outline of how they want to approach a particular case and swarms of largely replaceable lawyers fill in the details…
Except those “replaceable” attorneys at Cravath are the top peak of the distribution. The distribution is caused by social decisions of what firms to compete with. Top salary information is well-publicized and firms who want to be in the category of “BigLaw” basically match each other.
The lower peak of the distribution is more local attorneys. Your local estate law attorney, government workers like district attorneys/public defenders, etc. who are not competing with Cravath for talent or clients.
I would assume this is already what exists in programming with “BigTech” salaries being equivalently publicized and matched across firms concerned with being perceived to be a “FAANG+”. If it doesn’t, I would guess the reason is that not enough positions actually exist in “BigTech” to make a significant blip on a population-wide salary graph. BigLaw attorneys exist in almost every medium-large city in the US, but you can’t say the same about BigTech programmers.
And then there are the, as you say, local attorneys doing routine real estate transactions or whatever. Which tend to be pretty middling compensation generally.
The story isn't quite that neat of course. Big company in-house counsels tend to be reasonably well compensated professional jobs and there are successful owners/partners of local law practices but there's a pretty good bimodal narrative in general.
You can imagine why there might be a modality for people who can land jobs at specific tech companies that pay outsized salaries because they're so profitable and can afford to be very selective based on (they hope) relevant criteria but it's certainly based on less clear metrics if nothing else.
This is the "not what you know, it's WHO you know" pattern. I imagine it's likely to accelerate. It'll still be important to go to the right university and pay expensive tuition - probably even MORE important - but you'll be able to have AI do most of the tedious, irrelevant academic side while you focus on the very important business of going to parties with the right people.
I imagine this bias exists because law schools are a dime a dozen, and lawyers have created another form of gatekeeping to augment their licensing rules.
As for the LLMs, stochastic parroting (hallucination), which is inherent to its design, makes it untrustworthy for precision work. Maybe some other architecture will prove more useful. LLMs can generate BS authoritatively which is easy to detect for toy examples and forgivable by the AI hype train but can be very costly or hard to fix in a complex system with a lot of moving parts.
I’m actually optimistic about the future of AI. At the same time I believe we should know the capabilities and understand the limitations of our tools in order to use them more effectively. Unfortunately people are misunderstanding tools like ChatGPT, etc. for we are human and vulnerable to anthropomorphism.
I agree but there is a certain "god of the gaps" process that's happening here.
To me what's been achieved so far is encoding text into natural (and programming) languages. These models can't reason and e.g., can't pass a Turing test. For example, if you play with GPT-3 or ChatGPT enough you can definitely get it to fail on a task a human would succeed at.
When models so far have achieved "reasoning" behavior, usually it's in conjunction with a classical algorithm -- for example AlphaZero used a model to evaluate chess positions but then ran a tree search algorithm to decide what move to play.
I think if LLMs can be combined effectively with some kind of computation process like in AlphaZero or some kind of "chains of thought" [1], then we might see them do things we'd truly call "reasoning".
Some "gaps" have been (1) "(encoding into) images is hard" (2) "(encoding into) natural language is hard" and now (3) "'reasoning' is hard" and afterwards (4) "subjective experience is hard".
Whether to be optimistic or pessimistic about AI depends on the final "gap" -- whether there is an irreplicable/noncomputable/etc. property of human consciousness other than qualia. That is, if "understanding" is hard (e.g., via some voodoo like [2]). If not humans will become obsolete, so I hope the answer is yes.
[1]: https://ai.googleblog.com/2022/05/language-models-perform-re...
[2]: https://en.m.wikipedia.org/wiki/Orchestrated_objective_reduc...
My brain is already negatively impacted having to juggle 3 separate package managers, know the syntax and inputs for 17+ different dotfiles in a repo and then actively context switch between at least 3-4 languages on a daily basis. I counted it up recently and I've built products in at least 20 languages over the past two+ decades. At some point you really just can't effectively compartmentalize it all and context switch perfectly. I try by using different fonts+colors per lang etc but it still is hard. AI has been a net win for syntax recall just by giving it gentle nudges towards intent.
What I meant was: Will you lose it if you don’t use it?
Maybe you won’t, I am not certain. Or maybe you will and you don’t see it now because the “net win for syntax recall just by giving it gentle nudges towards intent” relies on your hard earned ability to understand the code which is gained partly through exercise. You’ve already done your exercise.
I wouldn’t form an opinion just yet. For now we can ask the questions.
Edit: wording of the first sentence for clarity
Maybe we will have a mixed result similar to ORM example. It can lower the barriers to entry, which is good, but won’t eliminate the need for deep expertise. At least initially.
I've done a similar number of platform jumping but I honestly don't remember when I've used more than 3 or 4 at the same time. Like I was really into Clojure for ~1 year back around ~2010 - if you put me on a clojure project I'd be lost for a month. I wouldn't need to get over LISP and functional programming mindset again but the details are lost.
At this point I rarely see big paradigm shifts and it's just picking up the details + connecting with things I already know. I've outsourced remembering details to Google :)
First I tried it on a bunch of programming topics -- it definitely gets in the right ballpark, but then the details are frequently wrong.
I asked which languages have the F# |> operator, and it told me that OCaml, Elixir, Haskell and Scala do. 2 of them are correct, and 2 appeared wrong, so I googled it.
After Googling, then I asked it specifically if Haskell does, and it says no. I ask it if Scala does, and it apologizes for its earlier mistake.
It gave me a good although slightly shallow answer about how PyPy works, but then fell down hard for a prolog type checker, and a few other programming queries. It doesn't understand the question.
---
It is generally very mealy-mouthed and vague. It often doesn't answer the question directly, but just tells you what it happens to know in the ballpark.
I like another framing I saw on Twitter -- it's "mansplaining as a service". If you want someone to confidently explain things you didn't really ask about, and be frequently wrong, that's kinda what it does!!
---
After programming, I asked it about Black Sabbath, UFC, travel and biking, health, and got similarly vague/slightly incorrect answers.
It confabulates A LOT.
The best I can say is that Google is filled with spam now, so chatting with ChatGPT was a relatively fun and focused experience, after I took into account the fact that it is not "honest" and just trying to "please me" with closely related words.
I honestly don't get the hype, and I feel like there must have been some coordinated marketing aimed at me ...
If this chat is representative of what it can do for programming, then I think this article saying that "programmer salaries will be affected by LLM" is very weird.
It is assuming something that simply has NOT happened!
---
I mean even Geoff Hinton (who I respect) said several years ago that "we should stop training radiologists", and that plainly did not happen. Likewise with Elon and the fleet of self-driving taxis.
I'd honestly be surprised if someone wants to argue that a tech company staffed with LLMs + a few smart people is NOT like those predictions. Of course the blog post doesn't give a time frame, so it can't be falsified. But it appears to be nonsense.
(FWIW it doesn't matter to me personally, as I left the industry several years ago. Also FWIW I did work a little bit on deep learning, when the hype was in its upswing.)
I agree that a lot of it is anthropomorphism -- projecting some kind of intelligence, knowledge, or intention on what is really a big, expensive bag of data organized to respond to inputs.
Maybe there are other models that are better, but I was really, honestly not impressed with ChatGPT. Maybe people were hyping it too much for the last several weeks, and inflated my expectations.
i guess one difference might be that i also tried a variety of tasks where confabulation was called for, like making up games and getting it to play them with me.
all of this certainly does seem farther from productizability than the optimists admit... it tantalizingly 'almost works' in so many domains, but despite the rate of progress, its not obvious at all to me that it will soon converging on the reliability which is necessary for robust application.
playing with the tech in more creative areas has certainly expanded my mind as to what is and what may become possible, and i think this is true of the general reaction as well... it's the flashes of strangeness and potential, the weird use cases like simulated command lines and ascii art games, the cat-and-mouse of prompt injection... not hard to let your imagination run wild... depending on how much disbelief you're willing to suspend.
Still impressive, but if you had a picture with dogs sometimes a dog head would be pasted on top at the wrong angle. Confabulation is a great term for it IMHO.
But I can't see how people aren't impressed, we couldn't do this a few years ago, and surely we will build on top of this in coming years.
- taking point form, or messy notes, and converting it to full sentences/paragraphs. Useful for things like writing blurbs, longer emails, proposals. Naturally, it does veer towards cliche, so you kind of have to massage it back after.
- getting a bash script started in the right direction. I'm always fuzzy on bash syntax because I don't use it all the time. ChatGPT will usually screw up some details, but those can be fixed
- getting a general overview of a new topic area like a new software library, or say a historical period
It's like a really smart sheep dog or a junior junior carpenter. It's currently helping me refactor a .NET app to a trending pattern, not because it know how to do that exactly or which pattern is better, but because it doesn't tire out at the "boring" parts like I do, and it knows the difference (most of time) between IQueryable and ISomething that I just can't bother to google for the Nth time.
Stop anthropomorphizing computers, they hate that!
Goddamn do I hate this industry. I work hard to sow dissent in my blue-chip, VC startup though. Guerrilla tactics. And I get to do it raking in a quarter mil a year in my underwear.
Wrong, that research only shows that when you use a GPS, you don't learn routes as quickly. That is only equal to "impacts brain function negatively" in a narrow sense, which you should specify rather than use such a broad and scary-sounding phrase!
Brain function being negatively impacted is not scary on its own and not necessarily permanent.
I didn’t mean to scare you. It’s likely you are confusing the above phrase with “your brain will be altered forever” which is not what it means.
To be fair, this could be said of a surprising number of the developers I've interviewed too, and I checked -- they were hired by someone.
I wonder how code completion and syntax highlighting have altered the brains of programmers negatively as well.
Also there's distinct project structure difference between users of tree style project navigation vs find-anywhere or editor tabs vs modal windows/buffers. I mean, the influence is not negative, at least not obviously, but the deformation is there.
1 very highly compensated staff+ engineer
4 highly compensated senior engineers
4 pretty well-compensated mid-level engineers
2 decently compensated junior engineers
The future might look like:
1 yet-more-highly-compensated staff+ engineer who specializes in architecture
10 decently compensated junior engineers who specialize in error-checking LLMs and detail-intensive technical work
In the same way that paralegals aren't unskilled people, and aren't paid terribly -- but they aren't doing the same job as the partner-level lawyer who's crafting the legal strategy, and they don't have a simple clean progression to eventually getting his job.
10 highly compensated middle managers and their staff who convinced the c suite to fire the senior engineers because of an AI article they read
2 poorly compensated junior developers with an AI bot replacing a 10 person team, who will get canned when SHTF so the 10 middle managers can jump ship to the next company with a padded resume. There are also 10 people because the middle managers got their friends positions from the savings due to the firing of the old engineers.
How about
C suite to fire the senior engineers because a tier-1 consultancy convinces them they can deliver their product utilizing AI tools
Said consultancy knows AI can't deliver it, and uses mostly manual labor for it
All programmers end up at these consultancies
And the world keeps going as it thinks AI is solving everything, but it isn't. It's still Kumar in IT that's ssh'ing into the box.
The unintuitive thing about software engineering is that low-level implementation and high-level architecture are both equally sensitive to quality of talent (and equally impact your product quality and business outcomes) because every line of code is a business decision. That's a big reason why even entry-level SWE talent costs so much. There is no paralegal-level work in software - it's been automated away.
I feel like this idea that you can have a software architect that just corrales a bunch of lowly code monkeys is a model that was invented by some MBA, or IBM (sorry to dig at IBM, there are some brilliant folks there but also some folks that for the life of me I can't figure out what they could be doing day-to-day). Will something like ChatGPT make this a viable model? Potentially, but I doubt it. If anything, I think it would be more difficult for a junior-level programmer to point out the subtle bugs that ChatGPT produces.
Like most software innovations in the past, I think that code generative AI will essentially lead to a Jensen's paradox for software - it will allow existing skilled programmers to just write more code, thus lowering the overall cost of code, leading to more demand.
10 to 1 juniors to "senior" would have any "senior" quitting on day 1. Even 2 juniors will takes up > 50% of a seniors time to corral. 10 of them would be like a mob of people all screaming at you.
Add into that mix an AI chatbot spitting out partially incorrect stuff to all 10 of these juniors that is completely unworkable.
This overestimates the time developers spend typing text and underestimates the time spent thinking about problems, verification and locating bugs/code, etc.
Just because the output of a model is text doesn't mean it is a replacement. You would need extraordinary "single shot" functionality where the LLM always outputs correct code and knows how to deal with any potential specification. The moment it fails then you wouldn't want "paralegal" developers, you would want normal, maybe inexperienced, developers.
Single shot functionality is very impressive because humans can't do it, they build things incrementally, but once your program gets large, it can only be written incrementally, which at least implies that the AI needs to keep track of unbounded context.
And yes, very less percentage of the time, do we right chunks of fresh code, in which this could help. But that again to an extent. It can generate functions. But the glue code is still complicated. So it can definitely be a better Stack Overflow replacement, perhaps.
Its easier to understand and test code that you wrote than code you just read. If you ask it to write a 100k line program you're going to have to trace through everything and read it countless times over to fix any issues.
If you ask it to write a small 10 line snippet that you need to test you might as well do it yourself.
The problem with AI generated code is that it contains mistakes and because of the nature of how it works, those mistakes may be entirely unlike the kind of mistakes a human would make or may be completely undetectable unless you know what the code should be doing.
The best use case for AI code generation is auto-complete. Depending on the complexity of the code, that can be sufficient to do 90% of the work of writing code, but it's very different from "solving problems" which tends to be the tricky part. It also requires the AI user to already know the code they want the AI to generate before it does it.
An interesting application of AI outside of simple code generation however is what GitHub is currently experimenting with as "code brushes", i.e. "touching up" existing code, trying to fix bugs or apply refactorings. This fits in the gap of "single shot functionality" but operates on existing code rather than requiring a blank slate.
But at the end of the day I think AI will fail to kill programming just like other attempts like WYSIWYG UI builders and COBOL have and for the same reason: competence as a programmer is not about the ability to write code but the ability to understand programs and systems, both at scale and in depth. A beginner will not write bad code simply because they lack experience in using the language, they will write bad code because they lack understanding of what the code does and how it interacts with its environment (and how that environment interacts with it in turn, e.g. UX).
I think the real concern is for when the rate of new startups decreases, because I view startups as basically the tech industry's way for searching for ways to increase the overall size of the pie, and startups slowing down means demand for software engineers will start to stagnate.
Definitely not the case when layoff right now is in full force. Also this doesn't necessarily indicate high salary anyway. There is a huge demand for fruit picker, but due to the nature of economy and margin of business, the salary will stay deflated thus the shortage persists. In a high interests, no free money environment, will software firms still able to demonstrate ability to generate return for investors? That would the ultimate key for whether the high salary is going to sustain or disappear.
Regardless, I think this article has a point. We might be as well observing the end of the golden era for software engineers. LLM is a long-term salary oppressor, but in short term, simple dynamics of economy would test the market sufficiently.
[1] https://blog.pragmaticengineer.com/software-engineering-sala...
It's kind of been one of my main critiques of companies like Palantir. You really can't just dump a company's data into the big ML tumbler and expect useful/sellable products to just pop out. Take a random use case like, I don't know, Pepsi. Maybe Pepsi can get some insights about their supply chain and customer preferences. Alright? Okay. Did the world end because that happened? Not really.
Shifting gears back to programmers - AI will be a super smart programmer that will write a bunch of your code. I worked with some super smart programmers, and they can manage to write a lot of super smart code that eventually becomes a clusterfuck too.
We'll just go from unwrapping human shit code, to unwrapping AI shit code (or even better, unwrapping a mix of human shit and AI shit). The job prospects here are even greater than you imagine.
Long as you maintain the belief in the fundamental truth, that anything in existence is capable of writing shit code, then the world will never end for programmers.
So many times, I look over things people copy and pasted piece by piece from blogs and stackoverflow, when if they thought about it for 5 minutes, they'd realize a simpler implementation would have worked and been easier to write in the end. AI, if chatgpt is any indication, is moving toward overly flowerly and long prose while telling lies, that is stuff that looks "impressive" at a glance like the large ornate class hiearchies of java and c++ in the 90s looked but are things that could be done in a shell script.
I am worried then that like stackoverflow, AI will make a generation of developers who are extremely lazy and not critically thinking, just like stackoverflow did, and leave more of a mess for us to pick up after. Of course, in the midst of this, management won't know the difference. Just like chatgpt sounding impressive as it tells falsehoods, AI-code will look impressive to fools.
BUT. Honestly I just see a lot of code review and refactoring of shitty AI-generated code in my future. And I think people who lean on this heavily are going to struggle to progress... Just like when I get the whiff of code copied verbatim from SO, it's going to put a sour taste in my mouth when I get a series of reviews with a bunch of poorly factored AI generated code.
But maybe it's more likely that old fogeys like me with our backwards beliefs are not long for this world. But I dunno, I haven't yet been replaced by the hordes of actual humans crowdsourcing this on SO, so color me a bit skeptical!
If you take someone already hard working and able to think critically, with enough time and practice they can grow into being a decent developer. The learning resources they have available don't determine their long term work ethic or bar for quality.
Also, it’s worth pointing out that AI is using existing data. If a new iOS API comes out, the AI will need code bases with it already implemented to be able to train with it.
So in my mind, it will hurt the junior developers doing grunt work more than general devs.
I think no code/low code products are more of a risk to hurting devs than AI.
Similar to how JavaScript libs publish a Typescript type def file for people using Typescript.
However, let me talk about something to be excited for.
I am really excited about LLMs taking the drudgery out of programming. There are many times what I have a project in mind that I want to do, but there is a lot of boilerplate (writing configurations, or writing tests, etc) that I have to do and slows me down or for personal projects even keeps me from doing them. However, if I have an AI assistant that I can assign all the drudgery to, and I can focus on the interesting work, I feel that my creativity can really be unleashed.
I am most excited to see the results of this in games. Right now, to produce a AAA game is a lot of work and requires massive teams (if only for the art assets). However, I can see a future where once again a single programmer can write very compelling games (and even have the AI generate the art assets for the game based on the programmer's vision).
I personally am looking forward to the future.
Currently, designing or changing systems involves quite a bit of careful thought since you have to keep all the constraints in your mind and reason about how the system would work. If tools existed to create implementations based on these designs, that would be pretty amazing.
Additionally: Being able to quickly iterate on designs that translate quickly into working systems will encourage more experimentation among people who might otherwise have been turned off by the amount of technical skills required to implement designs.
Lots of assumptions all around.
This leaves me with 4h of high quality thinking and programming time instead of 1. It means I can try out 3 different approaches with full tooling instead of 1. It means I can build a whole terraform for aws and gcp and bare iron in 30 minutes.
The fact that I can build solid tools and a full slurry of unit tests and end up with 4x time in my day is just blowing my mind. The quality of my software has tremendously gone up despite using something that mostly outputs broken code.
And then I remember my workplace's official architecture... that made my team a huge success case by refusing to follow it.
Of those things you listed that you use it on, only test data need to take some non-trivial amount of time.
Overall the part of the codebase that is not some kind of scaffolding is like, computing taxes on an order item or something like that. The rest is just shuffling data around and ensuring it is tracked and validated properly.
It’s tempting to be clever and devise a killer tool that allows you to write a single data declaration and derive all the rest but that rarely survives an encounter with the real world.
On the other hand, if the models can be Atkinson-like and produce -2000 lines of code [0], that is a day to which I would look forward.
0. https://www.folklore.org/StoryView.py?story=Negative_2000_Li...
Could that be iterated? Can a half baked release ever become whole or does progress just slow down and stretch out exponentially? 1/2 + 1/4 + 1/8 + ...
Will be grateful and relieved when proven wrong.
You want to increase churn? Are you insane?
I feel like if you poll computer / phone users (ie., the vast majority of the population) one of the most annoying things users hate about modern devices are mandatory updates, like the infamous meme video where someone screams at their window machine updating. Now, you want to make it easier for middle managers to push new unneeded updates so they can pad their resumes, how absurd.
For most big software projects the bottleneck is not writing code and test boilerplate that runs correctly locally. Which of course LLMs can do reasonably well. Most time is spent on design, on integrations with other internal services, scaling concerns, and reasoning about other things that these models can't really reason about yet.
I'm obvious impressed that these models can generate simple client/server websites and generate code to solve competitive programming problems. But I don't think they've "solved" software engineering; they've only solved "what you boss thinks software engineering is".
That's still bad, though, because your boss makes hiring and salary decisions.
Maybe in the end it's a kind of "great filter" - companies and bosses that can't tell the difference don't survive. But a lot of good programmers can get fired before the clueless bosses die off...
The cause of the inefficiency and "great filter" you're describing is the labor protectionism currently in the U.S.
Theoretically a good programmer has arbitrage via their skills and expertise. If you can get things done people will pay you for it, assuming you're allowed to work (in the U.S., EU, etc.).
What is it really? Just an industry plagued by nepotism?
Which is why bosses are excited but engineers are not, because subpar LLMs will be used to justify firing actual engineers and replace them with fresh college grads tasked to work with a code bot, because the bosses fundamentally think that is enough.
If a new grad + LLM can do task X about as well as an experienced engineer can, then the experienced engineer will have to find other harder problems to solve. Personally I think labor efficiency is good; why waste your labor on easy/solved problems?
The experienced engineer also gets an LLM though
Say experienced engineer Edna was working on a project and the new grad Nelson replaced her because he was cheaper and about as good if both have LLMs, i.e.,
Edna + LLM ≈ Nelson + LLM
even though
Edna >> Nelson.
So Edna needs to find a project to work on where LLMs don't equalize her arbitrage, i.e.,
Edna + LLM >> Nelson + LLM
and Nelson needs one where
Nelson + LLM >> LLM.
Project fails = bad.
If a bunch of projects given to NG + LLM fail, the company will say at some point "this is no good, let's not do that anymore". If they mostly succeed, they'll do it more.
From a middle manager's perspective, where they're funding 10-20 projects, this kind of measurement is feasible and carries at least some signal. So I don't agree it's difficult to measure.
I actually don't relate to this "bosses don't know what software engineering is" thing at all. All my bosses are older-school engineers-turned-management who are more skeptical of this than the young'uns.
I suspect that detecting errors that way will be a part of training non-terrible code generators. But with the added benefit of being useful to human programmers as well.
There has been zero-progress towards AI comprehension, so you can only get out of it what you are already familiar with. The human must always do the mental heavy lifting to tease out a good result, or indeed even know if it's a good result and not just a hallucinated mess.
Just an example try asking it to write Battleship in Python. It does very well. But then, try changing the rules a bit, and adding some requirements. It spits out code that looks correct if you squint, but has terrible style, and often doesn't even work. Check out the test prompt [1].
Maybe GPT-4 is 1000x better at coding, but barring that, I don't see ChatGPT being useful as a replacement for human coders.
[1] Prompt: Write a version of Battleship with modified rules for sinking a ship. In this version, a ship is sunk when the "head" and "tail" of the ship (its beginning and end parts) are hit. Hits to the center do not matter. Use object oriented programming, with classes for the Board and for Ships. There should be support for multiple ships and two board instances. Write it in Python.
Have it give you a list of functions needed to write battleship.
Then have it write the classes.
Then set the rules.
Then have it write a GUI etc.
You'll have a much more successful encounter that way.
Just as an example for future writers – one line at the beginning of the piece explaining the acronym and using the ChatGPT example would go a long way.
An Asimov story called "Liar!" concerns a robot which has the ability to read minds. When asked to tell what's going on in another person's mind (does so-and-so have a crush on me? is my boss planning to give me a promotion?) the robot, following its First Law directive not to allow humans to come to harm (including emotional harm), tells the querent what they would like to hear based on the robot's reading of the querent's mind, instead of the truth because the truth can hurt. When the robot is shown that its actions hurt humans anyway, it promptly shuts down and refuses to function.
These language models seem like that robot. The articles on melamine suggest to me that the AIs which generated them are producing output that their statistical models suggest the querent wants to hear, rather than output with correct answers. In light of this, it seems that using these models for assistance in coding would be like having an obsequious but shitty coworker, whose output you must carefully review and vet because even money it's not a solution to your problem, just a guess at what you want to see based on a vast statistical soup built up of thousands of programmers' efforts on millions of tasks. Which means any effort you saved up now will be paid for with extra effort later, as every programmer knows it's much easier and more fun to wrote new code than to review and debug someone else's code, especially if it's shitty, especially^2 if it's subtly shitty. It really is like Teitelman's DWIM evolved, with correspondingly magnified lossage in its failure modes!
This is just proposing waterfall + outsourcing all over again. The author doesn't seem to understand that "sketching out architectural details" is the thing that developers do.
Feels like the three letters A-G-I are doing a lot of heavy lifting there
Lawyers are an unfortunate necessity that extract value from society. Making them more efficient at their work (hopefully) creates less opportunity for work.
You could just as easily say that engineers work to exploit and otherwise harm people, and lawyers work to protect people from exploitation and other harm.
I'm not worried.
> What happened? Well, if you’re an elite lawyer in the modern age, you probably command a large team of lower-tier lawyers, cheap paralegals, and so on, who are very good at using the Internet to look up case law and draft your opinions and so on. In contrast, if you’re an elite lawyer in the year 1990, it’s much more valuable for you specifically to have an encyclopedic knowledge of all the relevant case law, and it’s much harder for you to delegate modular pieces of work off to less competent people.
This already happened to programmers. We call these elites some version of tech lead or staff engineer. Maybe even principal, but that feels different still.
> P.S. If your objection is that you played with ChatGPT and wasn’t impressed, you should try projecting trends beyond the t=1 month timescale.
That is a dismissive stance announced in a very obnoxious way. I don't know where and how fast the AI thing will go but I do know they're treating an unknowable outcome as fact.
And programmers in Silicon Valley or Seattle make tons more than in Oklahoma.
The first problem is that it's totally overloaded at the moment if you use the app and so even just logging in is almost impossible. After 20 minutes I managed to get in.
I first asked it to come up with 5 different ideas for the app. All of them were generic rubbish like a blog or suchlike so I asked it to be more niche and specific and it managed to throw up things like:
* A Project management webapp * Farm management software * Todo List
I picked the farm management software which I actually now interpreted as crop management software. This is a very competitive market lots of big software companies doing this already but I thought ok I'll give it a try.
I asked it to build a basic landing page which is initially refused to do. When I did prompt it correctly it built a basic HTML only page with no styling and basically no content other than a header and a couple of fake testimonials.
It then refused to style the thing at all and closed the chat. I then managed to prompt it correctly and it updated the font and stuck some stuff in boxes.
During this process it told me several times that it will not create a landing page.
I then gave up on the landing page and tried to get it to be able to help me write the code on the frontend to allow the user to define the crop areas on google maps. It spat out just the JS (no html) and which showed how to draw a polygon on the map basically the code you would get by looking up the google maps documentation.
During this process the text reply was very slow like character by character and it kicked me out several times.
I think your jobs are safe at the moment...
Thinking of instead of requiring 20 people team, now you can well function with like 10 people.