Determining compensation is just hard. It may look easy to outsiders, because hey -- it’s just a number! But it’s a number that can make or break you. If you aim too low, you’ll lose good employees. If you aim too high, you’ll put your balance sheet at risk. Finding the right number requires a lot of research, discipline, and good judgment -- which sounds like an awful lot of work. Naturally, we’d all like to find an easier way out.
Well, you won’t find that in this post.
I’ve never liked the compensation part of the recruiting process. I didn’t enjoy it when I was making my first few offers to the engineers I was recruiting to my first team, and I didn’t like it years later. I always preferred to spend my time carefully assessing each candidate’s technical and culture fit. Figuring out how to somehow guess their monetary value was a whole different ballgame. Add to this mix the fact that I was usually paying an external recruiter’s fee, and I was routinely looking at the possibility of making a very expensive mistake.
It’s only a model
After a period of trial and error, most companies eventually settle on some sort of model or framework for how they’ll calculate compensation for their team. If you haven’t done this already, I urge you to get started right away. Because of the two most popular approaches to the question of compensation -- planned and unplanned -- going in with a plan is by far the best way.
The “unplanned” approach means that you’re willing to have each new candidate negotiate his or her own compensation as part of the recruiting process. This generally leads to disaster in no time flat. You end up with team members making radically different salaries for no good reason other than the different negotiating skills of each person, which is not what you should be basing your pay on at all. It’s not fair and equitable, it stresses out you and the candidate, and it usually leads to a pretty leaky bottom line.
The “planned” approach means that you either use a set formula or salary bands to arrive at the appropriate level of compensation for each role. This approach offers a good deal more sanity and satisfaction for all. We use bands at HubSpot, which means that for each defined role (Software Engineer, Senior SWE, Tech Lead or Principal, and so on), we work within a salary band that defines the proper range of compensation for that role. Each range has an explicit minimum, maximum, and midpoint.
It sounds simple, but the devil is truly in the details.
Find your highs and lows
First you need to find the floor and ceiling of what you are willing and able to compensate each roleplayer, based on market data, return on investment, and budget. We gather our information from other hiring managers, from competing offers, and from commercial salary surveys like Comptryx and Option Impact. These two companies also provide us with country-specific information, in case you are expanding internationally. Keep in mind that this is something that you’ll need to do often -- not just once, or once every few years. We review our salary bands twice a year and make adjustments as needed.
Simplify your salary negotiations
Some use formulas and others use bands, but they both achieve the same purpose: They can drastically reduce or eliminate the time and effort you spend on salary negotiations. Most engineers don’t enjoy conducting salary negotiations, myself included. In fact it’s always been my least favorite part of the recruiting process.
Before we established our compensation bands, it was excruciating. Inevitably, we’d end up in that awkward moment when neither the candidate nor I want to mention the first number. The candidate’s fear is that you’re going to extend to them the lowest offer possible. My fear was that I’d make them too high of an offer.
But with bands, both problems are resolved. I can let the candidate speak first, or I can go first. It just doesn’t matter any more. I’m comfortable with the ranges of salaries we offer for each role, comfortable with my knowledge of the marketplace, and I’m even comfortable paying higher if I have to in order to hire the right candidate, but I don’t have to go whistling in the dark anymore. It’s an unbelievable relief. And it works wonders when you’re trying to recruit great talent, because it lets me aim for the best talent, confident that I’m going to hit the compensation target most of them are looking for.
To get the best talent, you have to offer them top-of-market rates. This sometimes means that you can only hire two great developers instead of three average ones. Which to me is not a problem. I’ll always choose to hire those two greats instead of three lesser lights. That’s why I always aim my offers on the high end of the salary range -- and why I’ve set those ranges at HubSpot to be significantly higher than they are at our competitors. Not because I’m willing to pay the same people a whole lot more money than my competitors are, but because I’m looking to attract a higher tier of candidates altogether. My “level one developer” salary range is higher than it might be at other companies because I aim for a higher caliber of “entry level.” In short, my “entry level” tends to be other people’s “tier two.”
Focus on your values
I value passion, loyalty, energy, and resourcefulness over experience, which means I’m willing to compensate higher based on these values. It also means that I don’t compensate based solely on experience or tenure. This is actually more revolutionary than it might seem. It certainly isn’t the industry norm.
Joel Spolsky, for instance, pays linearly in years of experience. But how does a reward program based on time served ensure that I’ll get the passion, loyalty, and energy I’m looking for? A person might have 10+ years of software experience, but isn’t interested in or able to create the products we need. If my compensation formula relied heavily on tenure or experience as its driving force, I’d inevitably end up shortchanging the very candidates I wanted most to hire and retain.
Even the best young engineers won’t usually have the context necessary to take the right offer based on mission and potential for growth. They’ll usually go for two things: location and compensation. Since our company location is fairly ideal for many candidates, that just leaves us with compensation as a variable. Some time ago, HubSpot co-op hourly rates were almost 50% of the going rate. We fixed those hourly rates and have now quadrupled our co-ops and summer interns -- which means that now all of our energy can be spent on going after the best candidates, and specifically those who fit our values, our mission, and our goals.
Of course in the end, our goal is to attract the very best developers we can and to keep them happy over the long run. This is the only approach that we’ve found will give us the high-wattage talent and values-driven workforce we need to create the kind of company we’ve set out to create.