Employees Who Stay in Companies Longer Than Two Years Get Paid 50% Less - <AUTHOR> https://www.forbes.com/sites/cameronkeng/2014/06/22/employees-that-stay-in-companies-longer-than-2-years-get-paid-50-less/ <comment><USER2> Best way to increase salary at current workplace? Get offers from other companies & ask for a meeting with your boss (or whoever decides your pay, so HR etc.).

Bring up the offers, discuss what you'd get from there and also go through the potential career you could build at those companies. For example: Consultancy X would pay me $k/mo and every 6months it will go up the ladder if I perform well.

With this kind of discussion you should be able to get a raise that brings your pay even above the competing offers.

Treat your current as one of the options you can make that day; make your employer fight for you every 6-12 months. And remember it's not personal, it's just business. Your employer would let you go and throw you under the bus if it made business sense.

tldr; don't get too emotionally attached to job; that's when they get you.

<comment><USER3> I imagine this is good advice in some places, but as a line manager, if you pull this on me I'm more than likely to shake your hand and wish you luck in your new job.

In a lot of places, having a talk with your manager about your salary before going off and actively looking for other offers is going to go down a _lot_ better. Most line managers worth working for, value their teams and will fight for them if they are unhappy, without the threats.

And TBH, if your company has to make cutbacks in the future and you've shown you're willing to up and leave at the drop of a hat, you're name's likely to get further up the redundancy list than you'd probably like.

<comment><USER4> > but as a line manager, if you pull this on me I'm more than likely to shake > your hand and wish you luck in your new job.

"Pull this on you"? You sound like a real joy to work for.

This is expressly why I choose gigs where I'm working directly for an owner if at all possible. If you've created value, owners know how important you are and will take your request seriously as long as it's reasonable.

In my career, I have received 100% of the raises I've requested ... at least a half dozen times. I've never once received a no or even negative push back. Owners were eager to retain me.

Even if your intention as a "line manager" is to not give the raise, the right move is to at least feign consideration for a few days and show the employee his request at least matters enough to think about.

Letting everyone know they'll immediately be shown the door if they dare request an increase would create a terrible culture. Clueless management.

<comment><USER5> _Letting everyone know they 'll immediately be shown the door if they dare request an increase would create a terrible culture_

The person to whom you're responding explicitly drew a distinction between discussing a raise with your boss vs going to your boss with another offer that you have secured.

I can see the importance of that distinction. To put the relationship in a different context: Imagine the difference between a girlfriend who says, "Hey, we need to discuss the amount of time you spend playing video games. I'd like you to pay more attention to me." vs "Hey, I don't like the amount of time you spend playing video games, so I've been talking to this new guy about being my boyfriend. Your move."

<comment><USER6> I know it doesn't add anything of value to the thread, but that's a really good analogy.

<comment><USER7> Not really. Business is business and personal is personal. If you look at them both the same you'll end up stuck in a job you hate for 8 years thinking you're being super loyal and that raise is just around the corner.

Spouses are loyal back, businesses are not.

<comment><USER5> That's not true at all in my experience. Both as a manager to others, I've always tried to be loyal to employees who invested in the employer/employee relationship - and as an employee who benefitted from having an employer/managers look out for me when inevitable bumps in the road occurred in my personal life.

Outside of my own direct experience, I can also recall many other co-workers' experiences where the companies I've worked for went above and beyond in their commitment to their employees. One time that meant making many extraordinary allowances for an employee suffering from a mental breakdown. At times it has meant extending the employment of someone who was looking for a life/career change, but the company kept on paying a salary until the employee found somewhere new to land - way beyond where the employment had any real benefit to the company. There are many others.

By all means, takes some precautions. By all means, stand up for yourself. By all means, make sure that you're being fairly compensated... but if you go into every relationship, personal or business, with your shields raised and phasers set to kill - you will reap what you sow.

<comment><USER8> Loyalty on a large scale requires threat-backed enforcement. Mafia members were loyal to each other not just because family was sacred but because they'd be killed otherwise. Big megacorps of the 20th century basically worked by vesting your payout over your lifetime; leave halfway, and you'd miss out. No such threat exists in America today, so while it's possible for individual managers and employees to choose to behave in the loyal manner you described, when giving general advice, it's wise to treat business as business.

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> I think it's important to understand that there's a significant amount of selection bias possible here. In general, folks who switch jobs every two years are the folks who are not getting offered big raises by their current companies. The ones who are getting offered big raises may still choose to leave due to other reasons, but they often will choose to stay instead. And they won't be making a big fuss about it online.

There's another phenomenon here. Almost by definition, average developers are not going to get big raises. They'll get average raises. The average developer raise is probably 3-5%, which is not big but it's more than the average raise across all professions, at least in the US.

This leads to an interesting question: why can the average developer get a big raise by switching jobs? I think at least part of the answer is that companies simply have more information about employees who've been around for at least a few years than they do about potential hires still on the market. It's a lot easier for a company to realize an employee is about average once that person has been on the job for 12+ months than it is during the interview phase, where the questions are heavily sandboxed and generally focused on basic problem solving ability rather than the candidate's ability to convert that into business value.

Finally, in general people who are average but think they're above average really do _not_ like to confront the fact that they're average. So average developers with big egos being offered average raises will often very vehemently argue that the problem is all with the companies they've worked at and never with themselves.

\---

Another point worth focusing on here is that raises are really determined by the business value that you're producing, not your raw intelligence or passion for coding. Very smart coders may or may not be any good at converting that talent into lots of value for the company. It may even be that sometimes a less talented coder gets offered a much bigger raise because other skills allowed them to create significant value.

I think this explains why so many folks are average but think they're above average. It's because they might indeed be above average in some metrics, but not the metrics that matter to their employer.

<comment><USER10> > selection bias possible here. In general, folks who switch jobs every two > years are the folks who are not getting offered big raises by their current > companies.

The article is saying that those who stay don't get offered big raises. The article says that if you stay you get 3% or less. There's even a pretty chart to make this point.

Employees aren't paid what they are worth, they are paid as little as the company can get away with. The delta is profit to the company, which is the whole purpose of the company's existence. Employees who stay are demonstrating they can put up with flatter wage development, and they are being taken advantage of by the employers.

<comment><USER11> This is true even when a company is hiring someone. They will try to hire you at the lowest possible tier. Of course there are exceptions to this.

<comment><USER12> The negotiating situation is different when hiring someone vs when offering a raise.

</comment></comment></comment></comment><comment><USER13> There is a plateau as one reaches senior positions.

As I went from "no" experience to my current position my job switches (every ~2 years) always were for 10%-25% (in one case, 100%, but that was Midwest to Bay Area so other factors are at play). I never got more than 5% merit increases otherwise.

Most of my friends who have been at the same place for >10 years in engineering (not software) are just now reaching parity with my base salary (CoL-adjusted) and they didn't spend 6 years in academia before transitioning to industry.

