The end of April is always an interesting time for me. I often spend the first part of my year figuring out the priorities and goals for the year while also preparing for income tax payments. Usually, I feel good by this time of year because I’ve got plans in place and taxes are done.
But this year is different. Because of layoffs and job insecurity, a lot of my friends are worried and are asking for advice. I feel uneasy.
I’ve had more than 30 conversations about compensation this year. They’re all asking some of the same questions that made me realize that there are probably a whole lot of other people who don’t understand how compensation works. I’m not an expert here, but I do have a lot of takes here that I’ve decided to share in this newsletter in the hopes that I’d have something I could point folks toward as a resource in the future.
Unlike other issues, this is the only topic this month because it applies to everyone reading this, whether you create code or content.
I will be completely clear here: I am not telling you how I think things should be, nor that I agree with the way things are. I am stating what I’ve seen and how I recommend you work with what’s there. I’m not in HR, but I did get this reviewed by an HR professional. I have hired people, and I have worked on career ladders. I’ve computed compensation, determined salary bands, and been in negotiation conversations. I’m not a financial advisor, but I’ve worked with a fiduciary and a CPA and learned much more about equity compensation than I ever cared to, as I watched my equity from a previous employer lose half its value after its IPO.
So like all of my other advice, I’m here to share my experiences with you to help you figure out what to do.
Let’s get into it.
My mindset about compensation comes from the three places I’ve worked over the last 25 years.
The first is my experience working for the state government, where the salaries are fixed and posted in public for all to see. Raises are on a scale based on seniority, and there’s a professional union that negotiates with management.
The second is my experience working for startups, where pay is based on a mix of base salary, equity, and bonus.
The third is my experience as a freelancer offering consulting services for over 25 years, where I set my price and constantly adjusted that price based on the value I could provide clients.
As a result of these experiences, I firmly believe you should adopt the following mindset about pay:
You are a consultant. Your responsibilities are to you and your family. As such:
As Andy Lester puts it in Land the Tech Job You Love:
No matter what your current job is, you’re working for yourself. Consider yourself as working for You And Your Family, Inc., and you’re a contractor to whomever your current employer is.
I’m not suggesting that you don’t form attachments to the people you work with or the company you work for. It’s only natural that this happens. I still use the products from my last employer, and I still have regular conversations with people I used to work with. I’ve even gone back and contracted for a previous employer.
I am suggesting, however, that it’s dangerous to give a company you work for too much of yourself because it’s easy to become too dependent on them. Keeping a healthy and realistic separation is good. When a company lays off thousands, it’s “just business.” When you move on from a job, it’s just business as well.
You are ultimately responsible for your pay, even though it doesn’t immediately sound like it works that way. Some skills and experience have more value than others, and this changes over time. Your job is to determine the market for your skills and set your price accordingly.
If you’re lucky to be an engineer with the skills in demand right now, you can command a premium for your work. Do the research to find out what your skills are worth. Sites like Glassdoor and levels.fyi can give you a starting point, but they’re honestly not that reliable because it’s self-reported data that nobody’s verified.
Most companies do research on salaries. They get salary data for all sorts of fields and use this data to figure out the salary ranges for a role. I’ll explain this more shortly. But when they put a job posting out, they know how much they’re able to pay. You need to be ready with your own research on what you’re willing to accept.
Before you have your first interview with the recruiter, do your research. Some states require job ads to post salary info, but that info isn’t that helpful for reasons I’ll explain later. Remember, you’re setting your price. So look at the job description, identify ways your skills bring value to the role, and do the research to figure out what your skills are worth. Essentially, be prepared to bid on the job.
When speaking with the recruiter for the first time, talk about compensation. Don’t defer or avoid the topic. If they ask, give them your number. You shouldn’t be worried about speaking first because you’ve done the research to figure out what your rate is. If they can meet it, great. If they can’t, you saved a lot of time. Why spend up to six hours of interview rounds only to find out they can’t meet your price?
If you own a home and you need a plumber, you might call three different plumbers in the area to do the work. They’re all going to come in at different prices. You don’t get to tell them what you’re going to pay. If you can’t afford them, you won’t hire them.
You have to adopt this mindset for your career. Know what you’re worth and set your price. Just make sure it’s truly aligned with your skill and experience. If you’re getting feedback that your asking price is too high, that might mean you need to make some adjustments.
One of the best things you can do is start talking about pay with your friends and peers. You may feel awkward about this, but you’ve been conditioned not to talk about money with others, which doesn’t benefit you. Share your pay with others, and ask them to share their pay with you. You have the right to discuss wages with other employees..
When someone says they make $300,000 at some company, that’s not their take-home money. Most companies are doing some combination of salary, equity, and bonus. A person with a $300,000 total compensation (TC) probably looks more like this:
The term “total compensation” actually refers to the mix of salary, equity, and other benefits companies pay. But for this article, I’m limiting it to just salary, equity, and bonus for simplicity.
When a company makes you an offer, the only guaranteed part is the base salary.
A bonus is just that - a bonus. It’s a percentage of your base salary, usually somewhere between 5% and 20%. A bonus may be a higher percentage of compensation if you’re in a leadership role or if you’re on a variable compensation plan like sales. But it’s a bonus, not a guarantee. If the company has a bad year and doesn’t pay bonuses, you won’t get that extra money.
As for stock, the amount you get is based on the fair market value of each share when it’s granted to you. If the company isn’t public, then the share price is based on the fair market value set by the board, and it doesn’t change that often. If it’s a public stock, then the fair market value is the public value of the stock, which changes constantly.
The number of shares you get is based on the dollar amount. So if the fair market value is $100 a share, you only get 1,350 shares. And if that stock drops to $90 a share, your total compensation goes down $13,500, bringing the total compensation down to $286,500.
In a company that issues stock options instead of stock, you have to watch out for some additional things. Incentive Stock Options (ISOs) have nice tax benefits, but exercising too many options can trigger additional taxes. Additionally, employees can’t receive more than $100,000 worth of exercisable options per year. So in some cases, some of your stock grant might be a Non-Qualified Stock Option (NSO) instead. This is less common, but it’s something to consider.
In this example, half of your compensation is out of your direct control. But it’s often easier to give you a higher bonus percentage and a larger amount of stock than it is for a company to offer a higher base salary due to budget constraints. You need to understand the downsides of that and not fixate on that total compensation number.
Chris Wanstrath, the co-founder of GitHub, introduced me to the term “ifcome” in a now-deleted tweet from 2010:
ifcome = Money you think you’ll get but don’t yet have in your pocket. Don’t spend ifcome.
Stocks and bonuses are ifcome. You’ll do well if it comes. But if the stock crashes or the company never goes public, it is all just Monopoly money.
Always bet on income. You can invest the income into things you want.
The income portion of your compensation, your base salary, determines so much.
First, if you can get a bonus, it’s based on a percentage of that number.
Second, if you get raises, the amount you’ll get will be a percentage increase. It’s often somewhere between 1% and 7%, with most people ending up at about 3%.
Third, you often set your retirement contributions as a percentage of your base salary. If there’s a company match, it’s calculated off of your base salary as well.
Keep those things in mind when you negotiate that base salary. It has a huge effect on other aspects of your compensation. And it’s part of the reason why companies are more willing to offer you more ifcome than base salary.
When you’re looking to make a major purchase, you do your research to figure out how much something will cost. Companies do this too. Most of a company’s expenses usually go toward its people. When they pay someone, they’re not just paying the base salary and bonuses. They pay their share of employment taxes, health care premiums, 401K contributions, and other expenses. That’s the “total compensation” from the view of the company. Some companies share a “total rewards” statement with employees that show how much each person receives.
As a result, each position in the company has a specific budget. A position may have $200,000 allotted in the budget, but only a portion of that goes toward the salary.
I mentioned earlier that companies pay for salary data as part of their research process. Various places sell salary information that companies use as their starting point for base salaries.
For example, the data might show that a “Software Engineer,” which would be someone between a junior and senior-level engineer, has a base salary anywhere between $75,000 and $115,000 USD:
That data might be enough to build the salary range. Some companies go a step further and take the midpoint and create a salary range based on some multiplier. Using the midpoint of $95,000 from this example, a company might create a salary range between 0.70 and 1.2 times the midpoint, resulting in a salary band of $66,500 to $114,000.
These multipliers allow the company to be a little more aggressive or conservative based on its available budget. Remember that they have to pay the base salary plus other expenses, perks, and taxes on top of the base salary. This approach also compensates for the fact that the data they get on salaries lags behind the market by a couple of years.
They’d then do that for all the roles in the company and build ladders with salary bands for junior developers all the way up to principal engineers. This tries to ensure competitive compensation aligned with the industry and pay equity between people with similar experience levels. When someone is hired, they know where to place that person. When someone gets a promotion, that person starts out at the bottom of the next range.
I’m oversimplifying here; there’s a lot more that goes into the process. Take a look at How to Establish Salary Ranges for a deeper look into the process if you’re curious about how companies establish bands.
When you agree on your salary, you’re placed in a salary range.
I mentioned that it’s in your best interest to come to the first interview with your price in mind. Some people suggest you ask the recruiter for the budget for the role, but I don’t think it’s worth your time to do that. If they tell you the range, they know you will only focus on that top number. Meanwhile, they won’t want to place you at the top of the band because you’ll have nowhere to grow.
Let’s say the job you’re applying for has a range of $66,500 to $114,000. If the company gives you $114,000, there’s going to be an issue at the end of your first year when you and your manager discuss compensation. Since you were hired at the top of the range, there’s no room for a raise at all.
If you were hired at $125,000 because you’re a great negotiator, you may find that the only way you get a meaningful raise at all is if you get a promotion to the next level on the ladder.
Name your price. The recruiter will often tell you where that falls in the range. If your asking price is at the top of the range, you can expect the company to attempt to compensate you in equity or bonuses rather than in a larger base salary. You’ll have to evaluate whether it’s worth continuing the conversation because the bottom line is that the salary you join at determines what happens going forward. You might not get bonuses, the equitiy might not materialize, and you might not get raises because of where you landed. So ensure you’ve got a good number you’re happy with for at least two years.
When you take a job, the company is betting that you’ll succeed, but it’s an unspoken rule that you won’t be earning the salary you’re receiving for at least six months. You have a lot of things to learn, and it takes time to get used to the role and how you apply your skills in the new environment. That’s the other reason they won’t try to put you at the top of the range right away.
You will eventually get to a point where the company is getting more value from your work than they’re paying you. You’re learning through experience, which raises your value.
Even if you can get increases year over year, the external market is evolving. The cost of living goes up, and companies are adjusting their pay bands to attract talent that’s moved on from other places. It’s in your best interest to monitor how your current compensation tracks with that. I have seen situations where a company posts a role with a salary range that’s higher than what they pay people currently doing that role. And in those situations, I haven’t seen a lot of effort to adjust the salaries of those currently in the role. I’ve had several managers promise this, but only one ever actually made good on it.
Garry Tan’s career advice is always a great reminder when you’re currently in a role, and you’re not seeing the money keep up with where you think it should:
At every job you should either learn or earn. Either is fine. Both is best. But if it’s neither, quit.
This is why I suggested you adopt a consultant mindset around compensation. You’re building new skills, you’re setting your price, and the market is changing. You can and should consider taking your skills back to the market if you cannot get additional compensation for your work. You will likely get a much more significant salary increase by moving to a new company and doing the same job because you have more experience.
You have to weigh the options. Moving on from an engagement is more complicated than it sounds. You might like your work and the people you do it with, and the company culture might be exactly what you need. And you may have other things going on in your life that make it difficult to put the time and energy into finding new work. Interviewing is hard, and taking a new job means a lot of extra time learning the role.
But remember that none of those things matter if the company decides to terminate the working relationship.
If you shift your mindset to thinking of your career as a series of consulting gigs, you may find you have more control over your compensation and your future. Consistently evaluate your situation. Is the job a good fit? Are you fairly compensated? Or have you done what you set out to do and are ready to move on to the next engagement?
You’re a consultant. You currently work with a client. You’ll work with another client in the future. Grow your skills and adjust your price as you go.
Hopefully, you have a few things to consider over the next month. But here are a few more things to think about:
That’s it for this month. Thanks once again for taking the time to read this newsletter. Share it with friends who can benefit from this advice.
I'd love to talk with you about this newsletter on Mastodon, Twitter, or LinkedIn. Let's connect!
Please support this newsletter and my work by encouraging others to subscribe or by buying a friend a copy of Exercises for Programmers, Small, Sharp Software Tools, or any of my other books.