10 ms·
The Software Engineering Identity Crisis
- kylehotchkiss 2y agoAnecdotally I perceive there’s been less open source JS libraries/frameworks being released lately. I generally keep an eye on JS/node weekly newsletters and nothing has seemed interesting to me lately. Of course that could be my info bubble (Bluesky instead of twitter, newsletters, slightly less attracted to shiny than I used to be) Anybody else feel the same?
- fizx 2y agoAI is killing e.g. React Server Components and Svelte, but for different reasons. Vibe coding doesn't care about the implementation details, so Svelte is dead. A unified codebase might be better for humans. But a FE/BE database is better for AI, because you have a clear security boundary, separation of concerns, and well-known patterns for both individually.
- ldjkfkdsjnv 2y agoDisagree. Unified frameworks are better for AI, you can cohesively build a feature with the single output of the AI and it has an easier time integrating the two.
- fizx 2y agoHypothetically, yes. Practically, after having built ~10 small apps in a unified framework with Cursor and Claude Code, it doesn't seem true with today's AI.
- georgemcbay 2y agoMy hobby project languages of choice these days are Kotlin multiplatform and Go, not JS, but there are multiple things I've worked on over the past year that I would have open sourced in the past but won't now because I'm not interested in freely helping with the big LLM slurp. I'm not ideologically against LLMs as a technology or the usage of them, but I do believe there is an inherent unfairness in the way a small set of companies have freely hoovered up all of this work meant to enhance the public commons (often using the most toxic and anti-social web crawling robots imaginable) while handwaving away what I believe are important copyright considerations. I'd rather just not release my own source code anymore than help them continue to do that.
- aforwardslash 2y agoIts funny you assume source code is needed to infer behaviour of a given application, or to be a valid training item for an AI.
- 18172828286177 2y agoI’ve been meaning to write essentially this article for a while now. I’m currently prepping for some upcoming interviews, which is involving quite a bit of deep digging into some technical subjects. I’m enjoying it, but part of it feels… pointless. ChatGPT can answer better than I can about the things I’m learning. It is detracting quite a bit from my joy, which would not have been the case 5 years ago
- sepositus 2y agoMore than ever modern interviews are pointless. I just finished an SRE technical interview where I had to efficiently solve a problem around maximizing profit in a theoretical market setting. I’m guessing it was just a reframed leet code question. Yet not moments earlier they were talking about their needs with increasing visibility, improving deployment times, etc. At some point this has to break, right? If the article indicates anything, it’s exactly those high level analytical skills they should be testing. I almost think allowing AI would be even better because it allows a conversation about what it got wrong, where it can be improved or is not applicable, etc.
- strict9 2y agoWhat you describe has echoes of allowing api lookups and such during an interview. Or if it's ide or repl only, or something like whiteboarding. You see the process and the questions they ask and evaluate how they distill the responses. The more you let the candidate use sources, the closer it is to day-to-day work. A somewhat similar equivalent to yesterday's copying and pasting a Stack Overflow or w3 schools solution is blindly copying and pasting a chat response from a quick and vague prompt. But someone who knows how to precisely prompt or use the correct set of templates is someone with more critical thinking skills that knows when to push back or modify the suggested solution. Knowing the small % of difference can make a big difference long term in code readability, reliability, and security. The other big alternative to all of this is strict debugging. A debugging test or chain of thought around quickly identifying and fixing the source of problems. This is a skill whose needs will probably increase over time.
- deleted 2y ago[deleted]
- twistedcheeslet 2y agoThis is an excellent article. We’re all just swimming as the AI wave comes crashing on every developer out there - we can keep swimming, dive or surf. Picking a strategy is necessary but it would probably be good to be able to do all of the above.
- ldjkfkdsjnv 2y agoI think we are underestimating the change that is about to occur in this field. There is a certain type of mind that is good at programming, and the field will no longer reward that type of mind as AI takes over. The smaller, gritty details of making something work will be smoothed over. Other types of person will be able to build, and might even surpass traditional "10x engineers", as new skill sets will take precedence.
- d_silin 2y agoAfter a wave of AI-written slop floods the software supply chain, there will be even greater demand for 10x software engineers.
- ldjkfkdsjnv 2y agoThis is cope, fixing ai slop will just be what software engineering becomes. Its the new requirements of the job, not a failure state
- hooverd 2y agoEh, it's a great tool, but I'm still interested in understanding the world rather than proudly being incurious of it.
- 9dev 2y agoHow are you going to tell spam from ham if you don’t understand the underlying systems and their constraints? And how are you going to gain that understanding if software engineering doesn’t value that anymore, and won’t educate people to gain it? I dunno, it just doesn’t seem, like, all that thought out to me.
- zer8k 2y agoYou act like software engineering is a respected field. Most of our job is fixing slop. Previously this was slop produced by low quality cut rate developers in countries known for outsourcing. Now it’s just fixing AI slop and foreign outsourced slop.
- TeMPOraL 2y agoSome good points, but I feel that by the end, the article lost track of an important angle. Quoting from the ending: > And now we come full circle: AI isn’t taking our jobs; it’s giving us a chance to reclaim those broader aspects of our role that we gave away to specialists. To return to a time when software engineering meant more than just writing code. When it meant understanding the whole problem space, from user needs to business impact, from system design to operational excellence. Well, I for one never cared about business impact in general sense, nor did I consider it part of the problem space. Obviously, minding the business impact is critical at work. But if we're talking about identity, then it never was a part of mine - and I believe the same is true about many software engineers in my cohort. I picked up coding because I wanted to build things (games, at first). Build things, not sell things. This mirrors a common blind spot I regularly see in some articles and comments on HN (which perhaps is just because of its adjacency to startup culture) - doing stuff and running a company that does stuff are entirely different things. I want to be a builder - I don't want to be a founder. Nor I want to be a manager of builders. So, for those of us with slightly narrower sense of identity as software engineers, the AI thing is both fascinating and disconcerting.
- spo81rty 2y agoI think it comes down to ownership. Going forward it will be more important for engineers to show more product ownership of their domain. Product thinking is becoming more important. That doesn't mean you are a salesperson. It means you are more connected to the users and their problems.
- TeMPOraL 2y agoExcept you don't actually own any of it. Ownership belongs to your employer. The only thing you own, is responsibility.
- jimbokun 2y agoWell take out the two words “business impact” and the rest still applies to you.
- deleted 2y ago[deleted]
- deleted 2y ago[deleted]
- userbinator 2y agoThose who think AI can generate code better than they can, are quite frankly below-average. It's the equivalent of using Google Translate to read and write another language --- and programming languages really do need to be learned as languages to make the most of them. It "works", but the result can never be above average. or systems where performance and reliability are paramount Since when has that not been the case? Neglecting or even actively avoiding performance and reliability is why almost all new software is just mediocre at best, and the industry is on a decline. AI is only going to accelerate that.
- ldjkfkdsjnv 2y agoThe whole concept of "good code" is built around maintainability for humans. If you remove that requirement, it opens up a whole new definition of what it means to build good software
- datadrivenangel 2y agoUsing LLMs as compilers is unwise. Ultimately software must be configured or written by humans, even if there are layers and layers of software in between us and 'the code', and that act of configuration/writing is programming.
- ldjkfkdsjnv 2y agoI think alot of the fastest moving and innovative companies right now are generating most code with ai. the ones who ignore this will be left behind
- whattheheckheck 2y agoWhich ones stick out the most to you?
- pjmlp 2y agoThat was the same argument folks used against high level languages when Assembly was king. It will come, even if we are a couple of years away.
- bsder 2y agoWant to convince me of AI coding? Let's see AI go modernize the old X11 codebase. Wayland progress is so glacially slow that a motivated programmer should be able to run rings around them with AI on X11, right? Show me that, and I'll pay attention to "AI". > Many of us don’t just write code - we love writing code. Excuse me, I HATE writing code. Code is the thing that is in the way between what I want to computer to do and the computer doing it. If AI reduces that burden, I would be the first to jump on that wave. GUI programming still sucks. GPU programming still sucks. Embedded programming still sucks. Concurrent programming still sucks. I can go on and on. I was actually having this discussion with somebody the other day that 99% of my programming is "Shaving Yaks" and 1% actually focused on the problem I want to solve. When AI starts shaving the yaks for me, I'll start getting excited.
- chickenzzzzu 2y agoI would like to say this as unambiguously as possible. You either have a skill issue, or you are deliberately solving problems other than the thing you actually want to solve, which you do not mention.
- 9dev 2y agoI think he’s got a point actually. How many times has a compiler told you about a missing semicolon ”here“, and you’ve never thought, ”well if you’re so clever, why don’t you just solve it?!“ Code is an awful abstraction to capture chains of thoughts, but it’s the best we’ve got. Still, caring about syntax, application architecture, concurrency, memory layout, type casting, …—all of that is just busywork, not making the robot go beep.
- mdaniel 2y agoed: or did you omit a "not" as in "not just busywork"? > application architecture, I think you got carried away with your analogy there, because I can assure you that if the LLM generates kafkaClient.sendMessage everywhere for latency sensitive apps, that's not gonna go well, or similar for httpClient.post for high throughput cases
- hnthrow90348765 2y agoMy guess is that job requirements will grow even larger, so it will be better for people who like jumping around between front-end, back-end, infrastructure, database, product, support, testing, and management duties. You'll have to resist any uncomfortable feelings of not being good at any one thing, much less mastering it. Naturally, they won't ask non-technical staff and managers to suddenly become technical and learn to code with AI. In the grander scheme of things, what matters is if their products can still sell with AI coders making it. If not, then companies will have to pivot back to finding quality - similar to offshoring to the cheapest, getting terrible developers (not always) and a terrible product, then having to rehire the team again. If the products do sell with AI coders, then you have to reckon with a field that doesn't care about quality or craftsmanship and decide if you can work like that, day-in-day-out.
- JaDogg 2y agoYes this is what I call "the accountant/spreadsheet theory", and I think this is the most likely scenario.
- rreichman 2y agoI think we can expect a bifurcation: managerial jobs that will require a lot of breadth and engineering jobs that will require a lot of depth. The manager engineers will have AIs doing all sorts of things for them across the stack. The deep engineers will develop an expertise that the AI can't get to (at least not yet).
- lunarboy 2y agoI agree this is where things seem to be going in the 5-10year frame. Spinning wheel didn't obsolete weavers completely, it just allowed for more workers and more throughput at less skill. I think entry junior devs will be out of jobs, but unless these AIs can start coming up with coherent high level designs, higher level architects seem to be okay in that time frame at least
- mistrial9 2y agoarchitectural design was very well paid for a long time, for many individuals. In modern USA, there is almost no way a person could be an architect for a living -- there is no career path. Employers in finance and other core business are already bragging that eighty percent of coding will be AI. Executives want to fire coders, and lower the wages for coders, and have complete control over output of coders. AI is being sold for that today.
- dandellion 2y agoI've been using AI for code for more than two years already, the auto-completion is a nice help that I'm willing to pay for, but every time I try anything that's harder than the basics it completely falls flat. It doesn't surprise me though, most of the people working on this are the same that had been promising self-driving cars. But that proved to be quite hard, and most of them moved on to the next thing which is this. So maybe a decade from now we'll be directing AIs instead of writing code. Or maybe that will also be difficult, and people will have moved on to the next thing they will fail to replace with AI.
- AaronAPU 2y agoEvery time someone says this, when I ask they haven’t used o1-pro. Not saying that’s the case with you but I have to ask. In my experience it’s literally the only model which can actually code beyond auto-complete. Not perfect but a completely different tier above the rest.
- 9dev 2y agoPeople have been saying that since the start, too, albeit about different models. It never felt revolutionary; the moment I asked about a particularly gnarly recursive generic type problem, or something that requires insights from across the code base, it was just rubbish from all models. Good to finish the line I wanted to write, bad at creating software.
- FirmwareBurner 2y ago>People have been saying that since the start The progress made since the start has been wild, and if it keeps increasing, even at a much slower pace, it's gonna be even better. That's like people looking at N64 games saying "wow, these new 3D graphics sure look like ass, they'll never catch on and replace 2D games". Or like people looking at the output of early C compilers going "wow, this is so unoptimized, I'll stick to coding in assembly for my career since nobody will ever use compilers for serious work". It boggles my mind how ignorant people can be about progress and disruption based on how past history played out. Oh well, at least more power to those who embrace the new tech early on.
- roxolotl 2y agoThe secret is that looking to work as a way to fulfill that desire to build and create is not a good idea. The existence of industrial farming takes no joy from my backyard garden. My usage of Gen AI doesn’t diminish the wonder I feel building projects at home. Looking to corporate work as an out for your creative desires never really worked out. Sure there was a brief golden age where if you worked at a big tech company you could find it but the vast majority of engineers do utilitarian work. As a software engineer your job as always been to drive business value.
- m3t4man 2y agoIt's also not hard to understand why people seek that kind of fulfillment at work. It is something we dedicate most of our day to for most of the week
- v3xro 2y agoIt doesn't have to be that way no? As soon as we start realigning economic systems to value labor more than capital again I think we will find meaningful pursuits in all business areas. Edit: and yes, I am all too aware of the "market can remain irrational longer than you can remain solvent" adage as applied to this situation.
- roxolotl 2y agoOh yea absolutely. But like you’re saying in your edit it might take a long time to get there. I think also in order to get there we have to acknowledge where we are.
- cadamsdotcom 2y agoIt’s great that the typing part is being reduced - as is looking up APIs and debugging stupid issues that wreck your estimates by wasting your work-day! You are still in charge and you still need to read the code, understand it, make sure it’s factored properly, make sure there’s nothing extraneous.. But ultimately it’s when you demo the thing you built (with or without AI help) and when a real human gets it in their hands, that the real reward begins. In the future that’s coming, non-engineers will be more and more able to make their own software and iterate it based on their own domain expertise, no formally educated software engineers in sight. This will be outrage fuel for old-mindset software engineers to take to their blogs and shake their metaphorical walking-sticks at the young upstarts. Meanwhile those who move with the times will find joy in helping non-engineer domain experts to get started, and find joy once again in helping their non-engineer compatriots solve the tricky stuff. Mark my words, move with the times people. It’s happening with or without you.
- spo81rty 2y ago[flagged]
- MiiMe19 2y agoOver my dead body will I ever code with AI.
- meitham 2y agoThat’s the spirit!
- kelseydh 2y ago- The dinosaur engineer exclaims as the AI asteroid strikes.
- FirmwareBurner 2y agoThank you for your service!
- chippiewill 2y agoI'm sure that's what the horse-drawn carriage drivers said about cars.
- aforwardslash 2y agoRight now, being able to efficiently extract value from AI based code generation tools requires supervision at some extent - e.g. A competent developer that is able to validade the output; As the industry moves toward these systems, so do the hiring requirements - there is little to no incentive to hire more junior devs (as they lack the experience of building software), effectively killing the entry-level jobs that would someday generate those competent developers. The thing is, part of the reason AI requires supervision is because it's producing human-maintainable output in languages oriented for human generation; It is my belief we're at a reality akin to the surgence of the first programming langages - a mimick that allows humans to abstract away machine details and translate high-level concepts into machine language. It is also my belief that the next step are specialized AI languages, that will remove most of the human element, as an optimization. Sure, there will always the need for meatbags, but big companies will hire tens, not thousands.
- cma 2y agoAlternatively, junior devs with ai web search and ai explanations are able to learn much faster and not bother senior devs with compiler error puzzles.
- hooverd 2y ago> are able to but they won't. they'll just give up if the auto-complete doesn't fix it for them.
- n_ary 2y agoBut if those aspiring juniors stop asking those questions and the seniors not answer them in open web, neither LLMs nor juniors have new training data and both become stagnated. How do we solve this? At my early days, I learned more reading code from much senior engineers and began to appreciate it. An effective seasoned senior writes a beautiful poetry that conveys deeper meaning and solves the entertainment(erm… business requirement) purpose. If the seniors retire and the juniors are no longer hired, then where do LLMs get new data from? In all sense of things, I suspect we’ll see more juniors getting hired in coming years and few seniors present to guide them, same as how we previously had few db specialists and architects giving out the outline and the followers made those into actual products.
- meander_water 2y agoThis reduces the field of software engineering to simple code generation when it is much more than that. Things like system design thinking and architectural design are not solely tasks performed by managers or specialised roles. Software developers need to wear multiple hats to deliver a solution. Sure, building out new features or products from scratch often get the most glory an attention. But IMO, humans still have the edge when it comes to debugging, refactoring and optimisation. In my experience, we beat AI in these problems because we can hold the entire problem space/context in our brains,and reason about it. In contrast, AI is simply pattern matching, and sure it can do a great job, but only stochastically so.
- leoedin 2y agoThe foundation of maintainable software is architecture. I can't be alone in having often spent days puzzling over a seemingly highly complex problem before finally finding a set of abstractions that makes it simple and highly testable. LLMs are effectively optimisation algorithms. They can find the local minima, but asking them to radically change the structure of something to find a much simpler solution is not yet possible. I'm actually pretty excited about LLMs getting better at coding, because in most jobs I've been in the limiting factor has always been rate of development rather than rate of idea production. If LLMs can take a software architecture diagram and fill in all the boxes, that would mean we could test our assumptions much quicker.
- Centigonal 2y agoYes, this is how I feel as well. I'm not going to use an LLM to create my architecture for me (though I may use it for advice), because I think of that as the core creative thing that I bring into the project, and the thing I need to fully understand in order to steer it in the right direction. The AI is great at doing all the implementation grunt work ("how do I format that timestamp again?" "What's a faster vectorized way to do this weird polars transformation?" "Can you write tests to catch regressions for these 5 edge cases which I will then verify?").
- 2y ago
- JaDogg 2y agoWhat I do is turn off copilot, do the design, get in the zone and enable copilot. This way I do not get it to slow me down, otherwise I just wait for it to do API calls. Even then, I turn it off when it create complete wrong implementations. Problem is it doesn't know the layer of utilities we have and just rewrite everything from scratch. Which is too much duplicatation. I have to now delete it and type correct code again. One advantage I have seen is that, it can defenitely translate / simplify what my collegues say, fix typos or partial-words. Which is very useful when you are working with lot of different people.
- greenie_beans 2y agoai took away the fun of coding but it's impossible not to use it now that i've opened pandora's box. fortunately i don't have the identity problem. you shouldn't base your identity on your job. my problem is more like, "this isn't as much fun to do anymore"
- kittikitti 2y agoMost big tech engineers I know hate coding and see abandoning coding as a progression in their career. Personally, I don't care what the industry thinks, I like coding and do it anyway with or without a huge corporation providing me with every last resource required. If I'm unemployed because coding as a skill is no longer needed, I will still do it just not part of my day job. Just as painters were worried about color printers, the value of the Mona Lisa was put into question. I'm no artist, but I'm not believing the overhyped scenario's. I love language models and their abilities but there's too many HR reps drooling at the mouth thinking they can replace coders with AI.
- zer8k 2y agoAI is the only reason I’ve been able to keep up with the constant death marches. Since the job market went to shit employers are piling on as much work as they can knowing they have indentured servants. The code quality isn’t great but it’s a lot easier to have it write tests, and other code, and then go back and audit and clean. Feels absolutely awful but whatever.
- porridgeraisin 2y agoIt's a useful assistant. Never again do I need to argparse each flag onto a class Config: fully manually again. I also found it useful in catching subtle bugs in my (basic, learning purpose) cuda kernels. It is also nice to be able to do `def utc_to_ist(x: str) -> str`<TAB>. As for whole apps, I never agree with its code style... ever. It also misses some human context. For example, sometimes, we avoid changing code in certain ways in certain modules so as to get it more easily reviewed by the CODEOWNER of that part of the codebase. I find it easier to just write the code "the way they would prefer" myself rather than explain it in a prompt to the LLM losslessly. The best part of it is getting started. It quickly gives me a boilerplate to start something. Useful for procrastinators like me.
- ookblah 2y agoArticles like this honestly confuse me. I really do not understand this sentiment that that some coders have where it feels like every line they write is like some finely chiseled piece of wood on a sculpture they made. Since day one I've always liked to build things much like the author, my first line of HTML to CSS, frameworks, backend, frontend, devops, what have you. All of it a learning experience to see something created out of nothing. The issue has always been my fingers don't move fast enough; I'm just one person. My mind can't sustain extended output that long. My experience with AI has been incredibly transforming. I can prototype new ideas and directions in literally minutes instead of writing or setting up boilerplate over and over. I can feed it garbage and have it give me ballpark insights. I can use it as a sounding board to draw some direction or try to see a diff angle I'm not seeing. Or maybe it's just the way that some people use AI coding? Like it's some magic box and if you use it you wont' understand anything or it's going to produce some gibberish? Like a form bikeshedding where people hold the "way" they code as some kind of sacrosant belief. I still review near every line of code and if something is confusing I either figure it out and rewrite it or just comment on what it's doing if it's not critical.
- n_ary 2y agoThe article appears to be a rant and panic piece… At this point, I am totally confused. When I attend expensive courses from Google or Amazon, the idea in the courses are that, tech has become sooo complex(I agree, look at the number of ways you can achieve something using aws infinite number of services), we need some code assistants which can quickly remind us of that one syntax or fill out the 10000th time of writing same boilerplate or quickly suggest a new library functions that would take several google searches and wading through bad documentations on another 5h of SEO spam or another 50 StackOverflow with same issue closed as not focused enough/duplicate/opinionated. It is like, they want to sell you this new shiny tool. If anyone here remembers the early days of Jetbrains IDEs, the fans would whirl and IDE would freeze in middle of intellisense suggestion, but now those are buttery smooth and I actually feel sad when unable to access them. Now, on the outside in news, media, blogs and what not, the marketing piece is being boosted a 1000x with all panic and horror, because a certain greedy people found that, only way to dissuade brilliant people from the field and not bootstrap next disrupters by signaling that they themselves will be obsolete. Come to think of it, it is cheap now. First idea was to hire them when investments were cheap and disruption risk was high, then came the extinction of ZIRP when it was safe to stop hoarding them as no investment means less risk of disrupters, but if some dared, acquire and kill in the crib. Then came bad economy, so now it is easier to lay them off and smear their reputation so they can’t get the time of the day from deep pockets. Final effort is to threat the field by fake marketing and media campaign of them being replaced. This panic drama needs to stop. First we had SysAdmins maintaining on-prem hardware and infra. But Aws/Gcp/Azure/Oracle came along to replace them to only move them up the chain and now we need dedicated IAM specialist, certified AWS architects, Certified Azure Cloud Consultants and what not. Sorry for the incoherent rant, but these panic and “f*k you entitled avocado toast eating school dropout losers, now you’ll be so screwed” envy social media posts are so insane and gets so much weird, I am just baffled by the whole thing. I don’t know what to believe, big tech telling me in their pretty courses and talks about how my productivity and code quality will be now improved, or the media and influencers telling me we are going to be so obsolete (and avocado toast eating dropout, which I am not). Only time will tell. In the meantime, the more I see demos of impressive LLM building entire site from everyone and their pet hamster, the more number of Frontend engineering jobs popup daily on my inbox(I keep job alerts to watch market trends and dabble in topics that might interest me).
- bencornia 2y agoWhew! This pretty much sums up how I have been feeling about my career the last 6 months. Today, at work, we had a tongue-in-cheek "vibe coding" day where we practiced building primarily with AI tools. A part of me feels like this isn't what I signed up for when I became a software engineer. I am a builder not a manager. Yet, I was flabbergasting at how much I was able to build with claude. But building doesn't exactly describe what I did. And as the article suggests it does feel like managing and not building. I didn't read every line of code that was generated. I think describing the current zeitgeist as an identity crisis is spot on. Software engineering is going through a fundamental shift. But that has always been the case. The field has drastically evolved since it's inception. The only difference is that rate of change has increased such that it feels like we are experiencing a titanic shift. It certainly is an exciting time!
- slowtrek 2y agoWe could always surrender the identity. Who ever said a Software Engineer should be a profession that should last hundreds of years?
- hackburg 2y ago[dead]
- antfarm 2y agoI'd rather become a bike messenger and continue programming for fun than having LLM code generators take over the fun part of my job.