Two year tenures isn't job hopping. It's a reflection of how this industry works. Very few companies offer sufficient breadth and depth of product complexity, career advancement, or other similar things to make it worthwhile. I'd say the sweet spot is 2-4 years, except at very large companies (e.g. Google) (EDIT:) or companies which are developing complicated products with physical engineering or regulatory factors complicating development. Anything longer, especially if there is a lot of long-term stasis on a resume (e.g. "tech lead on product X" for more than a year or two), is an indication to me of someone who either isn't capable of stretching himself or doesn't want to. Anything less, especially if more than one project per job exists, indicates an inability to see a project through to maintenance or someone who is easily bored.

<comment><USER14> > Anything longer, especially if there is a lot of long-term stasis on a > resume (e.g. "tech lead on product X" for more than a year or two), is an > indication to me of someone who either isn't capable of stretching himself > or doesn't want to.

That's insane. Someone who is the technical leader of a project for more than two years doesn't "stretch himself"? I see no reason to believe that's true. If anything, it takes years for you to realize design flaws in components of the earliest-developed systems. The extent to which you can learn about how to design well-designed systems is going to be quite limited if just peace out after a year or two, as you suggest.

<comment><USER15> According to the modern thinking, in two years you're supposed to switch stacks twice, and rewrite the whole thing five times. With that much churn, there's no value in seniority.

<comment><USER16> The recent expansion of the industry mean that people with little or no experience massively out-vote those with lots.

</comment></comment></comment></comment><comment><USER17> My contrary opinion is that people who job hop every two years are the ones who come in, make enough progress that management thinknthey are pretty nifty, then leave before they have to domany maintenance on the technical debt they left behind.

Sure, it is good to be highly paid, but the situation just reinforces the idea that people who wear suits are paid far too much.

Though I find myself i the situation of wanting to earn more, so I am seriously considering switching to SAP. Sell my soul, buy a house, live with my conscience formthe rest of my life?

<comment><USER18> What about people that job hop because of that left behind technical debt? Often it's the long term employees that don't realize how much technical debt and other craziness they have, it's a kind of stockholm syndrome. The can also be woefully out of date on the industry and have likely reinvented many wheels out of ignorance.

<comment><USER19> If you've done this once or twice, sure, I think it's reasonable that the companies you worked for were exceptionally bad at keeping up with the times and ignoring technical debt.

By the fourth or fifth time that you've moved jobs for this reason though, I start to question your judgement. Every company is going to have some degree of technical debt, and the speed that trends come and go in this industry means that any company older than a few years is going to have some technology that isn't the latest and greatest.

A skilled developer isn't someone who refuses to accept any technical debt whatsoever, it's someone who knows how to manage it appropriately and balance it with the ability to execute.

<comment><USER18> Problem is that the companies with the biggest issues are the one that need to hire the most and the ones hiring you are often the most oblivious to it because they've stuck around so long. You don't find out how bad the code is until you start the job and you don't find out how the company really intends to handle it for some time, possibly months.

What we really need is corporate code reviews when interviewing. They give me code tests for my competence, I should be able to do the same for the hiring organisation. Then I could at least ask about specific issues and ask how and when they intend to deal with them.

</comment></comment></comment></comment><comment><USER20> This is a really poor article, and I'm surprised Forbes would publish it. As far as I can tell, there's absolutely no data behind any of the assertions in the article, and the title is just conjecture by the author based on a whole lot of assumptions.

<comment><USER21> > I'm surprised Forbes would publish it

Unfortunately much of Forbes has become nothing but a fancy blog, very much akin to Business Insider. With the amount of "contributors" posting to the site nowadays the Forbes name in the URL isn't exactly a positive indicator, if not a warning sign.

<comment><USER22> Was Forbes ever a respectable publication though? I ask with all sincerity. It seems their volume is super high and that's about it, so they get name recognition from repetition, not sure what else from.

<comment><USER23> Yes. Like the Bruno Mars song says "I want to be on the cover of Forbes magazine...". At one time that was a big deal.

<comment><USER24> You're charitable. I had always chalked that up to Bruno Mars not know what the hell he was talking about.

</comment></comment></comment></comment></comment><comment><USER25> Yes that never made sense to me. Employees who have been around for a couple of years are much more efficient and know their way around - They are worth more, and yet they always get paid much less than 3-month or 6-month contractors or even new full-time employees in many cases.

Also if they say that they want to leave a company, usually employers let them go relatively easily without making any significant counter-offer. It means that employers don't even see the value there; they actually think that every employee is 100% replaceable and don't account for the massive efficiency loss incurred.

<comment><USER26> > yet they always get paid much less than 3-month or 6-month contractors

I'd be careful comparing the salaries of fixed employees to contractors. The math works significantly different for contractors: They need to spend time on job acquisition, billing, ... etc. They don't get any of the benefits that an employee gets - PTO, potentially health insurance, retirement plan, whatever, ... They're also the first to let go when things turn sour.

<comment><USER25> Not really, there are plenty of 12-months and indefinite rolling contracts.

I've met a few engineers who made $800 USD per day for several years and many (including myself) who earned at least $650 per day doing rolling contracts... You can stay as long as you want - The main problem is boredom that kicks in after 3 to 6 months.

I don't usually have any gap between jobs. On two occasions, companies offered me to work for them for two weeks because I had a 2-week gap before starting at a different company. If you plan correctly, have a broad enough skillset and you know your value, there should be no gap; on the contrary, there should be a queue.

<comment><USER27> > companies offered me to work for them for two weeks

Damn. I haven't yet found something like this, most companies want a six-month minimum. I would love to take a two-week contract in Australia, just so I can delete "visit Australia" from my bucket list :)

<comment><USER25> In one case, a digital agency had one of their developers going on holiday and the deadline for the project was two weeks away. So they needed a quick replacement.

If you know some good recruiters and you let them know about your situation, they can get very creative.

</comment></comment></comment></comment></comment><comment><USER28> Maybe I'm more conservative than others here, but anything less than 2 years tenure at a company seems suspicious to me. The people I've known who bounced after ~18 months or less were often the ones I would've wanted to quit anyway, who weren't cutting the mustard and weren't on track for promotion. For them, talking a big game at interview time every two years probably is income- maximizing because the longer they stick in the same job without promotions the more obvious their stagnancy is on the resume.

<comment><USER29> You only have my word for it, but I've had the highest marks from both co- workers and managers at reviews and have gotten higher than average raises.

But my last job was for a consulting company and we finished the job in 10 months and it wasn't that clear what other gig I would be moved to so I accepted a job with someone who I had worked with before and was now a technical manager (another point that I'm not someone you wouldn't want to work with). My job before that I finished a project in 18 months and was transitioning into maintenance mode. I was bored and under paid, so I took another job offer also with someone I had worked with before. Each of these were 10-15% raises, so that was incentive too.

