Why You Make Less Money
Have you ever had a conversation with a fellow technologist that you felt wasn’t quite at your skill level, and at some point you discovered that she/he makes $20,000 more than you do? $50,000? As someone who has had a great deal of access to the salary and compensation details for thousands of software engineers over many years, I can report that there can be significant variation in salary between technologists with almost indistinguishable skills and qualifications. This may not be news to some, but the reasons might not be obvious to professionals in the field, particularly if someone has only been exposed to a small subset of industries or companies. Many of the explanations are somewhat unique to this industry or just more prevalent in the software world. Regardless of whether or not money is a primary motivator in your career, it is still useful to understand why others may be earning more (and what you can do to join them).
What are some possible explanations as to why someone equally or less-qualified makes more money?
- Public image and intangibles – An average technologist may be compensated above more productive co-workers if there is some advantage that the company sees in that person’s employment. Community influencers such as open source project leads, conference organizers, meetup/user group leaders, speakers, and authors may all fall into this category. In business this is the concept of goodwill, where an asset has a higher value due to an intangible. Google’s high profile hires of James Gosling and Ray Kurzweil and Dropbox’s hiring of Guido van Rossum came with a certain level of goodwill bundled. On a local level, a company may believe that hiring the local Python group leader could make hiring Python pros easier and less expensive, which may justify a higher salary independent of the developer’s quality or production. Regulars on the conference speaker circuit can ask for a premium simply based on the PR provided every time their bio is published on an event website.
- Negotiations and raises – Software professionals are often stereotyped as unskilled negotiators or uncomfortable in situations where they are seeking additional salary or perks. This first requires the courage to ask for more (in the form of a raise, or a higher starting salary for a new hire), and then the knowledge and skill to ask effectively. As a recruiter I typically handle salary discussions for my candidates, and I know that for most engineers that particular service is highly valued. A difference of even a few thousand dollars as a starting salary has the potential to dramatically alter your lifelong earnings. Remember that this number is regularly used as the basis for bonuses and raises, and most importantly it usually has some bearing on salary at your next job. Think of starting salary as the principal level for compound interest.
- Market knowledge – Remember that conversation alluded to in the first line of this article? If you had three or four similar interactions within a year you may have noticed a pattern and it seems your friends might know something that you don’t. Many engineers aren’t even aware that they are paid below market rate because they just trust that they are fairly compensated and have no reason to investigate further. I have had conversations with experienced and well-qualified developers who are floored when they learn that they have been paid 20-30% below market rate for many years. Know what you are worth.
- Self-promotion – Even if the high skill level is there, many technologists are either unable to properly express their own expertise and accomplishments or feel awkward tooting their own horn. The ability to market yourself often starts with a powerful résumé and a confident interview presence when trying to maximize salary at a new job. When staying with your employer, self-promotion requires the savvy to make your accomplishments known without looking like a braggart.
- Consulting differential (both independent and staff) – Developers that are independent consultants charge clients a premium to account for expected frictional unemployment and to address the fact that a temporary employer typically will not make any real investment in the career of a temporary employee. It is rare to see independent consultants sent to conferences or trainings by their clients, and independents do not always get the most desired projects. Independents are also on the hook for their own benefits, retirement savings, etc. Salaried employees of consulting firms are also often paid above other similarly qualified professionals, as it is easy to measure a consultant’s contribution to the firm’s net revenues based on bill rates, billable hours, and their compensation package. There may also be regular travel or variable commute that tends to inflate salaries. Salaried consultants who know their bill rate, utilization, and total compensation package have a distinct advantage when trying to justify their value (and salary) to an organization.
- Profit vs Cost Centers – Similar to consulting, companies that use technology as their main source of revenue tend to pay higher than firms where it is considered a cost center. Building software products that will be sold usually results in higher salaries than building systems for internal use. There are some major exceptions, but those tend to be specialized to industries where technology utilization is a key differentiator in the performance of the firm’s primary business interests (trading systems come to mind).
- Rare skill – The premium paid for even one single rare skill among many common skills can be substantial. When a new language, framework, product, or platform is hyped as the ‘next big thing’ and adoption begins, even junior level talent with that skill can earn above more generally qualified individuals. This is simple supply and demand for a scarce resource. In years past the premium was greater for rare skills, as companies today seem more confident in their ability to train an existing resource than to hire someone new and much more expensive.
- Time expectations – Some employers pay a premium because of the high expectations they place on hires. Unless you have some vested interest in the success of the company (stock, profit sharing), a 70 hour work week is probably unacceptable unless you are being compensated accordingly for that level of commitment. Positions that require employees to be on-call are also commonly paid above market. Work/life balance has a price, and some are willing to sell.
- Long tenures at big companies – Many large organizations have systems of pre-determined fixed raises and regular bonus or vacation increases for certain milestones. The hire’s value to the company increases over time as they become highly specialized in a certain environment, and the concept of golden handcuffs is born. The downside of this for the employee is that it often leads to compensation well above true market rates, which makes it nearly impossible to find new employment at a lateral compensation rate. When these types are victims of a layoff, the result is brutal.
- Location – No explanation needed, I hope.
Conversely, here are a couple explanations as to why someone might make less.
- Startups – Startups often exchange equity for cash compensation. These employees are often earning less for the opportunity to receive a big payout. Candidates negotiating with startups must place their own figures on the value of the equity, which is a difficult task. Startup compensation today is much more competitive with large companies than it once was, at least in my experience.
- Benefits, work/life balance – Since most professionals refer to compensation in terms of cash paid, employees that receive significant value in their benefits and perks may be mistakenly considered underpaid. Generous paid time-off, tuition reimbursement, and childcare can be major expenses that are covered by some employers and often not included in discussions.
- Experience value – The opportunity to work for certain companies, to learn a valuable skill, or to be on a highly-regarded team is a reason that many engineers may sacrifice some salary, and shops that provide that ability may leverage that during negotiations. Many developers are entirely comfortable with accepting compensation below market as a trade-off for the positive effect on their career and marketability.
If the topic of compensation comes up with other technologists, consider that there may be several explanations and hidden factors for the disparity between numbers. When exploring new opportunities, keep in mind that the amount of your offer is not solely based on your skill level relative to others or the value the company feels you will provide. In situations where several of these explanations apply simultaneously, the numbers become even more skewed.If you found this post useful, you may find my ebook Job Tips For GEEKS: The Job Search even more helpful. You can also follow Job Tips For Geeks on Facebook, Twitter, or Google+.
How hard is it to get a job with a main technology company in the Bay Area, but as a remote worker, say in Sacramento? I would love to use my skills at a company that pays better, but maintain the perks of living in an area that is drastically cheaper and has less people. I despise the Bay Area as a concrete box with bad traffic.
Thanks for reading. That is a pretty hard question for me to answer. If you are interested in remote work, it probably doesn’t matter all that much if the company is in the Bay Area or somewhere else. I think the question boils down to whether or not someone can get paid in Bay Area dollars as a remote employee. You’ll probably find that companies in higher cost-of-living areas may pay more to remote workers than companies based where cost is lower, and you should find that the ‘main’ companies (big known shops) are likely to pay remote workers better than small local shops in towns with less technical presence. Of course, the bar is higher (tougher interviews and requirements) when it comes to hiring as well.
some companies i know will pay *less* knowing that you work remote in sacrameto, than say, in san francisco.
They pay more in SF because the cost of living there is higher, so you need enough difference to be able to live there.
And to be honest this one makes sense. Else, all the people in SF would just work remote and get more money.
This is essentially what happens when companies offshore development, paying at or just above the going wage in the area where the work is done but below the wage for local resources.
> Know what you are worth.
How? From where?
There are a variety of ways, and it really depends on your situation. I am quite specialized in what I do, so I’m well-qualified to give people within my specialty (geography and technology specialty) accurate numbers in my region. If you can find recruiters that specialize on a certain location or technology (or both), and have been doing it for a while, they should have some good data that is solid. Candidates can lie to recruiters just like they may lie on a survey, but recruiters also see job offers so they know what actual salaries are based on those figures.
There are several websites you can use (I won’t endorse any here but do a simple search), but I’m not confident that self-reported salary surveys are going to give accurate numbers. Your best bet is finding someone who knows from experience, talking to others that are willing to share, and from seeing what kinds of offers you get from interviews. If you get 10 offers, chances are your market value is somewhere in the middle as there will always be shops overpaying and underpaying for talent.
Surprised the old, but now often heard/repeated adage “It’s who you know, not what you know.” wasn’t mentioned as well as “schmoozing” or “hustling”. I’ve certainly seen a lot of hiring of relatives or even close family recently.
As for working remotely, you might find this interesting –
Interesting point, but I think ‘who you know’ in most cases will lead to employment but not necessarily a difference in dollars. I have seen examples of that though, where being friends with a CTO gets you some extra comp. Hiring of relatives or close family in engineering probably isn’t too common, as I don’t think most families have many developers. I do see husbands and wives in tech, but not too many siblings or parent/child sets working together.
Very good points. The location and compound interest points are what have hurt me. Starting out in an area where Wal-Mart pays a living wage makes it hard for me to go elsewhere because employers look at the number I put on the page and don’t believe the market really goes that low. And they certainly aren’t willing to pay me the equivalent for their area.
While I can buy a decent house for 80k here, it makes it challenging to stay current when conference and travel costs are based on salaries in areas where a small house costs 300k or higher. It always irks me at conferences when they talk about how “cheap” they keep their conference, while I pay the equivalent of an entire months rent and utilities every day I attend the conference.
That sounds challenging, and there is quite a variation across different areas in the US (and internationally) for compensation rates. Living in a low cost area is quite advantageous if you are able to get paid in San Fran or NY dollars, but that is often difficult. At least not you can get lots of content online in rural areas – it was much worse years ago.
Don’t give up hope, as I’ve seen underpaid candidates get significant raises. I usually suggest transparency, but in your case your current compensation is a hindrance and you may be better off keeping that information private from potential employers for as long as possible. Usually I’d suggest otherwise, but your situation is rather unique. Good luck.
If your salary numbers are inordinately low, just refuse to disclose them. And not just to the hiring company, but to your recruiter as well. It influences their thought processes just as much, and they can’t really be trusted not to subtly disclose that info, either.
I personally stopped disclosing my previous salary info early on, because everyone and their dog thinks adding $5,000-$10,000 onto your old salary will have you chomping at the bit to quit your current job, regardless of all other issues (cost of living, moving expenses, job insecurity, work environment, etc.). On the other extreme, companies completely give up on trying to convince you to come aboard if they’re offering less than you’re making now. Besides that, I consider it a moral issue… They do NO CHECKING of the numbers you provide, so they are incentivizing lying before you’ve been hired, and penalizing honest folks.
There’s been one instance where I believe I was passed over for failing to disclose salary after a positive interview, and another where I absolutely couldn’t get past the first 30 seconds of a phone call with a recruiter. But there was also a case where I doubled my salary moving from one company to another in a much higher cost of living area, with higher demand for IT workers, so I think I came out ahead. Besides, there’s more potential jobs out there than I have time to go back and forth with recruiters, so filtering a few out early on is a positive thing. After all, I don’t really want to work for a company that thinks the salary figure is everything, and they don’t need to try to convince me I would WANT to work there.
I understand the thought process behind this strategy, but keep in mind that many recruiters and companies won’t go through any process with you if you are unwilling to discuss at least your expectations. If I have a highly underpaid candidate, I’ll tell my client the market rate and expectation for the experience level and that the current salary in this particular situation is irrelevant. It’s the same situation as when someone moves to the US from overseas where comp is often much different, even when adjusted.
here are my two cents worth:
– never undervalue academic education. Developers often bypass undergrad degrees because they are very talented in coding. Always remember that an average person retires after the age of 60 and not necessarily you would want to code after 20 or 30 years. Then when you want a career switch or want to become a Manager, it would be hard without a degree.
– we live in a World which is based on how we look and behave. Often times, the smarter the people are, the less they take care of how they look and behave. Small effort goes a long way. Watch your diet, exercise, have non tech social activities, enjoy life and make friends. People in tech can afford to get a haircut and get good shoes and clothes. Show some pride in yourself.
– Techies often seem to have a chip in thier shoulder. When people are not happy with thier coworkers or with their job, it shows. First remember. it is only a job and you are not their to make everybody happy. Second, if you are fed up, find another job and don’t make yourself miserable.
– when it comes to money, don’t expect your current employer to shell out extra large salary increases unless you make them crap loads of profit. Switch companies every few years in beginning of your career and then settle at a good company later.
Excellent advice, and all your points are very relevant. I could debate the education point a bit. It may be different in other parts of the world but in the US a degree has become very expensive, which often leads to graduates having debt upon graduation, which leads grads to choose jobs based on compensation instead of where the best professional learning opportunity is, and this leads to a mercenary mentality of the workforce trying to make up for the money spent on the degree. I value the time I spent in college and I’m glad I completed my degree, but I’m not sure it is right for everyone. I’d really like to see apprentice programs for aspiring software pros in high school, and I think that will be more common in the future.
Thanks for reading, and again, excellent points!
I generally disagree with the point that a degree is required for management and career acceleration. That might be the case in some corporate structures where education is baked into hiring policy, but in my experience companies that are heavily software product oriented tend to look at the skill and experience — especially but not limited to — internal promotion.
This is a bit anecdotal, but look at technology leaders like Bill Gates and Steve Jobs who who did not have a degree. These guys were successful, not because of their education, but because they were smart and focused their energies on being remarkable. I’d argue that the extra time spent on open source projects or high profile personal projects, and developing a good quality on line presence is more worthwhile and certainly less expensive.To any smart company, an industry leader with an awesome portfolio and no degree is going to be far more valuable than some random guy with a masters, and little more to show. Not that education is useless — it’s just not automatically the best career move for a senior developer who lacks a degree.
Just to be extra clear, I’m not suggesting young developers skip a college education. If you’re young and do not have much experience behind you, a lack of education is likely to be a major obstacle. I’m referring to senior developers who are considering going back to school.
Well said, and I tend to agree. I see too many engineers focus on an advanced degree where they might get more miles out of an active GitHub account, some meetup or user group activity, and some self-study.
What’s a reasonable salary for someone who only knows HTML and CSS pretty well?
I can’t answer that without much more info, and even with all the info I’m not going to be your best bet for that kind of answer.
Great read thanks for this !!
Very good article. I completely agree with the importance of github profile and projects to show at the interview. It helped me get a great job in the past.
As you mentioned it is good to keep in mind that work/life balance is an additional cost for an employer and if he requires this he has to pay you more. I think most developers don’t realize this fact.
Just out of curiosity and based on previous comments. Do you know how hard it is for a developer from Central Europe to get a well-paid remote job from US based company? What are the possibillities? How to find this opportunities? Are there any legal and organisational problems?
Thanks for the article.
Thanks for reading. I’m not an authority on overseas remote work. The people I know that have done it usually worked in the US for some period and then moved to Europe and set up a development shop. I get emails from European shops asking if my clients want to send them work, but I am not the best person to answer about how to find work or legal issues. Good luck.
Excellent article Dave. Between your points and some of the astute additions in the comments, this sums things up quite well. I have been a hiring manager for many years now and have probably hired close to 100 developers (and interviewed countless others). The additions I would make are:
– “Soft” skills – Especially for more senior roles, I place a lot of value on things like communication skills, ability to lead, etc. Most people don’t seem to realize that these are also things that can be greatly improved through reading, education and practice. If you are pretty established technically, the next time you feel like spending time to learn the 17th new way to put data in a database (just as an example), instead read a book on leadership, personality styles or communication. Besides helping you to earn more, it will make you a better person.
– Work for smaller companies – Smaller companies (especially ones that are growing) have more flexibility to make significant comp adjustments. At big companies it can be very difficult to even get a 10% raise due to processes and rules and 23 people having to approve everything. Early in my career, I worked VERY hard on increasing my skills at a much faster rate than pure years of experience would gain me in market value. I did so at small companies. My salary trajectory went something like (each % is of then current salary, so there is compounding in these numbers too)… 25% raise 6 months after I started. 40% raise another 6 months later. 10% raise another 6 months later. Got laid off. 20% raise with the new job I got. 10% raise a year later. Total of 20% raises over the next 2-3 years. Rate of increase has slowed since then (couldn’t go on forever), but add that all up and I tripled my salary within the first 5-6 years of my career. Granted, that came with ascending into management too, but this NEVER would have happened in large companies…
Thanks. I mentioned somewhere else (Hacker News perhaps) that I think I lumped soft skills in when I referenced similarly skilled as soft skills are sometimes as important as the tech chops. I could have mentioned soft skills and leadership or even charisma. All very important.
Small companies, in my opinion, tend to produce strong talent when they turn junior engineers into intermediate and senior level. The small shop generally allows for wider responsibility and the need to work with fewer resources. I regularly encourage young developers to consider startups not for the chance of a big payday but for the learning experience.
Startups are excellent place for new engg. to learn and sharpen their skills but dont you think that it has a down side too ? given the fact the most startups fails. It raises the probablity for any given “starter” to invest 2-3 years in a failed startup, leaving a bad mark on his/her resume for next employment, compounding it further if he/she has consecutively work for 2-3 failed startups..
Ahmed – Working for a failed startup isn’t necessarily a blemish on a résumé, and being a part of a failure teaches lessons. The blame for failure rarely is placed on engineers anyway. Startups aren’t for everyone, but fear of failure hurting future job prospects is irrational.