I am a hiring manager. I don't have a budget. What I have are different comp levels that depend on the engineer's level. It's not in my interest to underpay an engineer and I'm not approaching the hiring process as trying to pay a candidate as little as possible. I'm trying to find a good hire and I want them to be happy working for me. I've worked for many tech companies and I've never seen anywhere there was some specific budget number attached to hiring an engineer.
That's not to say there isn't some element of negotiation but it's generally at the margins (definitely not 20%).
The reason I might ask about expectations is just not to waste people's time, not to screw the candidate. I ask about your process with others to know if I should try and get through the process faster on my side. Having a competitive offer might be relevant for the negotiation process but again it's at the margins. You also need to consider your compensation over time, you might be hired at a slightly higher comp but then it won't get adjusted as quickly.
Once we've interviewed a candidate and have a good sense of where we think they are in terms of their level, and decide we want to hire them, then there's no problem sharing the numbers with them, at this point that's an offer. Before we can estimate the candidate's level I don't really think it's useful to tell them that if they're a "level 10" (or whatever) then the salary range is 44,000 to 46,000 dollars (or whatever). If a company posts a range of 100-300k for a software engineering role that doesn't mean that every candidate can negotiate a 320k salary. It means they're ok with hiring someone relatively junior at 100k or paying a significantly stronger candidate 300k.
What I'm trying to say is that with a good employer there is actually alignment and win-win here. If you're dealing with a bad employer who is trying to take advantage of you there are probably better signals for that. The engineering manager who is hiring you into a large tech company is generally motivated to hire a good engineer and make sure they're happy.
It's the same on the candidate side. I know when I interview, what it'll take to bring me on board depends a lot on the company, the team, and what the position looks like. For something I absolutely want to be a part of, because all of the above are incredible, it's not going to take as much in compensation as a place that's not perfect in one aspect or another, but is otherwise nice at the right price.
But I won't know where the company sits on that spectrum until after the interview.
> For something I absolutely want to be a part of, because all of the above are incredible, it's not going to take as much in compensation as a place that's not perfect in one aspect or another, but is otherwise nice at the right price.
On the other side of this, there exist a compensation amount, above which I will accept a job offer knowing nothing about the company, am willing to suffer through almost any job or working condition, regardless of whether I believe in the company's mission, want to be a part of the company, where I'll simply say yes sight unseen. No company has even remotely gotten close to this number with their actual offer, but nonetheless I must admit the number exists. If a company just asks "how much do you want?" I don't see any harm in giving them that number. If they are OK with it, jackpot. If not, we negotiate way down from there after I learn more about the company.
In my experience (and I've been on both sides plenty of times) - There's always a budget. Call it a band, a range, whatever, the budget exists, and in many jurisdictions the world (and even within different states in the US) over you have to specify what that budget is for any given position. Some places are better than others, like settings a ridiculous range that tells you nothing (100k - 300k like your example) useful, to be fair.
Usually, a job post will be for a specific role. A senior, principal, medior, junior, L9, ABC123, doesn't matter, a rank is usually attached to the job description. At least from what I've seen (and I'm sure this part does vary a lot company to company and role by role, but IME it's pretty rigid with tiny allowances for things like mediors switching to a senior position and stuff like that), the business is pretty adamant on hiring for the advertised role, and not someone who's over/under the role. If you're hiring a senior, how often is it that you'll take a junior instead? Presumably there's a reason the posting says senior. I've seldom ever seen free-range postings, and I'd definitely never apply to one either.
> ...then there's no problem sharing the numbers with them...
But that's the problem, you're only informing them at the offer stage about what their compensation could be, and they still have no clue whether you're screwing them over. Many people don't realize/aren't comfortable with negotiating for higher pay, I've known a surprising number of people who take the offer as-is (or don't) with no follow up or negotiation.
If you give people the range from the start (preferably before they ever even send the application in the first place), you're saving everyone's time and also setting expectations early on for all parties. People who'd balk at the range would just not apply, and you'd get more candidates who are more likely to accept whatever you end up deciding on.
> What I'm trying to say is that with a good employer there is actually alignment and win-win here.
And I think this is a bit of a naive viewpoint. The business has no reason not to fuck you over, and they in fact often do. And it makes perfect sense why they would, after all especially SWE's are expensive to employ, but regardless of if it's understandable or not, it's still a shitty and lopsided dynamic that heavily leans in the favor of the corporation.
That's not to say there isn't some element of negotiation but it's generally at the margins (definitely not 20%).
The reason I might ask about expectations is just not to waste people's time, not to screw the candidate. I ask about your process with others to know if I should try and get through the process faster on my side. Having a competitive offer might be relevant for the negotiation process but again it's at the margins. You also need to consider your compensation over time, you might be hired at a slightly higher comp but then it won't get adjusted as quickly.
Once we've interviewed a candidate and have a good sense of where we think they are in terms of their level, and decide we want to hire them, then there's no problem sharing the numbers with them, at this point that's an offer. Before we can estimate the candidate's level I don't really think it's useful to tell them that if they're a "level 10" (or whatever) then the salary range is 44,000 to 46,000 dollars (or whatever). If a company posts a range of 100-300k for a software engineering role that doesn't mean that every candidate can negotiate a 320k salary. It means they're ok with hiring someone relatively junior at 100k or paying a significantly stronger candidate 300k.
What I'm trying to say is that with a good employer there is actually alignment and win-win here. If you're dealing with a bad employer who is trying to take advantage of you there are probably better signals for that. The engineering manager who is hiring you into a large tech company is generally motivated to hire a good engineer and make sure they're happy.