So your intuition might fit some cases, but definitely not all.

</comment></comment><comment><USER30> Never understood why companies will refuse to give valuable employees reasonable raises but when turn around and pay an unproven new hire even more money to replace them. So you refuse to give me a 10% increase because "never negotiate with terrorists" but will gladly pay the 20% increase that I'm getting at my new job to my replacement (because that's the market). Just seems so short sighted.

<comment><USER31> Because it's easy to say "the employee is just doing the job they're paid to do, why give them a raise?". Also, "we need to give an extra 20% to convince this person to come aboard, whereas we already own these employees".

<comment><USER32> Sure, what about training costs for the new employee?

<comment><USER31> If that question somehow arises, management will probably say the new employee will pay for themselves very quickly by generating loads of value. There's always a rationalization available for justifying irrational decisions.

</comment></comment></comment></comment><comment><USER33> Sad, I am. I think I'm perfectly capable to sell myself to the next job. But I like what I'm doing, I like the goals that are still ahead and being worked towards, great team, all good. And whether you read the article with a bit (or a lot) of skepticism, it seems common knowledge that the biggest steps in salary are made when going to that next job. So... where's the silver lining for loyal dogs? Should I just pick up a book on negotiating, and take it up with my VP of People?

<comment><USER29> It doesn't hurt to ask! It can be nerve racking but I've done it and it went over well. It can be a simple conversation, plenty of articles on how to do it genially.

</comment></comment><comment><USER34> I keep seeing articles like this that fail to point out an important fact. The economy has been strong for a long time and it is a workers market. Once there is another downturn it will be an employers market. Job hoppers will be lucky to land interviews, much less command high salaries. That is unless you are in the top % of your skill level or have some skill like Oracle DBA that is highly sought after.

I worry about younger people shaping their world view and career around the last 10 years. I did that an in 2002 when I was laid off it was a painful few years of realization not finding work.

<comment><USER35> Two points:

