It’s ok to be in tech for the money. You want to get paid for hard work and software engineering jobs tend to pay well. There’s no shame in making that a big part of your search. We can love our job, the mission our company is taking on, and the people we work with, but it has to pay the bills. It doesn’t make you heartless or a sell out to look for a place that will fairly compensate you for talents and skills that are in demand. It’s a job, first and foremost. After all, practicing your craft isn’t easy when you’re not sure you can pay this month’s rent.
Beyond meeting a bare minimum for livability, jobs in the tech world can be lucrative. That’s the dream after all, a job that you enjoy in a comfortable lifestyle. If you’re new to professional life or are in the process of switching roles, there can be a “reverse sticker shock” when seeing potential salaries that can make it feel like you’ve hit the big time. Understanding what your market value is at your skill level can help you realize when companies throw a number out to you and yet still undervalue you in comparison to others on your level.
You may have heard about working for “exposure” in lieu of a full, market valued salary. I strongly advise against any work that’s billed as such, publicly or privately, since it’s essentially asking you to put your time and efforts to make money for someone else. Some examples are unpaid internships or contributing to a commercial open source project (differing from non-commercial and freely distributed projects). You may hear about a need to keep costs low during early phase start ups or that salaries will meet industry standards “when we’re more established”. Companies will look out for themselves first, which unfortunately sometimes means undercutting their employees. This won’t be a one time thing either, as you’ll likely be asked to work longer hours or weekends and take on additional assignments outside the scope of your work with raises and promotions put off. It’s a big red flag when you’re seen in the eyes of your employer as an interchangeable part. There will be rare exceptions, but your efforts should primarily be focused on organizations that will allow you to earn a solid income, be it internship or otherwise. Engineers are in demand. Know that you are valuable.
In terms of how you’re paid, you may prefer to look for a job with a salary (fixed yearly pay) or hourly (a fixed rate per hour, your yearly income varying depending upon hours worked) with the caveat that your choices in companies may be consequently limited. When considering overtime, the rate has a bit of a twist in how you’re tracking your time. Are you doing on call rotations after hours? That may or may not be considered distinct overtime despite working outside normal hours. Salaried positions can also have the additional implicit pressure of continuing to work outside of a forty hour work week, stretching into nights and even weekends. In my experience, entry level roles are split between each while mid and senior level roles are salaried, so gauge expectations of your desires around that.
Additionally, you may even be lucky enough to come across companies that offer bonuses on top of hourly or salaried compensation, either a timed bonus (like end of the year) or a spot bonus as a recognition of particular work performed. Larger companies may offer a signing bonus for senior engineers as a way of getting you in the door. The “catch” is that you’ll be required to stay a minimum period of time (typically a year, sometimes two for cases like Amazon) or you’ll have to pay it back. It’s expensive for companies to bring in candidates and train them up, so cutting that overhead of engineers leaving soon after joining for a small signing bonus can be an easy way to manage this cost.
So how do you calculate this range when prospective employers ask? There isn’t a strict formula that will give you an answer, but you can throw in some factors to understand a bit more:
Seniority of the role. The longer you’re in the industry, the more likely you can ask for with a general logarithmic curve tapering off. There are expectations built into what you can accomplish along with your title and experience that companies will, naturally, want to pay you for.
Size of the company. FAANG (Facebook, Apple, Amazon, Netflix, Google) companies or those of roughly equivalent size (IBM, Microsoft, Twitter) will have the cash to pay for talent. Smaller companies will pay well too, but not to the same extent, relying upon other benefits to attract folks.
Lifecycle of the company. Companies that are in the black financially may be able to afford to pay you more than a startup who has yet to receive funding or is still searching for a foothold in the market.
Desirability of skills. A company in dire need of an engineer to fix the fires in their infrastructure or scale for increasing workloads may put together a better offer – if they value the work, that is. Various parts of the stack can mean different pay scales. Knowing exactly what a company needs is challenging, but leaves you the opportunity to explore several topics or prepare for interviews by focusing on the particulars.
Physical location. Companies tend to pay employees more to match cost of living. For example, engineers in the Bay Area have much more to pay for rent, food, and other general needs so companies pay more to compensate. There’s a reasonable debate on whether remote employees with a lower cost of living should make the same as those in places with a higher cost and their respective values. Companies will tend to pay more where the talent is, which as it stands is currently in bigger cities where a higher ratio of deeply skilled engineers tend to live. With the increasing push to remote life, though, this is beginning to skew.
It can be challenging to expected norms about discovering salary bands and hourly rates. A lot of folks, myself included, grew up being told to never discuss how much you earn as it can make for awkward conversations. While I wouldn’t advocate for bragging about your take home pay, it can be productive to have open conversations within your networks based on the understanding it’s to help lift one another up. Open requests for exploring these on social media can source some info as well, though be wary of showing your hand should a company find your public posts or bad actors who may poison the well with false numbers. As you talk to companies directly, ask them salary ranges, particularly with HR or recruiting teams during the introductory calls and keep track of the bands they’re offering. It can be useful as another data point to put together.
There are also sites where you can punch in numbers (usually the basics of title, location, and years of experience) to get a salary out. I tend to find them less reliable as they’re based on generalized factors and would rely more on stories from people you know. Many of them are written by the companies doing the hiring, so they’re likely to depress the numbers. Discussing salaries can help make your company more equitable in how employees are treated, but know that your employers may discourage you from doing so, implicitly or explicitly. It’s illegal in the US for a company from preventing you from doing such, but that doesn’t stop them from trying. Depressing salaries is one way companies look to keep costs low and if employees share their salaries, it’s leverage for folks to ask for more. Retaliatory actions can be masked with all sorts of cover stories to skirt by these rules, with the implications made clear.
As you put together a list of your ideal requirements below, know that they all will factor into the unwritten math a company will use for compensation. One more key piece is that there are also, unfortunately, factors outside your control that will negatively impact what you are offered. Studies have continually shown that engineers who are Black, Latinx, Women, with disabilities, and across many other strata are biased against receiving the same fair offer for a given role. We’ll discuss later what it means to negotiate your salary, but before you can do that you need to gather info. What is the company average, the industry average for that level? Are there DEI initiatives at the company that help keep salary bands consistent? Be informed about what you deserve for your hard work so you’re not being undersold for performing at or above the industry but being paid less for it.
Navigating salaries is tricky no matter your approach. It’s extremely rare for any of us to be trained in a meaningful way to do such, while companies are built to do just that. It’s stressful, with power dynamics that often are not in our favor. Changing those dynamics by being better informed will hopefully reduce that stress a bit and potentially net you more take home pay. The extra effort here can mean arguing from a much stronger position later.
This post is the current version of a section in my book on interviewing for technical roles. I’m trying to help out with any advice I can while I’m putting all of this together. As part of that, I’m looking for constructive criticism and feedback. My experiences as an engineer are also not universal and so my own biases will creep up in my writing.
In particular, I’m addressing a highly subjective area – how to properly compensate for work. I have been fortunate to be well paid throughout most of my career, in no small part to my background and systemic biases in my favor. Not everyone can say as much. Until we start saying the soft parts loud, these problems will continue to propagate.