Live data from Hacker News

AI is removing the middle class of software engineering?

blog.florianherrengt.com

781–790 of 803 posts

Re: AI is removing the middle class of software engineering?

#781

Earlier quoted context omitted.

> Like what other profession markets themselves as "Hey, our job is so easy that any schmuck off the street can enter the career with 4 months of training." For one, the industry never did professionalize to begin with, certainly not in the way accountants, lawyers etc did. We never had any real body that could certify proficiency, which is what contributed to companies having to resort to leetcode and other such sty…

Ok, but consider if we had professionalized in, say, the late 90s. Would we be insisting everyone writes bad 90s style OO code because that's the professional standard? How do you have standards when the field is still figuring itself out?

“The good thing about standards is that there’s so many to choose from”.

Re: AI is removing the middle class of software engineering?

#782

Earlier quoted context omitted.

It's like cramming for an exam. Yes you can get enough information in your short term memory to pass, even do well. But a year later (or a month) it's all gone. You never really knew it.

True, but it shows a willingness and ability to do the work.

Such recruiting selects for KPI hunters. It is probably bad for an org to select for people that game it rather than doing "what is right".

A dice throw and some chitchat would be better recruiting.

Re: AI is removing the middle class of software engineering?

#783

Earlier quoted context omitted.

I kind of think the whole "Learn to Code" push of the 2010s was one of the worst things that happened to our industry. Call me a gatekeeper if you want but, we ended up with a lot of people that just can't do the job. The problem is our industry mostly doesn't have any sort of reasonable mentorship or apprenticeship culture, so we've always left it to the engineers to teach themselves. Sink or swim. The problem is th…

The whole "learn to code" and software bootcamp craze always baffled me. Like what other profession markets themselves as "Hey, our job is so easy that any schmuck off the street can enter the career with 4 months of training." Practically every other job I can think of at a similar salary level has entrance requirements (e.g. grad school admissions exams), extensive and expensive training, a lengthy apprenticeship p…

> Yet we constantly see all this devaluation of the practice of software engineering ("code was always the easy part" - bull-fucking-shit)

Whenever I've used this phrase or seen other people use this phrase it's never been in the context of software engineering. It's always been in the context of literally just spitting out code that a compiler will accept. Believe it or not, a lot of students in CS cohorts have significant struggles fighting the compiler because they just don't understand the language they're programming in and are slow to become proficient (if they ever do). Thus, a lot of people have this idea that writing code, and I mean literally just spitting out something that compiles and runs is hard.

Doing that is indeed quite easy today. That's what we mean by "coding was always the easy part".

Writing code that actually scales into something bigger and is constructed in a way that meets requirements and is flexible? That's a whole different ball game. That's software engineering.

Re: AI is removing the middle class of software engineering?

#784

