...hmm.
> Yes, but after you have spent 3+ years in your current job.
Ehhhh... I've seen plenty of colleagues leave after less than that and get raises. I tend to -prefer- to stay somewhere (despite being considered an excellent interviewer at every place I've worked, I'm a terrible interviewee most of the time, perhaps because I try to ignore what I know about interviewing for the sake of fairness.)
> It also helps to have the ability to put up with all kinds of bullshit - which I don't have.
You have to be careful with this. There's some bullshit you have to grit your teeth to depending on the environment, for better or worse it can pay dividends long term. There are some places where the bullshit never ends, but there are other places where it is more a question of 'built trust' (which is often a flawed practice, but IDK what to replace it with.)
It really depends on context, which can sometime be difficult to give.
There are jobs I have grit my teeth at requests can only be politely put as "a waste of the time and talent of me and my colleagues", and most of those more importantly to my work ethos were a complete waste of the company's money.
Usually, at those times, I would go to my mentor. I'd always have a good argument. It's always easier to get someone to pay attention to, at minimum, providing some way to show your idea has merit.
Sometimes, it's showing potential ROI.
Once in a while, it's 'You trust my estimates, right? Here's my estimates.'
There are other examples as well but you get the idea; the unfortunate thing is it does take time to know how long it takes to build karma as well as how fast you burn it. I've worked places where general goodwill was based on 'good vs bad suggestions', I've also worked at places where 'one good thing = 1 submission for a review'. Obviously the latter is not healthy.
> But my relatives who get paid a lot more than me are all just "suffering" this kind of bullshit to keep the job.
For all the emotion that is in this statement, I understand it.
I once switched jobs, from working at (1) a unique shop where I had some drama around some decisions, but working on a unique system that was rare in my lang of choice, to (2) a shop where the first few months of my job was updating addresses on Crystal Reports.
Job 2 paid more, but yeah I was downright miserable there between the waste of talent as well as the level of office politics resulting in a team being blocked for two months before being -allowed- to talk to me for help (I solved the problem in 3ish hours.)
> One time I quit a job because the "boss" talked to me in a bad tone.
I only did this once... well 1.5 times (The .5 time, the boss had done far worse than talk in a bad tone to myself and others, the textbook if not stereotypical case of an emotionally abusive person) but it wasn't the sole or even major reason.
The challenge of course is that between NDAs and a general fear of reprisal, it is very difficult for a person to speak up about a truly shitty employer without risking some form of retaliation. Some of this may be influenced by the fact many shops I've worked at were small enough, even listing my time of employment would be enough to be 'sussed out'. But I feel like unless you are at a very large shop, the subconscious still sees that risk.
Then if you get past -that-, there is a good chance you are fighting signal/noise ratio, especially if the employer goes as far as soliciting employees to write positive glassdoor reviews.
I know that the worst place I worked, would actually try to bait reviewers who left bad reviews into exposing themselves by suggesting they email an address that would go to HR, likely in an attempt to threaten with clauses about public
image. They never went as far as to pressure us to post on glassdoor but definitely had sent cues we should talk them up on our social media! [0]
This was also a place that (1) loved using 'non-violent communication' training as a cudgel for managers to use when an employee stepped out of line (I never dealt with it but know others did); (2) non IT employees had a 'closer to jimmy johns than real trade' training payback clause, their normal non-compete covered the true business case, (3) would time bathroom breaks of hourly employees.
And yet I haven't spoken up about them, because the fear of finding me out and being tied up in litigation is too much. Many of the people who are smart enough to see shit employers also know the ROI on speaking up isn't worth it. Those who don't, well...
------
IDK. I don't fault your overall logic and honesty overall, but as you've seen it can impair some upward mobility. I -will- say that sometimes employers don't do a good job at honesty in interviewing processes.
My first real IT job, probably part of the reason I stayed as long as did, they were -very- honest both in interview and first few weeks that that they had -problems- and did a good job of explaining some of them and being clear (and followed through) on the idea that those problems did not reflect poorly on me or other devs. [1]
It's -far- more palatable than being fed a half-truth or overly-sugared statement about the state of things. The more I know about the shitshow I'm walking into, the more quickly I can be impactful on whatever level the storm allows.
[0] - Tangent, I understand that some companies now pressure/require profile updates on certain websites. I think this is a disgusting practice unless it is limited to making sure there 'opinions do not (necessarily) represent that of my employer'
[1] - I need to restate. This level of honesty and trust was something I've only fully encountered one (1.5?) other time(2) in my career, and it's something I've missed in every job that didn't gave it. The managers both places were truly amazing. (The half-point is for a gig where honestly I trusted the development manager and he was an amazing person, but I could not trust that he could protect me from the rest of the org and it's structure. My apologies and regrets to him.)