Soon all coding will look like L3 support - debugging something you've never seen before, and under pressure. AI is really taking away the fun parts from everything and leaving just the drudgery in place.
The key is to figure out how to move up the ladder of abstraction. You don't want to be a "coder" in a world where AI can code, but you do want to be a "person who makes software" in a world where making software just got easier.
How does "person who makes software" imply "managing"?
I understand that "coding" is the fun part for lots of people, especially younger people. This is me as well, so I'm definitely sympathetic to it, and feel quite a bit of sadness about this.
Lots of people also enjoy woodworking and machining by hand, but that's not how most furniture or machines are made.
If I were independently wealthy, I might well spend some of my time making artisan software, but as a professional and entrepreneur, I'm going to try to use efficient tools for the job.
This relates to the analogy that an LLM is like a junior developer that you have to instruct and guide, and whose work you have supervise and review. Working with an LLM is similar to managing people as a tech lead. And once LLM agents get smart enough and reliable enough, the work will be similar to that of a product manager, project leader, CTO, or even CEO.
If you like being an entrepreneur, you’re already different from most professional software developers.
I'm aware of that analogy, and thought that might be what you were alluding to, but I don't think it's a good analogy.
I agree with you that most professional software developers don't like being entrepreneurs, but I think that has more to do with disliking the parts of entrepreneurship that don't fit into "person who makes software", like fundraising and marketing.
But I think many - maybe most, but not all - professional software engineers actually do enjoy "making software", generally, and not just "coding", narrowly.
I agree that they enjoy "making software", but typically not if it involves a lot of instructing LLMs with natural language and reviewing their output. Again, this will become very similar to the job of a project or product manager who doesn't do any coding themselves. Developers tend to not like that kind of role.
Maybe! But I think this is very debatable, or at least, impermanent.
To me, it is very reminiscent of when I was a wee lad and there was a prevalent view that no real developer would want to make web applications, that was for script kiddies. But it turned out to be a useful kind of software to build, so a lot of people who build software started building web applications.
I also think that lots of developers do naturally enjoy increasingly higher levels of work than "just" writing code, as they progress in their careers. The job of "staff+ engineers" has significant overlap with what product managers do, where the "product" they're thinking about is the technical design of a larger system. Lots of developers really do enjoy this kind of work!
This feels different; I asked DeepSeek R1 to give me an autoregressive image generation code in pytorch and it did a marvelous job. Similar for making a pytorch model for a talking lip-synced face; those two would take me weeks to do, AI did it in a few minutes.
Autoregressive LLMs still have some major issues like over-dependency on the first few generated tokens and the problems with commutative reasoning due to one-sided masked attention but those issues are slowly getting fixed.
People used to tell me all the amazing things no-code and low-code was able to do as well.
And at the end of the day they went nowhere. Because (a) they will never be perfect for every use and (b) they abstract you from understanding the problem and solution. So often it will be easier to just write the code from scratch.
They have definitely replaced jobs! There are tons and tons of sites and applications now that have been built with these tools and otherwise would have been built by software developers using wordpress or drupal or rails or whatever.
But that doesn't mean the developers who would have otherwise done that work were just disemployed by the success of these tools. No, they just worked on different things.
And I think that is a valuable lesson that can be applied (though I think not perfectly) to this LLM era.