\- 2% GDP growth is not exactly what I would call "strong economy": [http://www.multpl.com/us-real-gdp-growth-rate](http://www.multpl.com/us-real- gdp-growth-rate)

\- it is not a workers market - if it had been, incomes would not have stagnated

I do agree with the rest of your post, though. Things will get even tougher.

<comment><USER36> "\- it is not a workers market - if it had been, incomes would not have stagnated"

In general, no. But in terms of software engineering, it very much is.

<comment><USER35> There are a few pockets of good markets, I am sure.

But the whole shortage myth is created by companies (often startups) posting "Magician" ads.

Example of a "Magician" ad:

"Looking for a PhD + min 10 years of experience in a very narrow domain we are trying to provide a solution for (Big Data experience in Scala required). The hire will need to do his/her magic to get us out of the s... we are in, because we don't quite know what we are doing. We pay $60K/year in Boston."

</comment></comment></comment></comment><comment><USER37> Yet large companies still launch investigations into why retention is so bad and have employees fill out surveys to try to figure out why people are leaving. Multiple-choice surveys, of course, with no questions about compensation.

<comment><USER38> They do this amongst mergers and spin-offs and contingency staffing plans, oh my!

</comment></comment><comment><USER39> It's a bit strange that this sort of job-hopping isn't a red flag to employers. You'd think managers would be reluctant to hire an employee who has jumped ship many times before, just as they were becoming useful.

<comment><USER40> With how thin the job market is, any time I interview a good candidate the situation is that they have competing offers and the hiring team/our whole company is the one applying to have the candidate.

In my experience, good candidates ramp up very quickly (<1 month) and having them on board for 2 years is plenty of time.

<comment><USER41> Certain places place high value on domain-specific knowledge and trained employees.

I work at a wholesale insurance company (middleman); we have over a hundred individual systems, some simple, some quite complex. Some of those systems can be maintained by any programmer that comes in. Others really shouldn't be maintained by someone who doesn't have good experience in writing maintainable code.

But many projects require domain-specific knowledge---and not just to specific parts of and companies within the insurance industry, but _our specific company_.

For a few years, we hired less experienced candidates with the hope of training them, because the talent in Buffalo NY is hard to come by (which could also be an outreach problem, but our last three hires were from out of state). Our team's consensus is that it takes approximately two years of experience with our systems to have a good, balanced grasp on them. Because of the small team size (five at our highest, two right now), we place great value on team members who have been around long enough to know the systems, the rationale and design decisions, history, etc.

This relates directly to Peter Naur's concept of Theory Building.[0]

We've had the past four candidates leave in ~2, <2, <1, and ~3 years. Because of the upfront training cost and distraction from the more experienced programmers (the two that remain at the company today), and in some cases the degree of maintenance problems ("technical debt") introduced, I consider three of them to be a wash: we're no better off having hired them than we would have been not hiring them. Possibly worse off.

Because we have the tendency to lose employees at around two years, I'm no longer in favor of hiring more "junior" candidates---having to train in both domain knowledge _and_ general programming is too risky and hasn't panned out well. So hopefully we can hire programmers that can immediately get into the code from a general programming perspective, but it's going to take them quite some time to really understand what the systems are all about.

I've been there for over eight years, and the last programmer that remains with me has been there for six months longer than me. One of our programmers transitioned to technical director, and has been there for over ten years. My supervisor dropped programming for project management responsibilities, and he has been at the company for nearly ten. Our sysadmin has been there for over ten. We just lost an employee that was there over ten years. We're a close group. Would I be making more money job hopping? Probably, yes. My point here is that the company I work for---the team I work with---values experience with the company, and so long-term employment history is attractive.

[0]: [http://pages.cs.wisc.edu/~remzi/Naur.pdf](http://pages.cs.wisc.edu/~remzi/Naur.pdf)

<comment><USER42> If you could have made more money by job hopping, and your other programmers left for more money presumably, is your company really valuing experience?

It's very easy to say you value experience, but if you wont allocate resources towards employees with experience then your company is signalling that they don't actually value it.

<comment><USER41> There's an unfortunate difference between value at a company level and value at a team level---we have the hiring decisions as a team, and we won't hire without certain criteria we value.

The other programmers didn't leave for more money, though.

</comment></comment></comment></comment></comment><comment><USER43> Job hopping works. But the more you do it, the more you can expect to see skepticism from hiring managers.

Software development is a little bit different because right now there is more demand for workers than there are good developers. It hasn't always been that way and it won't always be that way.

When you're working for the right employer at the right salary, an extra 25-50% isn't going to be enough to lure you away. That and at some places stock options are worth something and vesting schedules actually play into the decision process.

<comment> UK-AL "extra 25-50%" \- That's really bad financial mangament on the employees part. 20-50% per annum extra, invested and compounded is A LOT of money. Literally for some people that could be an extra million at retirement.

<comment><USER43> Working for the right people has benefits beyond monetary ones. Knowing the right person can be helpful to getting your kid in the right school, or in to see the right doctor. Being vocally appreciated in a field where that is not particularly common helps you sleep better at night. Being given a certain level of autonomy can be more rewarding for some people, being given a constant stream of tasks can be more rewarding for others.

Money is a big factor with employment. It's not the only one.

</comment></comment></comment><comment><USER44> This article flies in the face of what I have been reading for years. This article is taking some simple data "employees that change jobs get X% raise" and extrapolating it to a whole lot of wrong. It does vary by organization.

For example if you are at an organization where you are basically the most senior employee already and you can take on a new role at a larger organization with new responsibilities or skill growth a job change can make sense. If you are just bouncing around between say Amazon, Google, and Facebook this can often be a dud strategy in the long term.

Take this with a grain of salt, since I don't have time to dig up citations, but I have read that the long term compensation is actually higher for individuals that don't switch jobs so often. I guess the career employee is a bit of a legend in IT these days so we could have a lively discussion about the selection and difference in a big tech firm and a more traditional F500, but I think in the long run these things will normalize because they are basic human nature and organizational structure problems and nothing is intrinsically special about technology companies. They are the special darlings of the era, so they get to break the rules a bit. Maybe it really will foment a long term change in "the rules" or always be a bit of a bubble in terms of how the organizations operate.

</comment><comment><USER45> If the article was even based on actual facts and figures, wouldn't survivorship bias be a huge factor here? Maybe the bottom of the barrel are bringing the average down because they are stuck with jobs with no mobility and aren't valuable enough to get the raises.

</comment><comment><USER46> Ha, this is funny. I rarely ever stay longer than 2 years at a company and every time I jumped, my salary went up significantly i.e. >10%+ HOWEVER, I've seen guys who have stayed with a company earning less for years, ending up as the VP/Presdient of the company eventually and their pay going way up.

<comment><USER47> Survivor bias much? Obviously SOME people will become VP/President by sticking to the company. 99% of long-term employees will not.

</comment></comment><comment><USER48> a few comments, this article seems to want to incite people to jump ship which is fine, but fwiw, i have been with the same company for about 14 years and i dont think i'm getting paid less than my peers, rather i think i'm way above most with similar experience and titles. part of it maybe that this article generalizes and doesnt segment the different industries, i work in software and my company has done a lot to make certain that they're competitive and do not lose key people. i met a guy at google, he has been there since 2004, i doubt he's making less than his peers, there are certainly benefits, say restricted stocks (please look at goog from 5 years ago and you'll understand). this article is probably grouping everyone who works the counter at mcdonalds to investment bankers, nice work forbes.

also, i think working for the same company does give you more opportunites to understand different parts of a company that you certainly would miss out on if you jumped ship every two years.

also note that as a hiring manager, i look down on candidates that jump ship too frequently, no matter how strong his/her skill.

</comment><comment><USER49> I wonder how strongly this holds after you're into the higher end of the salary range?

My best increase ever was going from my highschool/college web dev job to freelance, where I more than tripped my hourly rate from $12.50/hr to $45/hr. (It probably wasn't quite 3x after accounting for taxes and healthcare and such, but it was still a good jump, and brought more flexible hours too.)

Since then, I've gotten 20-25% increases a couple of times, topping out at $120k.

I was switching more like every 3-5 years, so a 5%/year raise actually ends up being in the same ballpark, if not slightly better. Every two years might be better from a pure cash perspective, but I didn't feel like I was "done" with my roles until the 3-5 year mark - I think I learned more delivered more value, and achieved a better sense of accomplishment doing it my way.

I also live in Ohio, with the exception of one year I spent in SF. I imagine I could double my current salary moving back to SF or over to NYC, but I'm happier here. (And $100k+ goes a bit farther here...)

<comment><USER50> > I also live in Ohio, with the exception of one year I spent in SF. I imagine > I could double my current salary moving back to SF or over to NYC, but I'm > happier here.

I once joked to a recruiter in SF that California dollars aren't worth much. He understood.

Have you tried/considered charging SF/NYC rates to companies that are based there?

<comment><USER49> > Have you tried/considered charging SF/NYC rates to companies that are based > there?

Yep, that's basically what I do :D

Moving to SF and then moving back was one of the biggest boosts - both in the immediate pay raise, and in giving me the sense of self-worth to ask for more in future roles.

I'm now at $126k base + bonuses and retirement and such. I know that's on the low end for SF/NYC, but I've definitely seen jobs there offer less. I lease a small office that's a 6-min bike ride from home for $250/month and work from there most days. All told, I'm pretty happy.

($60-80k is upper end around here. Elsevier once offered me $100k to work on site in Dayton - apparently they have trouble finding smart people who don't hate them - but I was already up to $120k and working from home at the time.)

My rate when I quit freelancing full-time was $125/hr, mostly working for companies in bigger cities. I'd charge more than that today, and probably switch to a daily or weekly rate.

</comment></comment></comment><comment><USER51> Correlation != causation.

Seems perfectly plausible to me that the more confident candidates are more likely to be poached by other companies, for example.

<comment><USER52> I was thinking the same. An attractive offer that leads to a change of employer is usually rounded off with a sallary boost.

</comment></comment><comment><USER53> From 2014, but still relevant. Unfortunately, the best negotiating tactic is to bring a competing offer and essentially threaten to quit. Or just switch firms every ~18 months like the post suggests.

<comment><USER54> For software I feel like you will start to max out from switching alone once you reach sr software engineer from FAAMG. Past that you have to make real changes such as improving your skills to become something worthy of staff or become some sort of manager.

<comment><USER55> FAAMG?

<comment><USER56> Facebook, Apple, Amazon, Microsoft, Google

<comment><USER57> > Apple, Amazon

I was under the impression that Apple and Amazon tended to fall lower on the compensation scales.

<comment><USER58> Amazon has a fairly low cash salary cap if you're not upper management. They make it up (nominally anyway) with an initial cash bonus and stock options. Don't count on any raise after getting hired though. Plus the average stay there is far less than the vest period for either bonus or stock, because Amazon is pretty much the hellmouth.

<comment><USER59> Bonus is amortized over the non stock first 2 years paid per paycheck so there's basically ko vesting on it now. Hasn't been for several years. Eg if you get 30 stock over yet 3&4.. you'll get 30k / 24 (Amazon is monthly pay) for the first 24 paychecks for 60k non salary pay.

Source: offers.

</comment></comment></comment></comment></comment></comment></comment><comment><USER60> I have been self-employed since age 22, but from 18 to 22 I had 6 jobs at 5 companies in 3.5 years. I started out in tech support at a small local ISP, hopped, came back as a sysadmin, then became primary sysadmin, and really cut my early career teeth there (and am ever grateful for the experience!). But it was a small college-town operation that ran on student-type labour; at my peak, I think I topped out at $16/hr. The next job hop was a move to Atlanta, where I commanded a $55k salary (about double my peak hourly earnings at NEGIA) and ultimately reached $70k at 21 — not terrible for a 21 year-old in Atlanta in 2007.

It's easy to place big gains when moving up from entry level, especially if you entered into an employment bargain that presumed being paid vastly below market for doing fairly sophisticated and diverse things in exchange for having a diamond-in-the-rough skill set. I learned more at the small company than I have ever learned in my life, and more quickly, and was able to effectively parlay that into big-boy corporate jobs in Atlanta.

In one sense, this validates the thesis. But it's important to remember that it does plateau. When moving up from entry level and early-career pay, you're flying close to the ground and it feels like you're going fast. The ground rushes past you, and it's intoxicating. Minimum-wage checkout clerk to full- time salaried assistant store manager? Zoom!

The momentum doesn't last. Had I continued in W-2 employment, I would have likely hit low to low-mid $100k by now, after ten years, but no more.

</comment><comment><USER61> I wish these studies would incorporate the value of benefits. Benefits are a huge reason (especially for people with families) why people stay at jobs. Imagine having a job for $60K with four weeks of vacation and good 401K matching compared with $80k with one week vacation and horrible health insurance.

<comment><USER62> I wonder if it would be the same in Europe since most benefits are mandatory and at big companies salaries and yearly increase are negotiated collectively between employees and employers.

But if this proofs anything you should keep your options open and, even if you don't want to change companies, use outside offers as ammo for your yearly negotiation.

</comment></comment><comment><USER63> The single most important change that should happen to change things like this is having salaries being public.

The day that happens, salaries statistics will very likely take a huge jump.

<comment><USER64> I believe they already are? Glassdoor

<comment><USER63> Hardly. Glassdoor shows that people really want to consume that information, but the one glassdoor provides has bias, is insufficient, and lacks precision.

</comment></comment></comment><comment><USER65> That's been my experience as well.

But it didn't happen because I was on the lookout for a fat paycheck. It happened because the companies I worked at the time couldn't provide the stimulation, technical capabilities, working environment and personal development I was looking for.

Then I realised very few of them do where I am, so now I do 6-12 month contracts and it's helped with saving a bit of my soul and getting paid a bit more.

</comment><comment><USER21> I'm reluctant to apply this mindset to the tech, or at least SV tech, industry. While it's common practice to hop jobs every 2-5 years, it seems to be more for new or different opportunities (Different sized company, a new domain, new technical challenges, etc.) than it is for a more competitive offer. Internal promotion, both in compensation and position, seems to be the relative norm.

<comment><USER66> _> Internal promotion, both in compensation and position, seems to be the relative norm._

My experience and observation suggests exactly the opposite. ¯\\_(ツ)_/¯

</comment></comment><comment><USER67> This is unfortunately true in our industry, from my experience. The only way to make substantial raise for top performers is to have a new job offer with +20-30%. Otherwise the HR department will give you X reasons why you asking for such big raise is inappropriate.

This is part of free market economy, companies are trying to minimize their costs and maximize profits so it makes sense not to waste money giving big raises. This is why you need to play the free market game and force their hand.

Once you get a much better competing offer, your current employer will probably offer to match it. But at that time why stay anyways if you had to force them to consider a substantial raise by going for interviews and getting a better offer?

Also, there is an old advice which says to never accept a counter offer.

I do think there is a ceiling for this approach. You can probably do it 4-5 times and get to quite high salary (150-200k). After that this tactic does not work as well anymore so staying at one place for a long time and earning an internal promotion becomes better option.

</comment><comment><USER68> When I started in this industry, my father, who also works in this industry gave me this advice. Something along the lines of "if you want a raise, go somewhere else, that's the only way to move up quickly". He was right, three times in the last 4-5 years.

</comment><comment><USER69> Sure, I mean who gives you more than a 20% raise?

When you change jobs, you can renegotiate everything. More money, more holidays, less hours, etc.

Last time I changed jobs, I worked less hours and got 20% more money, my last boss would have laughed at me if I wanted this.

<comment><USER70> Um... I've gotten a 20%+ raise before, I also have several weeks more vacation than I started with. If you prove yourself as valuable and ask for compensation to match, your employer may be more flexible than you realize. You can renegotiate your current employment at any time as well.

You have to actually prove yourself as valuable first though.

</comment></comment><comment><USER71> I'm not sure why companies prefer that someone leave and take all of their institutional knowledge with them, then hire someone new at a higher wage that would have kept the first person at the company. They are not taking into account the value of knowledge. If your domain knowledge increases 20% within a year, then you should be getting a 20% raise.

With the elimination of pensions, the only vesting time that most people have is for their 401k, which is usually only a couple of years. Not sure what employers are expecting to happen or why they're surprised when their hot college grad employees decide to leave for a big pay bump.

</comment><comment><USER72> Employees != IT Employees

</comment><comment><USER73> went thru many comments here and despite lots disagreement between people, I believe one thing people will all agree with is: in this game, individuals are much weaker than companies and much more vulnerable regardless.

company can never go bankrupt because of loosing one super star, but a worker and his/her family can be in a bad situation if company decides to do something to him/her. So the whatever negotiation between company and works can never be a fair game at any point.

</comment><comment><USER74> Depending on size of company, there may be some distinct departments.

I stayed on the same team, 6 years, but multiple promotions. Only 20+k in salary different. Jumped teams twice in next 3 years, +20k.

Now I have doubled my salary I started with. Been with company 10 years. The only thing I regret is not jumping teams earliar.. a few years max. Great learning experience through different roles on my original department... But didn't help me financially

</comment><comment><USER75> Thoughts:

1\. A company can be underpaying for the employee's experience but paying correctly for the skills the company needs.

2\. It should not be a bad thing for an employee to leave a company to advance their career - the current company may not offer the needed opportunities.

3\. Managers should be proactively asking the question of the employee: "Let's talk about recognizing when you SHOULD move to a new position at XYZ or some place else?"

</comment><comment><USER76> What makes the most sense to me is making moves early on in your career then hopefully finding a company/CEO/team you really like and settle in for a while. You aren't going to learn some of the valuable lessons if you swap jobs too often as you will never really become an expert at what you're doing.

Certainly valid you are underpaid and don't particularly enjoy your job.

<comment><USER77> Not bad advice, but be careful to calibrate "like" correctly, which can be difficult. In the land of the blind, a one-eyed man is king. It's easy to get comfortable in a group of nice people that just aren't very good developers, and believe that you're becoming an expert at something, and then by the time you get slapped in the face by reality, it might be too late. Switching jobs every few years ensures exposure to a much wider range of people, skills and group dynamics.

Every time I've switched jobs, I've had my eyes opened to some things that we did at my previous jobs that might not have been helpful.

</comment></comment><comment><USER78> How much does this apply to senior employees? I have a PhD, started out at the "Senior" level as a new grad, and I just recently got my first promotion to "Staff" Engineer, which represents roughly the 85th-90th percentile for pay in my company.

</comment><comment><USER79> I often refer to this gem on salary negotiation: [http://www.kalzumeus.com/2012/01/23/salary- negotiation/](http://www.kalzumeus.com/2012/01/23/salary-negotiation/)

</comment><comment><USER80> I just hit my two year mark. Guess it's time to start job hunting.

My current employer 401k contributions vest at 3.5 years- would I be out of line insisting that my 'next' employer make a one time contribution equal to what I sacrifice?

<comment><USER81> Absolutely not, and I think you should. They may still say no, but it can be a valuable tool in your salary negotiation. I've done this before when switching jobs -- "you want me to start in March, but I have $X in options that vest in July; to switch I would need you to add $X to my signing bonus". Both times they've agreed to do so. Recruiters seem to generally have more leeway with signing bonuses than salaries. (And of course on top of this you should be aggressively negotiating your salary etc.)

</comment></comment><comment><USER82> As I often told my friends, go to a company like Netflix. Netflix actually tries very hard to make money not a concern to its employees, and they do hell of a great job.

</comment><comment><USER83> This might be corrupted because people who switch are willing to move geographically.

</comment><comment><USER84> " _It's a fact that employees are underpaid._ "

Forbes?

</comment><comment><USER85> (2014)

</comment><comment><USER86> I don't get people who say, "Well I would never hire someone who has never worked more than 5 years at a single place!!!"

I would never have increased my from $68k to $115k in 5 years.I probably would've been somewhere at like $80k right now at best if I was didn't switch jobs twice.

If it means some hiring manager is going say some snarky opinion, then yes I'll take my extra money.

<comment><USER87> On the other hand, look at it from a hiring manager's perspective: people who have stayed in a job long enough to see how things go wrong are _also_ less expensive. I'll be honest, if I'm looking at a CV for someone with 10 years of experience and they have changed jobs every year or two, I will suspect that they are missing some pretty important experience as a senior developer.

Everybody makes serious mistakes that don't show themselves for years. Those who don't stick around usually assume that any mistakes they find in their new company were due to incompetence. Similarly, people who have not stuck around for years have never been instrumental in doing difficult culture transformations, or fixing long term architectural problems.

It's truly unfortunate that the industry rewards those who don't tackle these kinds of difficult problems. The legacy is an industry where the problems are ubiquitous: flavour of the month architecture, my way or the highway bullying, either process of the month or "pragmatic" (aka ad hoc) processes, absolute disrespect for coworkers (I'm the only one with an ounce of sense).

Yep, I'm happy to take the discount on the developer who is humble, knows how to navigate political mine fields, knows how to recover from mistakes, knows how to refine techniques and processes, etc, etc. I'm also happy to take the odd "rock star" if they are actually good enough, but I'd never build an entire team of them (willingly).

<comment><USER88> > if I'm looking at a CV for someone with 10 years of experience and they have > changed jobs every year or two, I will suspect that they are missing some > pretty important experience as a senior developer.

I call this the "one year of experience, ten times" phenomenon.

<comment> UK-AL Ironically I find the developers, who have stayed at company for 10 years the worst for this. They've been maintaining the same product, for similar requests for the past years. Doing the exact same thing.

Moving to different employers means you get a wider experience of different technologies.

<comment><USER89> There may also be a big project that takes years of development, with each completed part serving as a prerequisite for a new one. It's hard to judge one's career from a face value unless the CV explicitly states details like "X years sunk in product maintenance".

</comment></comment></comment></comment></comment><comment><USER90> There's this management mythology that:

\- Worker bees will stay because they're clueless and don't have the initiative to keep moving.

\- Pressure from on high to fudge performance reviews downwards to "save the company money." (At where my mom worked, a middle manager blanket reduced all subordinate reviews down because BS: "people are overly generous.")

If you want least turnover / most morale / most productivity, pick people whom can grow the most and grow them until they no longer can keep up or find something else. Develop people (training, mentoring, promotions, bonuses, raises, perks, etc.), don't just consume them as static widgets to fill a hole.

</comment><comment><USER91> > _Jessica Derkis started her career earning $8 per hour ($16,640 annual > salary) as the YMCA's marketing manager. Over 10 years, she's changed > employers five times to ultimately earn $72,000 per year at her most recent > marketing position._

Amazing, thanks Forbes. I never knew that if you started out on minimum wage and then moved into a mundane professional role, you'd earn considerably more!

<comment><USER92> Why the hostility? Are people not allowed to talk about events happening now?

I mean, do you make a similar comment on all the articles you read?

"Oh thanks a lot ENCODE for telling us that 80 percent of the genome had a biochemical function. I didn't know we were going to repeat stuff that everybody new in 2012."??

<comment><USER91> The hostility is because it's _ridiculously obvious_ that moving from a minimum-wage job to a run-of-the-mill professional job is going to net you an incredible percentage increase in salary, especially in the US where the minimum wage is a joke.

And where is the 'events happening now' in what I said? Job-hopping? Not exactly a new thing.

> _I mean, do you make a similar comment on all the articles you read?_

So... I can't be rhetorical to call out bad behaviour, but it's okay for you to do so. Nice work.

<comment><USER93> The person was working as a marketing manager in her first job, so it was a "a run-of-the-mill professional job" from day one, and she's still in marketing, only with 5x more salary.

Then again, her first job was at YMCA, and non-profits tend to have low salaries.

<comment><USER91> Since when is an $8/hour professional job 'run-of-the-mill'? Are you seriously saying that that is a typical example of a professional?

</comment></comment></comment></comment></comment><comment><USER94> Also a great way to increase your salary is to Take the lowest pay possible at first. Here is what I mean [https://medium.com/the-mission/take-the-lowest- pay-possible-...](https://medium.com/the-mission/take-the-lowest-pay-possible- af59a0d4bd7a) And this is not my article and I don't have any affiliations with it :)

<comment><USER95> Correct me if I'm wrong (I read the article, but am a little confused), but shouldn't the message of that article be "Take the lower pay, assuming that also corresponds with a higher level of [Job Satisfaction, Growth Potential, Work-Life Balance, etc]"?

I don't have much experience, but my initial instinct is that some of that article is not universally true.

<comment><USER94> I agree that you should choose your job wisely. The author claims that it's best to be open to a lower pay in the first 10 years of your career. It's similar to everything actually. You gain your reference experiences and build up your image within your world and then expect higher pay. Nobody will give it to you just like that.</comment></comment></comment>


Node.js Overload - <AUTHOR> https://www.thoughtworks.com/radar/platforms?blipid=202005026 <comment><USER2> I'd like to add some context for those not aware.

This is a page in Thoughtworks' "Technology Radar". Thoughtworks is a global US-based software agency that likes to market themselves as thought leaders in the world of software. They're not super well known in startup land but my impression is that in enterprisy environments they're considered "very good".

One way they maintain this image of thought leadership is employing famous people such as Martin Fowler. Another way is by regularly publishing a document called "Technology Radar" which is in opinionated list of technologies that _their tech leadership_ believes ought to be used, explored, avoided, etc. They explicitly don't position it as a bunch of truths they hold to be absolute - it's just the opinion of a few senior tech folks at Thoughtworks who had a fun weekend in a holiday house together or something like that. I guess they had a disappointing Zoom call this time around.

It's generally a bit more conservative than HN, you often only see stuff listed under "Assess" that has been commonplace in HN articles for multiple years. This makes sense, it's targeted at enterprises. At the same time, it's highly opinionated and they're not afraid to take positions that are not a match with the current hype cycle.

I really like it for this latter quality, and I encourage you to explore this edition further than just their recommendation to not always jump to NodeJS by default (which seems to be a bit of a straw man to me, anyway).

Be sure to click all four "quadrants" (right top of the page), IMO the linked one, "Platforms", is the least interesting one.

</comment><comment><USER3> I am an intermittent developer, because I need to sell, and manage my (small) business too.

In my case, using javascript on the front end and PHP in the back, and as a scripting language for servers was frustrating. Function names are always slightly so different...

I increased my productivity and my fun tremendously when I switched to Node on the backend.

Sometimes I am thinking about using Python for computer vision stuff. Nope... Everything Javascript, so much better for my sanity.

<comment><USER4> For a bit of unconventional (intellectual) fun, you can imagine your post as being about cooking and food instead of programming and programming languages.

Something like: "I was an intermittent cook, because I need to sell, and manage my (small) business too.

In my case, cooking both soups and main courses, and some deserts occasionally was frustrating. Cooking times are always slightly different...

I increased my productivity and my fun tremendously when I switched to only eating polenta."

I hope this does not come off as offensive, which was not my intention, instead, I hope this serves as food(pun intended) for thought and reflection.

<comment><USER5> I'm not sure that's the right analogy for using different programming languages in different parts of the stack. A back-end API looks the same to its consumer regardless of whether it's written in PHP or Node or Haskrustapl.

Maybe the analogy would be: "I was using three different kinds of butter in my kitchen. I switched to just one brand. Turns out it didn't make a difference in taste, yet saves me effort and money because I can buy larger quantities of the ingredient."

<comment><USER6> > A back-end API looks the same to its consumer regardless of whether it's > written in PHP or Node or Haskrustapl.

It looks looks the same to its consumer, but it will feel different when under pressure.

I've experienced React SSR server (I know this is heavy) not able to withstand traffic when pushed to only tens of concurrent users, reaching only 1000ish RPS even after being clustered.

I'm not opposed to NodeJS though. I've learnt a lot of it and I've ever been a NodeJS fanboy for like 2 years-ish.

PS: I also increased my productivity too moving from PHP to NodeJS back then years ago.

</comment></comment></comment></comment><comment><USER7> If somebodies primary language is JS I think node is a great choice. 9/10 times node performance will be just fine for what people are doing. Writing real multithreaded code without a GIL is hard. I would think just scaling horizontal or vertical would be easier.

And doing threading in Python is so confusing for new beginners. There are about a million different ways to do it.

<comment><USER8> > Writing real multithreaded code without a GIL is hard.

I'm starting to think this is going to be a major dividing line in developer skill going forward -- those who can write threadsafe code and those who can't. There's an awful lot of Java, C# and Golang out there and if a programmer can't reliably think through thread safety issues (which is _not_ that difficult in simple cases), they aren't capable in that realm.

One of the most frustrating things about my brief excursion into the land of Ruby was that the community was full of modules written by people who had no reason whatsoever to think about thread safety because they were programming for Rails, not Ruby in general.

<comment><USER9> This sounds very gatekeepy. The JVM and Golang have additional aides for writing thread-safe code because writing multi-threaded code is fucking hard. People at the top of our field working on browsers or VMs regularly fuck up the simple stuff. If it was easy we wouldn't have Erlang or Rust.

<comment><USER8> I'm very gatekeepy about only wanting competent developers working on my code.

</comment></comment></comment></comment><comment><USER10> > Due to its single-threaded nature, Node.js was never a good choice for > compute-heavy workloads, though, and now that capable nonblocking frameworks > also exist on other platforms — some with elegant, modern APIs — performance > is no longer a reason to choose Node.js.

But do these other frameworks give you the simplicity of sharing code and using the same language in for fe and be ?

For me the performance of Node BE applications is just a nice bonus, for having consistent development environment with huge library of radily available packages.

<comment><USER11> A lot of langage have work in progress and or working GUI framework compiling to webassembly.

So yes. And you know what ? You shouldn't share too much code between backend and frontend.

The packages are node disavantage. You depends on too much packages it's a security risk.

<comment><USER10> > And you know what ? You shouldn't share too much code between backend and > frontend.

Yeah right :) I'll tell you what I like about it.

I defined my database models in Typescript[1], work with them in the backend, send them to the frontend, and deserialize them back to the same Typescipt model classes in the browser and continue working with them ( w/o the actual database part) as data structures.

Are you trying to convince me this is bad ? Because I definitely don't believe you :)

[1] [https://typeorm.io/](https://typeorm.io/)

<comment><USER11> That exactly what you shouldn't do, database models should not be the same models than the one sent to the client.

</comment></comment></comment></comment><comment><AUTHOR> It cites the reasons for Node overload as:

\- The convenience of using the same language in the client and server

\- The speed of Node.js

It unfortunately does not state why it shouldn't be used in the server, or offer any more suitable alternatives.

<comment><USER12> Well it does mention that its single-threaded nature makes it a poor choice for heavy compute workloads, which I agree with. I also think it's fine for pretty much everything else.

<comment><USER13> I'm not sure I would agree with this. As with all things, it depends on the task, but "compute heavy" these days means likely working with a distributed framework that abstracts away the underlying process architecture, letting the user define lambda-esque tasks which are deployed across a stream/batch processing model.

I think a much better critique would be that the lack of fine grained primitives, and the surrounding ecosystem, are not the best choice for compute heavy tasks.

<comment><USER12> It doesn't have multithreading, period. You can compute in parallel and work around it by using serverless functions or worker threads or whatever, but often it feels like you're going against the grain and/or reinventing the wheel.

I definitely see the merit in preferring another language with a clear, native multithreading model - and with perhaps significantly better general performance to boot.

If anything, the critique in my opinion misses how the Node web frameworks tend to be really unopinionated and non-prescriptive which can be great for some teams and projects but really bad for others (they do mention that NestJS is a technology to watch and that they use it widely, so I actually think they're of the same opinion)

</comment></comment></comment></comment><comment><USER14> The snippet about Node is confusing terminology. Node is not a framework, it's a runtime environment in which JS can run. It makes a mention of other "capable nonblocking frameworks", but is conveniently vague about which ones.

The argument about compute heavy workload also feels orthogonal to the whole issue of Node on the backend.

</comment><comment><USER15> While having one language on the front end and back end might seem like less of a burden, the cognitive context for both of them are very different.

Reasoning about the backend feels much easier in languages like C# and even python. Because the majority of the code in the backend is about data storage, retrieval, data modeling, rich and complex business logic, etc. While on the front end, the focus is usually on data binding, immutable structures, etc.

JS in react is fine and in my view, for the notion of same language everywhere, JS is a poor language.

</comment><comment><USER16> I have adopted node (over .Net C#) several years ago and the main reason was NPM and the 1 million packages available. About performances ... With Workers it's pretty good, I'm doing 700k RPS with node on 1 server.

Refs: [https://vms2.terasp.net/](https://vms2.terasp.net/) [https://github.com/elestio/cloudgate](https://github.com/elestio/cloudgate)

<comment><USER17> If you felt comfortable with C# you should try .NET Core. It's amazing.

<comment><USER18> I have and I found C# to be somewhat painful compared to JS in some respects, but good in other ways.

There are a lot of little conveniences that are missing. There is no destructuring, no first-class functions (i.e. can't declare functions outside of a class), no easy way to loop over properties of a class and access their values, no spread/rest operators and other things like that.

I think the C# 9 might address some of these shortcomings.

Some things that I liked about my .Net core project: I didn't have to write swagger documents at all. They just got auto generated from my API classes. Dapper is better than any micro-ORM that we have in JS. I didn't have to write a bunch of tests to make sure I was using correct types. It works great on Linux!

Everything's got its trade-offs. I started my career with Microsoft Access, VB 4/5/6 and complained about moving to .Net. Then I did like 12 years of C# and couldn't imagine loving JS until I started doing _that_ full-time, since like 2013 or so.... I was glad to polish off my C# skills and to learn .Net core though, just in case I want to switch back some day.

<comment><USER19> The things you cite as missing in C# can be found in F# on .NET Core. Have you ever tried it? I find it hard to stomach C# after delving deeply into F#, and you still get to use Dapper! Swagger though... not sure if anyone ever got that working well with Giraffe or any other more functional web framework. When I say "working" I mean automatically generating the Swagger docs for you.

</comment></comment></comment></comment><comment><USER20> Totally speculative and 100% opinion: could it be that Thoughtworks is a bit scared of JS taking over the world? My feeling is it totally does not fit their model: enterprise heavy, high $$$ consultancy, Java all the things. I'm exaggerating of course to make my point.

</comment><comment><USER21> If you are more productive using Node.js for back-end and React/other JS framework for front-end then don't worry about it and go ahead. Especially so for a small business with few development resources. The performance issues can be tackled when they arise and in in some areas you could use addons or even just break down some work into another service/micro service using Java or whatever. The productivity benefits can be massive and that's usually the bigger issue if you're creating a general web/service. I work on tesults.com and it's all JS.

</comment><comment><USER22> Thoughtworks are extremely fad driven. 10 years of that radar and it has become slowly clear that they use it as marketing to appear relevant.

</comment><comment><USER23> So what does HN think are the downsides of using Node, the article didn't really state them explicitly?

<comment><USER15> Performance is the primary reason.

Backend performance is usually directly related to cloud resource costs.

Better have a compiled language, even if its within a VM, like C# or Java, rather than interpreted ones like JS or python.

<comment><USER13> > Better have a compiled language, even if its within a VM, like C# or Java, > rather than interpreted ones like JS or python

I'm not sure you understand how these languages work as none of the are truly compiled in the sense I think you mean (natively). Both Java/C# and Javascript work in the same way: they are compiled to bytecode which is then interpreted. The only difference is that Java/C# is compiled AOT whereas V8 (presumably) compiles on first execution and caches the output. Python is a truly interpreted language although PyPy can give a huge perf boost.

<comment><USER15> Your comment caught me by surprise.

For one, I am under the understanding that strongly typed languages like C# and Java, are optimally compiled to bytecode such that the overhead of running in a VM is minimal and performance is comparable to native code.

I maybe wrong, I dont have a up to date knowledge of JS runtime and optimizations, but for such a dynamic, loosely typed language, there is only so much AOT and optimization you can do. V8 might have bridged that gap a fair bit, but is nowhere close to performance of C#.

However, in almost all benchmarks, for real world use cases, .net always trumps JS runtimes.Also, a developer needs a high level of awareness and knowledge of underlying systems in JS to write performant code. The same is not true with C#, in the sense that as a seasoned developer, the strongly typed nature of C# mostly saves me from writing poorly performing code. I dont have to worry too much about underlying mechanisms in C#.

Edit : [https://stackoverflow.com/questions/35457486/performance- and...](https://stackoverflow.com/questions/35457486/performance-and-memory- differences-between-c-sharp-and-javascript)

I found this. So, a program made for performance comparision between C# and JS would probably be equally fast in both. However, JS loses performance in real world due to its dynamic typing.

</comment></comment></comment></comment><comment><USER24> If you don't understand the node event loop, don't use node.

</comment><comment><USER6> I'm a NodeJS fanboy and I partially agree with this.

Feel free to use NodeJS if it allows you iterate faster and your app doesn't need much load.

If you're planning to serve a lot of ConcurrentUser with high RequestPerSecond I suggest to carefully plan the execution.

I'm having trouble now. One of the projects I'm working on is using NodeJS acting as React SSR server (I know it's heavy). It crashes under pressure, with 10-ish CCU reaching only 12-RPS before crashing. The NodeJS server is not clustered yet though. If it is clustered, it might reach a bigger number, but I doubt it would be that significant. Scale up to 1000 users using Kubernetes and see yourself how big the compute bill next month.

This is a fault in architecture and I'm telling you not to repeat my mistake. There are enhancements to NodeJS. NAPI is one, WASM is being introduced too, which is good news. You can utilize child_process and hire someone to write some fast binary for computation-heavy applications and execute that binary.

Again, a lot of companies succeed with NodeJS. It's not to be completely avoided. Just be careful not to use it for something it is not used for.</comment>


Europe is better off policing than banning Huawei - <AUTHOR> https://uk.reuters.com/article/us-telecoms-mobileworld-breakingviews/breakingviews-europe-is-better-off-policing-than-banning-huawei-idUKKCN1QI4DO <comment><USER2> I don't see how Huawei is different from other Chinese companies. Without evidence - I can't see why ban them.</comment>