Constantly recycled job openings - to spot this you need to be searching for a few months. But if you notice that the same posting is ALWAYS up for senior positions, and it's not a huge company, your resume has a huge chance of never being seen. From my experience, it's likely a company fishing for H1B applicants. Even if you're on a visa stay away.
No intern program - as a general rule, companies with best engineers scoop many straight out of school. I have never worked at a company with top notch engineering that didn't have an intern program. Sometimes this is hard to see since they focus on certain schools, you may be able to find out from recruiters or Glassdoor.
Heavy usage of third party recruiters - the best jobs are easy to advertise. Either the company is incompetent, the position is for legacy work, or the company is just unnapealing in other ways. If legacy work is your jam, go for it, otherwise be cautious. Note that this does not apply for specialized or very high level positions. Use of executive recruiters is normal since paying the cut is worthwhile.
Low or no bonus - we're in a tech boom nearing 90's levels. Your bonus should be 10-30% of your salary. If the company is public, you need stocks. This is the primary way companies keep apparent wages low. The golden eggs are hidden in bonuses, perks, generous vacation policies, and especially public company stock.
Old school practices - occasional work from home, somewhat flexible hours, casual work environment, free snacks. If they offer less than 3/4 you can find a better gig.
Non technical management - this should speak for itself. I've done it before to much regret.
Strange hiring practices - personality tests, panel interviews, minimum GPA rules, leetcode, asking about personal life (married? Kids? Political views?). If you like the idea of hanging out with people from MENSA, sitting in countless committee style meetings, or next to some frat bros or guys wearing MAGA hats maybe this is for you. But asking these things of you reflects the values of the organization. Birds of a feather flock together and humans are no different.
Find a place with engineers that seem to love what they're doing, eachother, and writing code. If they invite you to lunch and everyone is chatting like old friends you probably can't go wrong. Bonus if they're actually excited to talk to you about technology and what they work on.
There's much more but I'm sure the comment section will be flooded with it :)
"Non technical management - this should speak for itself. I've done it before to much regret."
I wouldn't put this as a con, I've seen lots of engineers turn into terrible managers, because the skills are completely orthogonal, they also then lose touch with the tech - because that's what happens if you stop coding for even a few months.
Vice versa, I've worked with lots of good non technical managers, who respect and defer to you for technical decisions, planning etc
And of course the other way round, also seen good technical managers and bad non technical ones.
In summary, technical experience of a manager is not an indicator for me, what is are the human factors, do they micromanage? Are they happy to cede control and delegate? Do they give realistic deadlines instead of death marches?
The ways engineers are terrible managers non-technical managers are often terrible too. In addition to that, they also know less about work itself and are more likely to be insecure about that. They cant distinguish between good and bad engineers replacing various signals for that and are easy to manipulate by charismatic but not too good engineers. The lack of knowledge shows up in small things and big things and overall bluffing. So you get same problems plus some more.
Non technical here does not mean "does not have technical school". If that person took effort to learn, then he can be technical without degree etc obviously.
"The ways engineers are terrible managers non-technical managers are often terrible too. In addition to that, they also know less about work itself and are more likely to be insecure about that."
I would put that as another human/personal trait, the ability to openly acknowledge ones limitations and delegate/defer when someone else has more expertise than you. For example, when making a technical decision, deferring to the tech lead & individual contributors.
If anything, a technical manager whose tech skills are/have slipped away is more likely to be insecure than someone non technical.
Technical manager needs to defer decisions too. No amount of knowledge makes it good idea to micromanage or not to build consensus with those he manages.
However, he still have better ability in deciding who to defer/trust to, better sense on bullshit vs reality, better idea about nuances of decisions and knows words people use. That shows up in how meetings are moderated, people know it and also some will always try to game the manager. Non technical manager is reduced to parroting sentences and attitudes he does not understand fully. Knowing something is not a disadvantage, ever. Not knowing something is.
Every manager needs to make some decisions too. And in there, knowledge helps. Knowledge that slipped away is better then no knowledge and worst then relevant knowledge.
If you see a small company with the same opening for a long time, it may also be that they just haven't found anyone yet. Recruiting is hard, and it may take a year to fill a position.
Of course, "small company" seems to be red flag for a lot of developers anyway...
The team I'm on has a hiring rate of less than one person per year, but I can't recall anyone ever turning down an offer because we couldn't offer enough money. We're not in Silicon Valley and finding the right talent is just that difficult.
If the small company grows smaller every day and it's all the demotivated developers fault.
Also offering a software service with lots of traveling until we can build The Product. If they are afraid of risk and play it safe today, the best product concept in the world won't change that.
Also superficial company culture, that looks incredible and thats all there is.
If the Company has a linear mindset in a exponential field.
Asking about marital status or number of kids isn't just a red flag. The Equal Opportunity Employment Commission often views it as evidence of illegal hiring discrimination.
If they're asking questions like that, what they're really asking is how available you are to work tons of extra hours, nights, and weekends.
> Low or no bonus - we're in a tech boom nearing 90's levels. Your bonus should be 10-30% of your salary. If the company is public, you need stocks. This is the primary way companies keep apparent wages low. The golden eggs are hidden in bonuses, perks, generous vacation policies, and especially public company stock.
For better or worse, this alone eliminates over half the positions available.
> Strange hiring practices - [...] asking about personal life ([...] Political views?). If you like the idea of [...] sitting [...] next to some frat bros or guys wearing MAGA hats maybe this is for you.
Can you elaborate on that a bit?
I'm not in SV/US, but my impression is that most tech companies are intolerant of different political views and biased against conservatives, so likely you should be targeting companies companies that ask for your political views, if you don't like sitting next to MAGA hat wearing guys.
Constantly recycled job openings - to spot this you need to be searching for a few months. But if you notice that the same posting is ALWAYS up for senior positions, and it's not a huge company, your resume has a huge chance of never being seen. From my experience, it's likely a company fishing for H1B applicants. Even if you're on a visa stay away.
No intern program - as a general rule, companies with best engineers scoop many straight out of school. I have never worked at a company with top notch engineering that didn't have an intern program. Sometimes this is hard to see since they focus on certain schools, you may be able to find out from recruiters or Glassdoor.
Heavy usage of third party recruiters - the best jobs are easy to advertise. Either the company is incompetent, the position is for legacy work, or the company is just unnapealing in other ways. If legacy work is your jam, go for it, otherwise be cautious. Note that this does not apply for specialized or very high level positions. Use of executive recruiters is normal since paying the cut is worthwhile.
Low or no bonus - we're in a tech boom nearing 90's levels. Your bonus should be 10-30% of your salary. If the company is public, you need stocks. This is the primary way companies keep apparent wages low. The golden eggs are hidden in bonuses, perks, generous vacation policies, and especially public company stock.
Old school practices - occasional work from home, somewhat flexible hours, casual work environment, free snacks. If they offer less than 3/4 you can find a better gig.
Non technical management - this should speak for itself. I've done it before to much regret.
Strange hiring practices - personality tests, panel interviews, minimum GPA rules, leetcode, asking about personal life (married? Kids? Political views?). If you like the idea of hanging out with people from MENSA, sitting in countless committee style meetings, or next to some frat bros or guys wearing MAGA hats maybe this is for you. But asking these things of you reflects the values of the organization. Birds of a feather flock together and humans are no different.
Find a place with engineers that seem to love what they're doing, eachother, and writing code. If they invite you to lunch and everyone is chatting like old friends you probably can't go wrong. Bonus if they're actually excited to talk to you about technology and what they work on.
There's much more but I'm sure the comment section will be flooded with it :)