Friday, 19 October 2018

What is the best career advice for a software developer to earn a higher salary

Assuming that you work for a company of which you are not a founder, earning more money is a function of:
  1. How much your organization values you
  2. How much the organization is willing to pay you
  3. How much of your income comes in the form of of cash wages as opposed to stock options and other non-cash benefits (e.g. health insurance, free or subsidized meals, child care, etc.)
To keep things simple, I'll leave out things like home prices/rents, taxes, and other costs of living where you're located that can significantly your take-home pay. In other words, I'm assuming that what you care about is the amount you see on the paycheck.
How much the organization is willing to pay you may be higher than what they think you're actually worth, especially when they think about the time, cost and disruption that comes with replacing employees. That comes down to your ability to negotiate, the situation your company happens to be in, and the company's compensation philosophy. The composition of your pay tends to be less susceptible to negotiation in my experience, but I suppose is somewhat fungible as well if you are really dead-set on maximizing cash income to the exclusion of other benefits. However, since some of these things are unchangeable and I'm no expert in negotiation, I'll focus on #1: how valuable you seem to the organization.
Be a Steward of the Business, Not Just as a Technical Wizard
I'm not an engineer by training, but I have interviewed and played a part in hiring many of them in my role as a product manager. The ones that we have courted the most aggressively and given the most generous offers to were not just technically gifted, but showed that they could be stewards of the business. They knew how to think deeply about important problems for the business, and they could balance those concerns against technical constraints when they needed to.
In the management classic Peopleware, DeMarco and Lister astutely point out that most of the businesses we think of as "tech companies" mostly combine existing technologies to create products. Very few actually invent anything. That means that for all of the technical expertise that software companies employ, we are fundamentally in the problem solving and communication business. I have certainly found this to be true, and if you look across the landscape of most technology companies, you'll find that more often than not "proprietary" capabilities that are advertised are usually combinations of existing things. Not always, but often enough that it should make you think about what it means to be a valuable contributor to the business.
For the average software company, that means that its success or failure is likely to have more to do with product-market fit and managerial excellence than breakthrough technology. If you want to be valuable to a company, prove that you contribute to both the technology and the decisions and execution that will determine the company's long-term success.
Don't Settle for Being a Great Individual Contributor: Be a Leader
From Andy Grove's High Output Management, a manager’s output = the output of his organization + the output of the neighboring organizations under his influence. Even if you're not manager, you can still lead. You get leverage by effectively transfering insights and knowledge you have to the rest of the organization. You need to be a great communicator to make an entire team or organization better.
What does it mean to be a great communicator? It's about more than just documenting your work and writing long emails. It's about whether you can make your ideas understood, and make it easy for people to see the better future you've envisioned based on your understanding of the technology and the business. Communication is the way that you organize the world for people.
Of course, I'd be leaving out a lot if I didn't point out that part of this also has to do with presentation. This sometimes comes across as crass to engineers, but people need to trust you if they are going to give you salary increases and more responsibility. Earning that trust takes real effort, and the ability to show people that you care about the things they care about. Many of the "soft" aspects of career advancement depend in some way on your ability to build relationships and trust with people. Discount this at your own risk.
The Down and Dirty
I write regularly about how to make yourself make yourself more valuable to a tech company at the UserMuse blog. I especially focus on things that you tend not to see written down and don't usually come up in management books - especially for younger people who are just starting out:
I hope this helps, though it may not have been the answer you were expecting. Would love to hear your thoughts.

No comments:

Post a Comment