My org has restructured to gear up for reducing engineers' necessary skills
They've changed our job titles from 'Engineer' to 'Developer'.
Power (in the form of talking to business owners, organizing work, setting engineering direction) has been centralized. We had 6 engineering managers now we have one 'Director'.
I don't think I've solved a real problem in 8 months.
30 years in the industry for me. It’s been a wild last few years watching this transformation. Like the OP I find it wholly unpleasant and I also can’t deny the productivity boost. I’m very glad I’m nearly ready for retirement and I look forward to watching this “progress” from a comfortable distance.
In all sincerity, what do you mean by wholly unpleasant?
25 years in my case, by the way, and I have found this to be the most liberating and creativity-boosting period of my career. And it’s not even close. I’ve written code in more languages in the past few years than in any other period. I’m finishing more projects than ever before. I’m learning faster than ever before. I’m enjoying programming more than ever before.
And to be clear, I don’t use AI for anything other than as a pair programming partner, or to build single-use scripts. I agree that full-blindfold vibe coding is unpleasant, it’s like getting into a debate with a forgetful and emotionless monkey paw. Skip the vibe coding, just let AI be a helper.
This I think will explain the differences in experience in industry. As pressures increase, control and power moves away from developers who have historically had a pretty strong position to dictate how they work.
Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
the people I know who hate AI have a bizarre and unrelatable love for the pure math aspect of software engineering - the elegant software architecture, the efficient programming languages. the people who only care about getting stuff done are loving AI but people who spent their life learning how to properly craft high quality software are weeping - as they should be - now they know how kasparov felt
For a hundred years software was inscrutable enough to normies that you could be an artisan. But most professions haven't had that luxury for a long, long time. Try making and selling pretty much anything else you built by hand.
Now it's software people's turn to feel the pain of being a starving artist and watch as your attractive friends with no skills and a social media presence "make it" with their genius.
We haven't even begun to feel the weight of it yet.
Kudos to the lucky few artisans that the modern economy will support, but becoming a stocker at Ikea will probably be more lucrative than picking up a saw and plane.
Some people never really liked writing code. They liked the result and the paycheck much more. Those folks are having the time of their lives now. Well, until the fall happens and software development is assmebly-lined.
It’s because there always were two types of engineers and the difference was never clear until this technology existed. Some love the craft, and some love the results.
It's a Skinner box of productivity. Of course it's polarizing.
My own enthusiasm varies wildly day to day. I've been sick of squinting at punctuation marks and opening sequences of of tabs to trace through annoying abstraction layers for a long time; so I'm really excited to see those activities effectively automated away. But the same tools enable some really bad behavior (in myself and others), which really gets me down.
Unlimited lives and the ability to walk through walls is great fun for a bit. But also, you never actually played the game and it kinda ruined it for you, for all time.
You’ve seen the outcome, you solved nothing, learned nothing, and there’s zero reason for you to ever be proud of it.
The outcome isn’t yours, it’s the chatbots. Maybe you lie to yourself a bit… but you were barely necessary.
It's not hard to observe what the tools and systems can do. It's impressive. But I suspect for some the trade-off is not worth it based on their principles. No amount of disbelief or encouragement will change that.
> Why do some software engineers love AI and some hate it?
n=1 but i'd say 3 aspects for me:
1. its forced on me at $job; its just a tool so let me use it when i need it and stop making my work-life miserable with childish tokenmaxing leaderboards
2. co-workers who send low-effort low-quality pr's that introduce tons of complexity and waste everyone's time and that they cant answer basic questions about because they no longer know how it works
3. the absolute cult-like manic behavior with some people around "ai"... yes its fun and interesting and cool tech so please stop treating it like a religion ffs
I anticipate and welcome the market price of slopware dropping to zero, given that it’s now in infinite supply.
Too much talent has been cohabiting with SO copypasters, MBA idiots, and management dorks for too long, time to break up.
In another decade I expect the processes and procedures will catch up.
We're at that awkward time where there is still an expectation to fill out JIRA tickets, but it is possible to ship multiple features at once in less time than the planning meeting takes.
As the models improve, the slop will reduce.
As the humans improve, the processes and procedures will change to match the new paradigm, whatever it becomes.
I'm sitting at about a decade of experience and it feels equally bad here. Honestly right now I'm mostly waiting for either AI to blow up and companies to scale back massively or for other engineers to deskill themselves into oblivion so that skilled engineers get the edge again.
If neither gambit pay out then I'll just go find some other career and keep software as my hobby. I'm not going to let this billion dollar industry ruin the thing I enjoy.
This field has always been a joke for the past couple decades. Any reasonably intelligent person could grind leetcode and interview at top places. It was completely meaningless besides demonstrating you knew how to play the game.
I can't deny this is true, but it hasn't made me hate my job. More than anything, I'm trying to figure out how to thrive in a very different environment. I've definitely realized that sitting there and handcrafting my code to try to make it perfect isn't what my employer is going to want; they want a balanced trade-off. So, I need to find a good split in the middle where I can still add value by using my experience and skills to shape good quality, maintainable code, but I also am trying to use LLMs in places where they are doing a good job. The quality of the generated code, sans the unbelievably bad English prose, has gone up a fair bit, making me wince a bit less about it.
But, the sentiment about drowning in slop, well. Yeah kind of. I am not sure the polite way to tell people they should be thinking for themselves rather than just repeating what an LLM told them.
I absolutely use LLMs to assist in reviewing my own code as well as others, but I am always using my own judgment and speaking in my own voice. I will never copy-paste an LLM comment as if I wrote it, and I don't think even with a proper disclaimer that I'll ever copy-paste an LLM comment that I don't understand enough to confirm and rephrase on my own - instead, I use the LLM insights as a starting point. If I don't understand them, I dig deeper. If I disagree with the comment, I disregard it. And finally, if I understand it fully and agree with it, then I bring it up in code review, in my own voice.
I'm a little more lax when it comes to LLM generated code. A lot of test suites are already kind of a bit pointless thanks to the flawed prioritization of code coverage as a metric (it isn't a bad one generally, but there are cases where it is tragically bad, like when the code you are testing is effectively a DSL and the assertions are restatements of the DSL's contents...) and even when it's not, LLMs are often useful for generating decent test suites. Still a good idea to read them, but I give LLM-generated tests less attention and manually exercising code more attention: it seems like a good tradeoff to get a productivity improvement from LLMs.
To me the biggest sin is using LLMs or generative AI and pretending it is your own human expression. Please use your own words. If that's too much effort, I'm afraid I don't really want you working where I work or posting where I post, just for the sake of everyone's sanity. All of your LLM-assisted blog posts read like absolute shit and I'm tired of all of the excuses for it.
>I’d love to find a corner of the world where this hasn’t happened yet [...]
Start one?
There's definitely a market for software that doesn't give off the corporate, mass-produced, one-size-fits-all energy. 37signals famously made quite a business out of it.
There has always been some level of misalignment between the (beauty of high) quality of products made by craftsmen and the value of these products by whoever consumes them.
If you zoom out and look at other industries, we've seen this before many many times: Fast food completely commoditized the food industry. There are still extremely skilled people making the "highest quality" food. For example those at michelin star restaurants, these businesses typically don't make money by selling food anymore, they stay around for other reasons (hotel needs a fancy restaurant with a famous chef). We've seen the same when it comes to many other products: toys, furniture, most electronics, etc.
Nobody can swim against the forces of capitalism here, just not enough people care about high quality hand crafted software (the only people that really do are people right here in this thread hand crafting software). Sure there will be some corners of the economy where people doing everything by hand will keep their head above the water.
Think of it this way: back when people were sending letters to each others and responses took weeks, people (non professional writers) put a lot of thought into writing these letters. I'm sure if you show these people the average (non AI) emails we've been sending each other the last few decades they will complain about all the slop too (including how we all converse to each other right here). But you can definitely argue that this exponentially increased communication and sharing of ideas has outweighed our decreased ability to write properly (in self defense: I'm not a native english speaker).
This obviously sucks for those who care about high quality hand crafted software, but this is going to open the floodgates in terms of the accessibility of software development. And it's yet to be seen whether this is going to take all our jobs away or not. What's very much true (like the article says) is that the future job of software dev is going to look different, and the change is coming fast.
How much of modern software was slop before AI? Is this really something new? I argue it's been happening in many companies since at least 2010. Made with good old fashioned humans and some help from ZIRP. Remember that time I worked at Twitter?
SQLite is the most popular database in the world. It's maintained by 3 people. There's hope. AI is a great tool that's here to help you if you want, but at the end of the day, the output matters and it's quality not quantity. Don't work for people who don't agree.
After we get through this slop phase, I think software engineering won’t be about code at all, if it even exists as a profession. Feels like the beginning of the end for the craft.
No way. It's simply another layer of abstraction. You don't code in binary, or assembly, or C, or vanilla JavaScript anymore.
Eventually "coding" will simply be prompting skill with the wisdom of architectural decisions.
That's also one way to describe what it's like to code with React et al these days, anyway. Component/hook selection skill with the wisdom of architectural decisions.
Assembly doesn’t exactly map to in 1:1. x86’s mov eax, ebx is the classic example that has two ways of being encoded. Not to mention sections, labels and all the other fancies.
Yup, just a problem of a misplaced comma I think.Let me rephrase it : "AI is used for work, but my website, and all the content in it, is entirely written by hand."
I wonder why your comment gets upvotes until getting to the top.
"While I may use AI for work, my website and all the content on it is entirely written by hand."
I don't think the original syntax is incorrect exactly, but too many commas in a sentence can make it harder to parse, which is why style guides often warn about it and advise thinking of certain commas as "optional."
My org has restructured to gear up for reducing engineers' necessary skills
They've changed our job titles from 'Engineer' to 'Developer'.
Power (in the form of talking to business owners, organizing work, setting engineering direction) has been centralized. We had 6 engineering managers now we have one 'Director'.
I don't think I've solved a real problem in 8 months.
30 years in the industry for me. It’s been a wild last few years watching this transformation. Like the OP I find it wholly unpleasant and I also can’t deny the productivity boost. I’m very glad I’m nearly ready for retirement and I look forward to watching this “progress” from a comfortable distance.
In all sincerity, what do you mean by wholly unpleasant?
25 years in my case, by the way, and I have found this to be the most liberating and creativity-boosting period of my career. And it’s not even close. I’ve written code in more languages in the past few years than in any other period. I’m finishing more projects than ever before. I’m learning faster than ever before. I’m enjoying programming more than ever before.
And to be clear, I don’t use AI for anything other than as a pair programming partner, or to build single-use scripts. I agree that full-blindfold vibe coding is unpleasant, it’s like getting into a debate with a forgetful and emotionless monkey paw. Skip the vibe coding, just let AI be a helper.
> Skip the vibe coding, just let AI be a helper.
This I think will explain the differences in experience in industry. As pressures increase, control and power moves away from developers who have historically had a pretty strong position to dictate how they work.
Not everyone is going to be able to use AI as just a tool. The reality I have seen is that AI has sped the time-to-pr up for those who don't care what they ship, so that gets baked into estimates and expectations.
Eventually those working carefully with AI will be like the carpenter still using hand tools while the shop is operating CNC machines. The business can't afford the craftsmanship, no matter how right the craftsman is to point out that their work is better.
the people I know who hate AI have a bizarre and unrelatable love for the pure math aspect of software engineering - the elegant software architecture, the efficient programming languages. the people who only care about getting stuff done are loving AI but people who spent their life learning how to properly craft high quality software are weeping - as they should be - now they know how kasparov felt
AI as helper is basically a better google search, which is not much different than what we did before AI (copy paste from stack overflow)
For a hundred years software was inscrutable enough to normies that you could be an artisan. But most professions haven't had that luxury for a long, long time. Try making and selling pretty much anything else you built by hand.
Now it's software people's turn to feel the pain of being a starving artist and watch as your attractive friends with no skills and a social media presence "make it" with their genius.
We haven't even begun to feel the weight of it yet.
There are cabinet makers who still make pieces by hand with hand tools. They charge whatever they want and do well. Not everything is Ikea.
Kudos to the lucky few artisans that the modern economy will support, but becoming a stocker at Ikea will probably be more lucrative than picking up a saw and plane.
Must be nice for all six of them.
And yet nearly all cabinets are not made by hand...
I remember the same at the advent of desktop publishing
What doomerism. I really don't see it.
Slop has always been cheap. Now it's even cheaper. But software that actually fucking works AND does what you want is still expensive as hell.
Furthermore, software runs the world. Never before have we had such a chance to break the chains.
No it isn’t. If you don’t care about stuff like security or user friendliness you can do most of what you want through simple shell scripts probably.
Why do some software engineers love AI and some hate it?
I've got senior engineers (20+ yoe) who have never been having more fun and then some who feel like OP here.
Why is it so decisive? There's no other tool (not even emacs) that's caused this sort of division.
Some people never really liked writing code. They liked the result and the paycheck much more. Those folks are having the time of their lives now. Well, until the fall happens and software development is assmebly-lined.
It’s because there always were two types of engineers and the difference was never clear until this technology existed. Some love the craft, and some love the results.
It's a Skinner box of productivity. Of course it's polarizing.
My own enthusiasm varies wildly day to day. I've been sick of squinting at punctuation marks and opening sequences of of tabs to trace through annoying abstraction layers for a long time; so I'm really excited to see those activities effectively automated away. But the same tools enable some really bad behavior (in myself and others), which really gets me down.
It’s the NES Game Genie.
Unlimited lives and the ability to walk through walls is great fun for a bit. But also, you never actually played the game and it kinda ruined it for you, for all time.
You’ve seen the outcome, you solved nothing, learned nothing, and there’s zero reason for you to ever be proud of it.
The outcome isn’t yours, it’s the chatbots. Maybe you lie to yourself a bit… but you were barely necessary.
It's not hard to observe what the tools and systems can do. It's impressive. But I suspect for some the trade-off is not worth it based on their principles. No amount of disbelief or encouragement will change that.
1. its forced on me at $job; its just a tool so let me use it when i need it and stop making my work-life miserable with childish tokenmaxing leaderboards
2. co-workers who send low-effort low-quality pr's that introduce tons of complexity and waste everyone's time and that they cant answer basic questions about because they no longer know how it works
3. the absolute cult-like manic behavior with some people around "ai"... yes its fun and interesting and cool tech so please stop treating it like a religion ffs
just my 3c
I anticipate and welcome the market price of slopware dropping to zero, given that it’s now in infinite supply. Too much talent has been cohabiting with SO copypasters, MBA idiots, and management dorks for too long, time to break up.
In another decade I expect the processes and procedures will catch up.
We're at that awkward time where there is still an expectation to fill out JIRA tickets, but it is possible to ship multiple features at once in less time than the planning meeting takes.
As the models improve, the slop will reduce. As the humans improve, the processes and procedures will change to match the new paradigm, whatever it becomes.
I'm sitting at about a decade of experience and it feels equally bad here. Honestly right now I'm mostly waiting for either AI to blow up and companies to scale back massively or for other engineers to deskill themselves into oblivion so that skilled engineers get the edge again.
If neither gambit pay out then I'll just go find some other career and keep software as my hobby. I'm not going to let this billion dollar industry ruin the thing I enjoy.
This field has always been a joke for the past couple decades. Any reasonably intelligent person could grind leetcode and interview at top places. It was completely meaningless besides demonstrating you knew how to play the game.
I can't deny this is true, but it hasn't made me hate my job. More than anything, I'm trying to figure out how to thrive in a very different environment. I've definitely realized that sitting there and handcrafting my code to try to make it perfect isn't what my employer is going to want; they want a balanced trade-off. So, I need to find a good split in the middle where I can still add value by using my experience and skills to shape good quality, maintainable code, but I also am trying to use LLMs in places where they are doing a good job. The quality of the generated code, sans the unbelievably bad English prose, has gone up a fair bit, making me wince a bit less about it.
But, the sentiment about drowning in slop, well. Yeah kind of. I am not sure the polite way to tell people they should be thinking for themselves rather than just repeating what an LLM told them.
I absolutely use LLMs to assist in reviewing my own code as well as others, but I am always using my own judgment and speaking in my own voice. I will never copy-paste an LLM comment as if I wrote it, and I don't think even with a proper disclaimer that I'll ever copy-paste an LLM comment that I don't understand enough to confirm and rephrase on my own - instead, I use the LLM insights as a starting point. If I don't understand them, I dig deeper. If I disagree with the comment, I disregard it. And finally, if I understand it fully and agree with it, then I bring it up in code review, in my own voice.
I'm a little more lax when it comes to LLM generated code. A lot of test suites are already kind of a bit pointless thanks to the flawed prioritization of code coverage as a metric (it isn't a bad one generally, but there are cases where it is tragically bad, like when the code you are testing is effectively a DSL and the assertions are restatements of the DSL's contents...) and even when it's not, LLMs are often useful for generating decent test suites. Still a good idea to read them, but I give LLM-generated tests less attention and manually exercising code more attention: it seems like a good tradeoff to get a productivity improvement from LLMs.
To me the biggest sin is using LLMs or generative AI and pretending it is your own human expression. Please use your own words. If that's too much effort, I'm afraid I don't really want you working where I work or posting where I post, just for the sake of everyone's sanity. All of your LLM-assisted blog posts read like absolute shit and I'm tired of all of the excuses for it.
>I’d love to find a corner of the world where this hasn’t happened yet [...]
Start one?
There's definitely a market for software that doesn't give off the corporate, mass-produced, one-size-fits-all energy. 37signals famously made quite a business out of it.
There has always been some level of misalignment between the (beauty of high) quality of products made by craftsmen and the value of these products by whoever consumes them.
If you zoom out and look at other industries, we've seen this before many many times: Fast food completely commoditized the food industry. There are still extremely skilled people making the "highest quality" food. For example those at michelin star restaurants, these businesses typically don't make money by selling food anymore, they stay around for other reasons (hotel needs a fancy restaurant with a famous chef). We've seen the same when it comes to many other products: toys, furniture, most electronics, etc.
Nobody can swim against the forces of capitalism here, just not enough people care about high quality hand crafted software (the only people that really do are people right here in this thread hand crafting software). Sure there will be some corners of the economy where people doing everything by hand will keep their head above the water.
Think of it this way: back when people were sending letters to each others and responses took weeks, people (non professional writers) put a lot of thought into writing these letters. I'm sure if you show these people the average (non AI) emails we've been sending each other the last few decades they will complain about all the slop too (including how we all converse to each other right here). But you can definitely argue that this exponentially increased communication and sharing of ideas has outweighed our decreased ability to write properly (in self defense: I'm not a native english speaker).
This obviously sucks for those who care about high quality hand crafted software, but this is going to open the floodgates in terms of the accessibility of software development. And it's yet to be seen whether this is going to take all our jobs away or not. What's very much true (like the article says) is that the future job of software dev is going to look different, and the change is coming fast.
How much of modern software was slop before AI? Is this really something new? I argue it's been happening in many companies since at least 2010. Made with good old fashioned humans and some help from ZIRP. Remember that time I worked at Twitter?
SQLite is the most popular database in the world. It's maintained by 3 people. There's hope. AI is a great tool that's here to help you if you want, but at the end of the day, the output matters and it's quality not quantity. Don't work for people who don't agree.
After we get through this slop phase, I think software engineering won’t be about code at all, if it even exists as a profession. Feels like the beginning of the end for the craft.
No way. It's simply another layer of abstraction. You don't code in binary, or assembly, or C, or vanilla JavaScript anymore.
Eventually "coding" will simply be prompting skill with the wisdom of architectural decisions.
That's also one way to describe what it's like to code with React et al these days, anyway. Component/hook selection skill with the wisdom of architectural decisions.
The meaning of code will change. Maybe it will get a new name.
Software hasn't been about "real code" (asm) for a long time; yes, this was a common opinion when HLL's and compilers were starting.
> “real code” (asm)
You meant actual bytecode?
Assembly doesn’t exactly map to in 1:1. x86’s mov eax, ebx is the classic example that has two ways of being encoded. Not to mention sections, labels and all the other fancies.
That's correct but a bit nitpicky. We could talk about punchcards too, but I'm not old enough to credibly make that reference :)
:-)
I could be wrong, but AFAIK, switchboards^W patch panels were the OG programming method.
Cam shafts predate them.
Real programmers use butterflies (mandatory xkcd reference) https://xkcd.com/378/
It's strange to see this on the site:
> While I may use AI for work, my website, and all the content on it, is entirely written by hand.
I mean, if you're tired of the slop and what AI is doing to the industry, why do you need to use it for a simple personal website?
I'm saying my site and everything on it is written manually.
I think they are saying they didn't use AI for it.
Yup, just a problem of a misplaced comma I think.Let me rephrase it : "AI is used for work, but my website, and all the content in it, is entirely written by hand." I wonder why your comment gets upvotes until getting to the top.
Or simply:
"While I may use AI for work, my website and all the content on it is entirely written by hand."
I don't think the original syntax is incorrect exactly, but too many commas in a sentence can make it harder to parse, which is why style guides often warn about it and advise thinking of certain commas as "optional."
Hes saying his site is written by hand