This blog post illustrates the importance of NEVER outsourcing your critical thinking or outsourcing decision-making to an LLM. And to never take shortcuts with learning. Learning is hard, but learning things properly allows you to understand what is happening and allows you to ask the right questions about whether the changes an agent wants to make are the changes that will best serve the goals of the project (witho…

"This blog post illustrates the importance of NEVER outsourcing your critical thinking or outsourcing decision-making to an LLM." This is a sentence that if written just 5 years ago would result in you being seen as crazy. "LLM capable of any sort of critical thinking? Haha. Not in 50 years." It never ceases to amaze me how people are stuck in the here in the now and just accept the new reality as if it had always be…

> This is the worst LLMs will ever be. Not outsourcing critical thinking to LLM will be seen as a liability in the not so distant future. Just a year or two ago almost no one even took LLM seriously for coding. Now the status quo has moved for also critical thinking, and we hear comments like this. LLM's chances of making a mistake will be orders of magnitude lowers than humans. Slowly learn to let the wheel go. AI will be much better at holding and controlling it.

If that's true, you're fucked. Because then what good are you for? How long do you think they'll pay you to be useless meat-in-the-middle?

Not outsourcing your critical thinking means trying to preserve a scrap of value-add for having you around.

> "We should NEVER outsource number crunching to calculators. They are not 100% reliable and we can make mistakes when inputting the data." Someone in 1920's probably. I know it's a metaphor, and like all metaphors can't be compared 1-1. But it's to make a point how it illustrates my argument above.

That's a dumb analogy. Automating one activity cannot be extrapolated justify automating all the activities, including some of the most human ones.

Re: AI is removing the middle class of software engineering?

#785
post #137

Earlier quoted context omitted.

>This is the theory, but I’ve never worked anywhere (and I’ve worked at a lot of places over 20 years) that actually did it like that in practice. >What tends to happen is that the EMs and PMs look at who’s free and give that person the task. The gp you replied to qualified it with "enterprise software" (LOB, CRUD, etc aka "cost center") so your observations where senior -vs- junior engineers being more fungible can…

> However, in "engineering" type of software products (game engines, RDBMS engines, operating systems, etc) where the software is more often a "product" that's sold (aka profit center) ... there are definitely different layers of complexity where senior and junior engineers are not fungible at all. That's great and all, but that's a small minority of all software written. I'd love to work on projects like that but ul…

For what it’s worth I’ve not heard anyone ever say anything like that about SAAS developers, it’s a scary time for us all but software dev isn’t going to stop overnight.

Re: AI is removing the middle class of software engineering?

#787
post #256

Earlier quoted context omitted.

This has less to do with bad engineers than bad policies and procedures. You don't performance test before shipping to prod? you get what you get.

To a first approximation, basically no one in the industry does. Users regularly report performance regressions in basically every major piece of software, most of which would have been caught by performance testing.

It can sometimes be difficult to predict what will cause performance regressions when developing an application or web server with test data. So you do your best with what you know at the time of release, and then deal with performance issues when you know what is causing regressions (e.g. saved searches) and can then make measurements and profiling to see what exactly is causing the issue.

Likewise, improving performance pushes the limit at which performance regressions happen allowing more data (documents, triangles/pixels, etc.) to be processed. This allows things like more complex game graphics. That in turn makes it harder to improve performance for the next round (more advanced triangle/face culling and pre-processing).

There can also be trade-offs with things like data layout, memory usage (caching and memoization), or implementation. For example, when processing XML/HTML data you could use DOM (more memory and upfront parsing, but easier to perform complex queries across the data), SAX (less memory, but more complex to process due to tracking state), or reader API (similar to SAX but a different processing model).

There can be challenges with various features, such as type checking with higher-order generic types. Others add various levels of overhead, such as parsing a program, constructing an AST (Abstract Syntax Tree), generating an IR (Intermediate Representation), the optimization passes and final code generation.

JavaScript evaluation for example is complex. Before Chrome the approach was to use a slow interpreter. IIRC, Chrome was the first browser to introduce JIT (Just-in-Time) compilation, leading to faster JavaScript and eventually more complex applications running in that language. Modern browser JavaScript pipelines are complex in order to achieve and maintain performance:

1. start interpreting the code on the AST so it is run immediately (or only rely on (2));

2. generate a machine code equivalent of that interpreted code (for faster baseline performance);

3. run more aggressive optimizations on known types based on profiling/analysis for even faster performance, including special handling of things like asm.js.

[1] https://v8.dev/blog/ignition-interpreter

[2] https://benediktmeurer.de/2016/11/25/v8-behind-the-scenes-no...

[3] https://www.cs.cornell.edu/courses/cs6120/2020fa/blog/tracem...

[4] https://webkit.org/blog/3362/introducing-the-webkit-ftl-jit/

Re: AI is removing the middle class of software engineering?

#788

Earlier quoted context omitted.

Milton Friedman was a libertarian crank. I'm a consumer and I'm quite happy that doctors and lawyers are licensed.

You can have a regime that regulates who can practice medicine and law without having it run through private organizations that function like a cartel.

It's a little more-complicated in that one of the major bottlenecks comes not from the private organizations per se, but from Congress--though I wouldn't want to underestimate the effect of lobbying.

> In the Balanced Budget Act of 1997, Congress capped the number of residency positions that Medicare would fund at each teaching hospital at 1996 levels.

https://thehill.com/opinion/healthcare/5550556-residency-cap...

Re: AI is removing the middle class of software engineering?

#789
post #568

Earlier quoted context omitted.

I've said "code was always the easy part" recently so I should probably explain where I'm coming from. I think the practice of software engineering includes that "understanding of the relationship between code, business, people and teams" you mention, which essentially boils down to the ability to skillfully design a system - regardless of whether it's a big cloud-based web application or a tiny cli tool for use with…

> To me, the difficult parts of software engineering are in the design. That's where you're defining the problem you're trying to solve, picking what technology to build upon, what kind of architecture you're planning on implementing, ruling out what does/doesn't make sense, taking input from stakeholders, and finding the balance between price and performance. This is exactly why I became a PM [1]. I wanted to do "ha…

"Product Manager, your job is to find the mix of features which is fast and cheap and good, and then browbeat the Engineers into implementing them. Don't just parrot me their excuses, fix it!"

Re: AI is removing the middle class of software engineering?

#790
post #399
post #342

Earlier quoted context omitted.

Startups have limited resources, we prioritize the best we can. As a staff engineer it's my responsibility to bring this to my company, but it's not an overnight process.

why wouldn't you use those limited resources to test things before they go to production, instead of creating more crappy things that go to production?

What do you test? How much time/effort do you spend testing each of those things? How do you know those will be performance issues?

There's only so much you can do -- making reasonable assumptions, choosing suitable data structures, database indices, testing various workloads, etc. -- in a limited test environment.

You may spend a week optimizing a feature that only 10 people use or that never gets to the point where it becomes an issue. Or you may have something that can't easily be tested at scale, such as various counts or other dynamic data that are determined by complex queries that you may (likely) find you need to cache but don't necessarily know which values will become issues until you start using the system.

Post reply on HN