As a fellow developer who has been passionate about open-source programming since childhood, I was disgusted in this last hiring bubble how condescending and disrespectful the developers were towards other professions, which is disappointing. My general feeling was that it elevated developers to a seemingly different caste of "special" people, and here in my country (Brazil) there was advertisements everywhere about how you can study a couple of weeks and get a Top 1% salary.
This whole thing was a repeat of the dotcom bubble. Back then it was 'learn web design!'
Here too we had bootcamps to learn to code in weeks. At that point the bubble was reaching critical mass.
Same damn thing happened before.
I tried warning people- here on HN the sentiment was 'we are indisposable'.
When the cost-cutting measures and hiring freezes began I tried warning again and was told 'its not a hiring freeze at Uber, we are fine...just stopped hiring for certain departments (definition of a hiring freeze)'.
Then Twitter began the firing dominoes and here we are.
Thing is it was their company culture and management that made this happen.
Unreal perks, infantilization of the workforce, telling them how important they are, how they are changing the world, they are the 10x programmer.
I can't believe our workforce is going through this again only 20 years later. Seems housing is headed the same way.
We need protections for people, not companies. This is going to keeo happening unless we stop it.
I agree with you it’s in a lot of way similar to the dotcom bubble but the issue seems to me simpler than you make it seems. Propped by an easy access to cheap investment fonds, companies massively over hired developers to work on projets which have actually no value. The massive demand leads to under qualified people being hired. The current layoff is a return to a sustainable situation. And even then if you look at the number for the entire market we are not even back to a prepandemic number.
> companies massively over hired developers to work on projects which have actually no value.
It's still unclear to me the layoffs are affecting actual engineers, outside of Meta and Twitter.
Meta is trying to execute one of the biggest company pivot in tech's history after completely giving up on the metaverse. Industry-wide they account for a huge number of laid-off developers.
In the meantime, Twitter's layoffs are minimal (it's always been a small company) but extremely visible due to the company's new owner's very public persona.
Elsewhere, it's pretty close to the normal number of layoffs large tech companies do every year. It's a little known fact to outsiders, but tech companies trim underperformers every year from their workforces. The media almost never report on it, except this year they did because Twitter and Meta were in the news cycle.
These stats also have "Software Engineers" as a category alongside "QA Testers", "Web Devs" and "Application Engineers" listed as different jobs, so I'm skeptical of how accurate they are.
This is surely a gross oversimplification of what's happening. If you see layoffs.fyi, there are a lot of rows with more than 5% fired or where the numbers are in several hundreds to thousands.
While some companies are known to regularly use the tactics you mention (and a lot others also do the same from time to time), they don't use mass firing as a means.
> there are a lot of rows with more than 5% fired or where the numbers are in several hundreds to thousands.
These include "Non-Technical staff" which have been the majority of laid off employees. [0] [1] [2] [3] [4]
> they don't use mass firing as a means.
They do. Google, Amazon, Microsoft and Apple all had yearly layoffs for underperformers, while maintaining growing headcounts. Target was around 5-10%. The difference is these layoffs were not nearly as talked about in the media.
In control systems, a common tradeoff is between a fast response that overshoots or a slow response that does not overshoot.
We've seen that pace of innovation matters and if your goal is to maximize the pace of innovation, you want that fast response even if it means overshooting somewhat whenever there's a step change.
I am not sure if you mean that dirt-cheap money accelerated the pace of innovation.
But, if that is what you mean, i.e. historically low interest rates accelerate the pace of innovation, we would witness innovation gains in countries with negative or zero interest rates. But we haven't seen any shift.
There's a difference between malinvestment and investing in projects that don't go anywhere.
This is the difference between burning cash in a bonfire, vs using $1 dollar to make $0.XX cents.
I'd argue the system was rife with the former, not the latter
People really can't predict what investments represent the bonfire vs. good investments, and even if they get that right, it's even harder to get the timing right.
For example myspace vs. facebook, webvan vs. amazon vs. instacart. You can also look at physical industries like the aerospace boom after WW2 that brought us into the jet age. The high influx of cash allows huge numbers of companies to bloom, representing the testing of lots of ideas and designs in parallel. Many aerospace companies failed, just as many tech companies have failed, but those tests accelerate innovation.
“We've seen that pace of innovation matters and if your goal is to maximize the pace of innovation, you want that fast response even if it means overshooting somewhat whenever there's a step change.”
Does the pace of innovation really matter as much as you think? Or is it possible execution on the business side can matter more?
Also, it has been proven that adding more software developers can actually slow down a project. Increased hiring, therefore, does not necessarily correlate with faster innovation.
> I tried warning people- here on HN the sentiment was 'we are indisposable'.
Maybe if you were actually any good. I reckon at least 60% of these bootcamp alumni were just dead weight. I've interviewed so many people who "learned to code" but had no meaningful logical reasoning or problem solving skills. They could maybe understand syntax, but for the most part they just have some basic familiarity with various frameworks and tools. They don't know how any of it actually works.
Experienced developers are often mediocre communicators, so it's not even like they'd be able to explain what needs to be done clearly enough for people without problem solving skills of their own to run with the ball once its been handed to them. Developers are there for their programming skills, not pedagogical ones, so it's just not a realistic staffing model to be this way.
> had no meaningful logical reasoning or problem solving skills
This is 70% of software development, this is why I think people from the hard sciences often make better software engineers (in the true engineering sense of the word) than people actually trained in CS. Most CS folks can't experiment their way out of a paper bag.
I take huge exception with this remark. I graduated with a BS and MS engineering at a top-20 US engineering school. I also earned an MS at a top-25 computer science program. I found the CS program dramatically more challenging. My CS classmates were some of the brightest problem solvers I've ever worked with in my life.
Then in my career, I have worked alongside some brilliant software developers who had academic backgrounds in non-technical fields like history or English.
I don't know if there's a way to assess someone's problem solving ability based on their field of academic study. It would seem that those from science and engineering fields (CS inclusive) would generally fare better.
Your dismissive comment about "most CS folks" is just offensive.
You are a data point of one, and I have no idea how well you can apply the scientific method to solve problems and understand the state of your system.
I am not judging you, my statement was a generalization.
I would also say, most people in the hard sciences that are not CS cannot code their way out of a paper bag.
I agree with you, some of the best, most rigorous thinkers I have come across had a liberal arts background.
This isn't a quantitative statement about the kinds of people, but the things they focus on. I think CS is hard, but one thing that seems to be repeated is that super capable people can get by operating in an unscientific open-loop fashion which causes cognitive blind spots, and those blind spots are in using experimentation and the scientific method to solve problems.
Which is why I refuse to use the term "Software Engineer."
Sorry, Java CRUD and copy-pasted React snippets from SO are the furthest thing from an engineering discipline. MOST jobs are web development, even if you're a "backend" developer.
There probably is some legitimate engineering in embedded or development that requires an authentic scientific and engineering background, but considering the majority of code written is CRUD stuff...that ain't it.
> There probably is some legitimate engineering in embedded or development that requires an authentic scientific and engineering background, but considering the majority of code written is CRUD stuff...that ain't it.
I suppose the OS, database, networking and infrastructure to run those CRUD apps as well as the languages and runtimes magically appeared out of nowhere.
I am talking about BigTech top 10 CS school grads. They literally don't understand the scientific method or how to use mathematics to design their systems.
I had friends that did bootcamps and this mirrors my experience. They know how to use Express a little bit, but not how the middleware works or what HTTP status codes mean.
They can write code if I translate it to requirements and show them something similar already in the code. They tend to flail around when handed a more open ended problem like "we need an endpoint that will return the last 5 purchases made by a particular user". They don't yet grok the kind of questions to ask like where should the data come from and what format should I return it in?
I don't mean to disparage them as students, I just think they were sold a lie. New programmers probably can learn the very basics of a language and framework in 8 weeks, but learning to solve open-ended problems takes a fair bit of practice for most people. There isn't really a shortcut through that.
Yeah your choice of the word "practice" is the important part. A lot of people imagine that developing skills is like plugging into the Matrix and downloading knowledge into your brain. But it's about cultivating a style and approach to thinking that only works through practice.
The first year of law school is often said to be the hardest for the same reason, they're breaking down your intuitions and teaching you to think like a lawyer. I went through the same process as a social scientist. Every discipline has this acculturation process where its disciples are trained in the skills and values of the discipline. It's not just information transfer. You can study sheet music all day, but unless you actually PLAY you will never get it. It's not something you can just boot-camp in a few months.
If people have the skills or values they developed from other disciplines that they can transfer over then the boot-camp can work. If you learned how to do logical reasoning from being a philosophy major, then you'd probably figure out symbolic logic and learn to program pretty easily. If you figured out how systems are put together from a career as an electrician or mechanic, then you can probably apply those skills to architect software too. But you need some foundation there to build on and I don't think a lot of people just getting into it because they heard it's a lucrative career have that.
A junior hire I worked with a little while ago had actually done a college class on web development. I must admit the more senior engineers did rib him a little about it, being a little incredulous that a serious college would teach web dev and give out college credits for it. But nowadays there's even one at Stanford so we were wrong.
Anyways, the first thing they learned in that class was the HTTP protocol.
> I just think they were sold a lie
At the same time, where are the aerospace engineering bootcamps? Where's the law or medicine bootcamp? Did the people enrolling really thing they would be on-par with actual engineers working in the field after 12 weeks?
I totally think colleges could teach HTTP. There's plenty of time to do it in. I generally think colleges do a meh to poor job of preparing CS grads for the real world, but they're leaps and bounds better than bootcamps. I'd probably give 50/50 odds on college grads knowing (or at least being able to remember) HTTP status codes.
> At the same time, where are the aerospace engineering bootcamps? Where's the law or medicine bootcamp? Did the people enrolling really thing they would be on-par with actual engineers working in the field after 12 weeks?
2 thoughts on that.
The first is that at least 2 of those 3 (not sure about aerospace engineers) require a specific degree (in most states). It would be a bold faced lie to tell anyone that the AMA is going to recognize them after a bootcamp, and certainly punishable under false advertisement laws. They're probably right that someone could do a bootcamp and be on-par with actual engineers. It might have to be a very specific someone with a very specific background, but it's probably possible.
The second is that yes, I think people do think that. I've had a couple of friends that have done them, and they were convinced that they could pay $12k for a 9 week bootcamp and be a desirable and productive developer. I tried to convince them otherwise, but failed. I hate them because I feel like they're selling an expensive, unrealistic dream to people who have no way to know better.
They do. Anyone who takes a web dev class or takes a Senior Project Course should be familiar with it. I was surprised bootcamp grads didn't know about it since it's most often the first slide of a web-dev class.
> I generally think colleges do a meh to poor job of preparing CS grads for the real world,
Often, an issue I've observed is that students will minor in CS and major in something else, or the way the CS program is structured, you can major in CS with mostly math classes. Which is the way to go if a student is aiming at grad school, but not the best in industry.
> They're probably right that someone could do a bootcamp and be on-par with actual engineers.
I'm very skeptical of that claim. I've never seen it play out. Cramming a 4 years degree into 12 weeks?
> I hate them because I feel like they're selling an expensive, unrealistic dream to people who have no way to know better.
I've interviewed someone from a bootcamp who, after 50 minutes, could not come up with a function to count the words in a string. I use it as a warmup question for freshmen who have completed one semester or CS and it usually takes them about 10 minutes.
So yeah, I completely agree if someone paid 12k for that, they got scammed.
> This mindset will limit your advancement, teaching and mentorship work becomes increasingly key for senior and senior+ roles.
Yes but there aren't enough of them, and they're not being paid to teach fundamentals to fresh faced entry-level hires. We'd expect them to teach higher level things than the basics of how to program. The skill set to be able to teach and explain to a complete naif is a little different from the skill set to communicate with someone who has already been inducted into the jargon and practices of your field.
I notice that there is a huge difference in the attitudes of people who learned programming in childhood, compared to people who learned in adulthood. As someone in the former group, I find myself agreeing strongly with your assessment.
There is a lack of humility that is far too common, that manifests as a toxic attitude and bad spending habits. I see a similar issue with people in finance, and once the illusion fades such people are prone to suicide, as was the case in 2008.
Don't worry, the sweet irony is hitting those condescending tech-bros now too the same way it hit the condescending crypto/stock bros who kept preaching "the market only goes up", "to the moon" and, my personal favorite which I read on HN, "developer demand is infinite". How's that infinite demand working out now tech-bros? Just ask Twitter employees.
A lot of people working in tech were delusional by the 10+ year long cheap money printing bonanza which fueled VC growth, and a bust is a good reality check that no boom lasts forever and that it's best to be humble and not inflate your lifestyle while you're on top, as your position on top was most likely due to survivorship bias and great market conditions and not earned through raw skills and hard work alone.
I was around for the last 13 years, and I'm pretty certain that it was *self-identified left-leaning journalists* who told coal-miners "LearnToCode" and then got all huffy when they got told "#learntocode".
There were some developers at least condoning it. I remember having debates about this around the time it had really picked up and I remember people here and otherwise telling me developers would never have to worry because demand was seemingly infinite or something. I fucked up listening to them.
Don't forget Joe Biden, who needed a break because having the ability to go down into a mine and throw shit into a furnace obviously means that you can and presumably should learn to program instead: https://www.youtube.com/watch?v=VDRK0MyuuIM
I'm a blue collar IBEW electrician that inevitably injured myself working in confined spaces. Summer 2022, I set out on my quest to become a technical writer, but by Holidays 2022 I was generating images and tip-toe-ing into the emerging ChatGPT stuff.
By January 2023, I was already certain that professional writing would be increasingly-difficult to enter (as a career field) as a novice content creator: I was already able to generate extensive copy and then just act as copy-editor-"writer"
Thankfully a natural disaster (landslide creep) has forced me to re-prioritize my life, down to potentially building yet another house — I'm not sure at this point I have the physical energy, but I certainly know that my brainpower cannot keep up (competitively) in a paid-market content onslaught (which is inevitable).
Whatdo? My body was so excited to sit in a desk, just shy of 40... and now I just don't see a point competing with all the more-qualified laid-offs (redundant white collar worklings, some replaced by AGI-like services, competing against novices like me... which GPT certainly outperforms, at 1/100th the price).
Here's one thing you've got going for you: you can reason about electrical work far better than the general population as well as ChatGPT, which can barely reason at all. It can regurgitate what it scoops up from its training data very well. When it has to combine ideas in novel ways it starts to hallucinate and requires an operator with genuine expertise to separate fact from fiction.
As a general purpose novice copywriter I think yeah a lot of people are gonna struggle in this new world. But you are an electrical expert. Maybe that's your angle.
I have been observing GPT responses to basic circuit design (specifically in battery cell arrangements for EVs, a client's specialty) and although it is not able to understand "big picture" overall objectives — at present — once re-trained, it is then able to derive correct solutions to similar and same problems.
Thank you for your motivational participation — I have actually copyedited tons of technical documentation (some even paid, lol =P ) but definitely would need to specialize fiercely and apply realworld knowledge into the computer systems.
There must be work in your area that isn't backbreaking physical labour or computer knowledge work revolving around rapidly changing fads.
How about working for the government or public companies or institutions?
ChatGPT knows a lot when it comes to information that's public in the internet or open sourced a lot, like web dev, but a lot of business require institutional knowledge that's always in the heads of the workers and never opensourced online like electrical engineering, embedded programing, train operators, plumbers, electricians, PLC programming, etc.
Knowledge work is so much more than web dev or copyrighting.
It's also hitting just as hard the people who were humble and hard working and who learned to code because it is (or was) one of the last firmly middle class jobs you could be allowed to do without a degree or background check.
It doesn't only affect the people you don't like so I would chill on the glee, personally.
Tech-bros were by far the best paid class in the middle class.
People laid off from big tech are now kicking it back in SE-Asia with the severance money they got. No tears will be shed for them.
They'll easily find other employment outside of big-tech. They'll still be middle class.
I'd put my energy caring more about underpaid teachers, doctors, nurses, emergency personnel, or other the lower classes of the middle class that got laid off, if I were you, instead of defending overpaid tech-bros that got a dose of reality.
My point is that those categories aren't as separate as you like to think. I used to teach at a code school, and every single cohort had a nurse and a public school teacher in it. It was a running joke among the staff mostly because it was a very alarming trend we couldn't avoid seeing.
Those people didn't become "tech bros", to the extent they were admirable individuals before coding they remained so afterwards. A lot of people only entered the middle class because of coding work and will exit it when they can't continue. I'm one of these and I enjoy mocking tech workers as much as anyone but I trust my class solidarity is well placed in bowing out of this one.
Same voices are heard whenever there’s a real estate bubble and wanna-be landlords come out with justifications like ‘people will always need a place to live so buying and renting will always work’
This seems logical. The software engineers are likely going to be some of the highest paid employees, so laying off underperforming engineers is going to help reduce labor costs substantially.
Many of these engineers have been hired for new business units that didn't end up being profitable with cheap credit going away. Others might be in business unit that is purely a cost center.
Nothing has really changed over the past few decades. Regardless of your role strive to be part of the company that produces the company's profit. Try to avoid parts of the company that are viewed as cost centers and are constantly under the eye of finance as they manage costs. You will find how are you treated in good and bad times radically different.
The software engineers are likely going to be some of the highest paid employees, so laying off underperforming engineers is going to help reduce labor costs substantially.
It might seem counter-intuitive, but often businesses lay off the high-performing-but-best-paid people because that drives the biggest savings while reducing the vanity headcount metric less, especially in companies where the effort of the team greatly outweighs any individual. They assume (sometimes rightly, sometimes wrongly) that the team will carry on without the 'superstar' people. There's also an assumption that the best people will leave when there's a layoff (mostly rightly), so getting rid of them means maintaining control of who's gone.
There should never been an assumption that you're safe from layoffs because you're the highest performing person on the team. Sadly.
High performing people adding the most value to the business were rarely the highest paid ones as they had long tenure and the best institutional knowledge but got mediocre wage increases as a punishment for being to loyal too the business.
The highest paid ones were usually the ones who job hopped the most during the times of economic boom. They added little value where they went as their tenure was too short for that, but the market was so hot and the dev demand so high that tenure length and adding value didn't matter back then.
If you knew how, where and when to jump ship during the past boom, you could be an incompetent buffoon and you could still end up making way more than the tenured workers actually adding value to the company.
Now the companies are attempting to correcting that "mistake".
No joke at all. I personally know people that rode this last hiring bubble very stellar and got from analyst to manager in just 2 years, while raising their salary over 300% upwards because of strategic company hopping.
Some of them did get fire and are having trouble finding a job that paid as well as the last one.
It was a risk they were willing to take and I believe in some cases it paid off.
It does, if the plan included an option to step back to a lower paying job. Of it didn't, say because the life style continued to match the new salary and / or because people thought that career plan is going to work for ever, well then that plan can backfire hard.
Well, I was just trying to point out that median is a silly measure, but now we're really comparing apples to oranges. Every astronaut is not a NASA astronaut and so they haven't had to undergo a uniform skill test but there are still excellent odds that every astronaut is qualified for their role even if they are below the median "astronaut". Yes, it could be argued that every space agency has some sort of test, but the same could be argued of every employed dev as they'll have had to pass an interview.
Again, not saying that every dev is a good dev, but that median is a silly measure.
One man's brilliance is another man's "who wrote this crap?" It is indeed quite likely that most of us, possibly even all of us, will fall below the median of someone's measure.
They're making a math joke. It's impossible for more than half of the sample to be below the median since the median is constructed so that half fall on each side.
Having 60% of a sample below the median means someone calculated the median wrong.
> It's impossible for more than half of the sample to be below the median
No. It is very much possible when the measure is undefined, as was the condition setup before the bet was made.
If we take it to the logical end where your chosen measure is simply the inverse of my chosen measure, then those above the median by my measure fall below the median by your measure and vice versa, leaving the entire set of those outside of the median to be seen below the median (and also above the median).
As it pertains to the larger discussion, how the quality of a developer is measured has not been established, which means everyone is likely to measure differently and often in conflicting ways, and so most of us are bound to be below the median according to someone.
So, yes, this was originally pointed out in a humorous manner. The bet made on the basis of that joke was, indeed, unfortunate.
> No. It is very much possible when the measure is undefined, as was the condition setup before the bet was made.
I promise you, it's not, because that's not how medians work. This is the Wikipedia definition of a median:
> In statistics and probability theory, the median is the value separating the higher half from the lower half of a data sample, a population, or a probability distribution.
There have to be half on each side or it's not a median. The mean doesn't have to be distributed like that, but the median does. It doesn't matter if the measure is undefined; the median divides the upper half from the lower half. There are always 50% on each side (and one on the median, if there are an odd number of samples).
> If we take it to the logical end where your chosen measure is simply the inverse of my chosen measure, then those above the median by my measure fall below the median by your measure and vice versa, leaving the entire set of those outside of the median to be seen below the median (and also above the median).
Sure, but that's not a median. That's the intersection of people above 2 separate medians of 2 separate measures. You can't combine the median of separate measures and have it still be median; you can combine the measures into a single measure and that has a median where half are above and half are below.
> As it pertains to the larger discussion, how the quality of a developer is measured has not been established, which means everyone is likely to measure differently and often in conflicting ways, and so most of us are bound to be below the median according to someone.
Totally agree there, I'm just beating a pedantic, dead horse that that's not a measure (it's a bunch), and it doesn't have "a" median (it has a bunch). You're talking about the intersection of people above the medians of a bunch of measurements, which doesn't share any of the properties of a median or being above/below it.
> Sure, but that's not a median. That's the intersection of people above 2 separate medians of 2 separate measures.
And? That's a given. The comment we are discussing made it clear that the are multiple measures, and that most developers will fall below the median (in at least one of those measures). Not that difficult to understand.
> You can't combine the median of separate measures
Sure. Which is why nobody did. What are you trying to add with this strawman? If you are simply trying to refresh your memory of your kindergarten-level math classes, I'll chuckle for a minute over the foolishness of me thinking you were trying to have a discussion and leave you to it.
If you're arguing for some quantum metric that could make me lose it, you're for some reason not providing the word "us" with the same leverage which puts us into a situation we should just default to the literal definition of median since there's literally no way to prove (or disprove) your point.
But sure, you've proven you can buzzkill anything, so you win!
As was said by the parent commenter (drewcoo) just before you placed your bet, because no measure is established, each evaluator is bound to have a different opinion of how to measure a developer, and as a result most developers are likely to fall below the median (according to someone's measure).
There is no mathematical contradiction. Perhaps a misunderstanding on your part? Either way, the bet was lost. Time for drewcoo to reap the rewards.
I remember what hiring was before the dot.com bust. People straight out of school with no professional experience, or even any open source or personal project work, were hired as senior engineers.
Over the past decade more and more devs have been out-earning surgeons and white-shoe lawyers. The tech salaries of today feel like the i-banking salaries of the early 2000s. It’s not just the c-suite that’s been earning crazy money.
> more and more devs have been out-earning surgeons and white-shoe lawyers
That's not abnormal.
There's only so many surgeries a man can perform, and so many cases a lawyer can argue. But software scales differently. Good luck performing surgery on three different continents at the same time.
Yeah, but I have little interest in pointing a finger at developers for inflated salaries while there's the Sundar Pichai crowd being paid north of $200 million a year.
A mediocre developer can be a drag on a company or just keep the lights on. A mediocre CEO gets paid enough to fund an overpaid developer at $400K a year for... oh, about 560 years.
The damage that a mediocre (or worse) C-suiter or VP does to a company is a lot worse than the mediocre developer (and, in fact, there's a straight line to overstaffing/overpaying and the "leadership") will ever do.
As long as folks are calling out other workers as overpaid and neglecting the execs, the industry is going to continue to get worse.
A kid was stabbed to death on a bus last week. A lawyer will play a major role in whether his killer goes to jail.
People are evicted, set free, imprisoned, and suffer serious economic setbacks (or not) based on lawyers. This completely ignores any knock-on effect of jail time in a persons life.
What on Earth could you possibly do that would be more impactful to society?
After exiting the expansion phase, we are in a consolidation and cut expenses cycle. If you can increase productivity then you will find value. If you take a tech specific viewpoint this is the hope for AI. At the same time AI will create new market opportunities overall. In addition the digital transition and the digital to cloud transition will continue.
That chart showing software engineers having the highest share of laid off employees in 2023 only tells half the story, which doesn't surprirse me because that allows the author to push their "sky is falling for devs now too!" narrative.
To show the full picture, you would need to also see the share of new jobs filled from end of 2020 to end of 2021 that were software engineers positions. I don't think people really grasp how massive the hiring spree was for software engineers in that time period.
There are a lot of "software engineers" who can't code well. I see a lot of "google and copy paste until it works and deploy". No thoughts behind design. No idea about performance. No testing. No innovation. They all need to go.
Is that the fault of the devs or the broken processes where management promises unrealistic deadlines up the chain, so devs have no time to think about the bigger picture and just do everything in their power to ship something that barely works at the end of each sprint and move on to putting out the next fire?
To me, the fault is in the industry and how the ships are run.
I agree the problem you are describing also exists.
But I think the GP here is describing when people really can’t program. Like they can only write trivial programs by copy/pasting code from stackoverflow, and they don’t understand CS at all.
That is a different issue then knowledgeable devs cutting corners to meet deadlines.
If that's happening, it's either a calculated decision or the senior devs aren't doing their job. Someone should be communicating to management that the solution won't scale, with estimates of when it will fail or maximum load and the amount of time it will take to do it correctly.
Sometimes it's legitimately not worth optimizing something that will never need those optimizations. Sometimes management doesn't realize something needs to be optimized before it falls over. Sometimes management does make a bad call and doesn't want to optimize something that should be, but that's been uncommon (at least for me).
They will not believe you until actual issues happen. People in general are very good at dismissing problems that are right now biting someone else. You can see it all the time, even here in hacker news. And if anything, management is especially good at being confident that things will work out.
My senior experience is that if I see trouble that requires management intervention ahead, I communicate about it and then bail out. Trying to save it will just burn me out and as long as I am trying to fix issues, management thinks everything is ok and I am just stupid worrier. The issues must get real bad for them to be noticed and fairly often, it is best to let them go there fast.
Right. My point is that senior devs should be communicating the consequences of continuing down a rushed path. If management doesn't listen, they're making a calculated business decision (right or wrong).
If management is going down a rushed path and unaware of the tech debt piling up, that's a failure of senior developers to raise those issues.
Senior devs are good at communicating but management and execs aren't good at listening, they're good at counting beans. They don't care about tech debt because that's the issue of devs to work with.
Pretty much this, there have been times in my career when I was prepared to do everything the right way, but deadlines and unrealistic expectations from people who don't even know what JavaScript is forced my hand, so the product was less pretty internally but still functioning.
For most people software engineering is about driving results, not making everything beautiful under the hood. Although it's nice to do that when you have time.
I'm sort of experiencing a weird paradoxical feeling about this. I was spied on by Google and given the FooBar test, which I passed... and until which time I would have never thought of myself as that type of programmer. I can comprehend design patterns, or even have an intuition, but I don't generally think of them upfront (maybe I do more in recent years, maybe it is a skill which can be developed). What I have always been is curious, and just trying stuff out until it works, which I feel like I've seen spoken of a lot. I'm a hackathon winner. I've collected half of the network engineering encyclopedia, which is not really considered when we think about 'programming' exclusively, yet is ironically compared to 'leetcode' here. I've worked on industrial applications. I've gone back to first principles and maths in this AI summer and I'm having fun. I had a previous professional life in music and I've been excited about algorithmic composition (et al) for decades. I have a love for math. That said, I've never felt like the big brain stats types or many of my colleagues in programming. And for that matter, many of that type (anecdotal) have never done the creative things I have in music, etc. So all in all, maybe there are different types of talents!
While I've met plenty of terrible developers from the best universities and with the best grades and interviewing skills, people that was easily outclassed and outperformed by 3-month bootcampers, I can't lie crappiest one are much worse, people who struggle to implement very basic algorithms such as Fizz-Buzz.
Indeed, Leetcode is just slightly harder (or easier even) fizzbuzz anyway.
If you are given really hard questions in an interview or they ask for dumb invert binary tree like questions. It is most likely that person who interviews you is lazy or does not want to hire you but have no choice but to interview you.
I beleive pair programming interviews are the best. As they can be 1) Time limited so you don't take home and waste your time. 2) Can be a portion of a real world problem.
So, the same companies that overhired and ended up with underskilled developers are somehow going to accurately identify the underperforming developers and lay them off?
I think one of the problems is that they are about as good at identifying talent as they are at laying off underperforming developers.
One of my friends has worked at the same place for 10+ years, dodging several layoffs. When he talks about layoffs it seems pretty random who gets the stick.
He doesn't have the complete picture though, so they might very well be great developers, but still underperforming...
There's also some obvious issues with the way they do layoffs. Like, say there's a 10% cut target. They typically make every leader hit that target. Even if one team has, say, 30% of their devs underperforming, and another team has 0%.
And, of course, the idea that every leader even has a reasonable idea of their developers' performance. They don't. And they protect or punish people for all sorts of reasons, often unrelated to performance.
People get laid off from low impact projects/teams. People working on higher profile, more important projects get to stay, even if they're objectively worse than those who got laid off.
There are obviously exceptions, like strict "lay off 10% of all teams" type of layoffs, or a family business firing everyone who's not family, or Elon Musk firing anyone who disagrees with him.
Quiteva few, actually. Downsizing does require a lot of admin work. Once the downsizing happened, well, those downsizing HR folks are the last to be downsized.
how are you actually this naive? Classic HN attitude of thinking every single job that isnt engineering does nothing.
You understand theres tons of underlying systems like payroll, insurance, legal issues, severance packages, government filings that happen when you either hire or fire someone?
Many people would call Amazon a tech company - but they employ a lot of customer service folks, warehouse workers, and delivery drivers. Most people would call Facebook a tech company - but they employ a lot of content moderators and ad sales people. And so on. Most people would call Apple a tech company - but they have people staffing their retail stores and repairing broken laptops. And so on.
Not every business can be run like Google, with zero customer support and zero service delivery :)
Well, according to that stats, there's several other roles that could be amassed under the software engineer broad umbrella like application developer, web developer and many QA testers.
This makes software roles much more impacted than 20%.
It feels like we are facing a software security armageddon. There are millions of disgruntled coders, powerful AI tools to help hackers find security holes in record time, broken media, no trust in institutions, software complexity has grown out of control (increasing the surface area for security vulnerabilities)... Will centralized software survive the next decade?
This comment sounds like the output that ChatGPT would give you if you asked it to generate a discussion board comment that maximizes fear mongering and hyperbole.
Midwest "old school" firms tend to be very conservative in terms of compensation and headcount. That was definitely the case when I was managing teams there. Good talent, but at a fraction of the cost of hiring people at any tech hub.
Ninja edit: The company I worked for did layoff (around 2008) but that was more of a scare tactic which I ended up leaving the company over.
Probably lower real wages (compared to what they'd have been otherwise) as competition heats up for those positions, as well as a tougher hiring environment for job seekers.
It would be nice to see a chart of how many people were hired over last few years across different functions. I guess it would look similar. Software engineers would be at the top.
There was a blogpost recently on HN, which compared the "learn to code" campaigns as useful if one thinks of this along the same lines as "learn to cook". I liked that perspective.
The problem of course comes when someone who just learnt how to cook their first omelette feels ballsy enough to apply to a michelin restaurant as head chef ... and the hiring manager can't tell the difference.