If you're a software developer, you are almost certainly charging far less than you could be. You can and should increase your rate — not only will you be happier, you'll also produce better work.
Fair warning, the advice in this post is not for everybody. This is the guide I wish somebody had given me five years ago, and the person I was then may not be the person you are today.
This post is for you if you...
- Have at least a couple of years of programming experience
- Are somebody who loves software development, but see work as a means to an end
- Are actively looking for ways to make more money
- Are willing to commit to significant change to do so
- Are willing to go outside of your comfort zone and learn hard new things
It's not for you if you...
- Are a brand new software developer or haven't found your first role yet
- Have been hands off from the code for more than two years
- Value what you're doing and/or who you're doing it with more than the money
- Are comfortable with your current income or are not motivated by money
Okay. Still with me?
Here’s the deal: every developer has two jobs: writing code, and finding people to pay them to write code. Most developers know about the first one, but far fewer developers realize they're working the second job too.
As the old sales adage goes, good marketing and a bad product beat a great product with bad marketing.
Become good at marketing and selling yourself, and you will make more money.
So, how do you do that? Let's dive in.
Table of Contents
-
How I increased my rate almost 5x in the last three years
- Stumbled into web development fairly young and was very unsophisticated
- Took the first job I was offered, and stayed there for three years
- When I finally quit that first job, my rate skyrocketed
- Now I make 4.7x what I made three years ago
- Some might argue that this isn't a lot, but it's by choice
- I didn't start at Google or have a degree in computer science
- I didn't move to Silicon Valley — I live in Rhode Island, near my family and in-laws
- I work remotely, when and where I feel like working
- And the best part? It had nothing to do with luck and everything to do with tactics
-
Change jobs at least once a year
- It's impossible to sell what isn't for sale, so you should always be available for hire
- Company loyalty is no longer a valid concept (if it ever was)
- Moving around frequently expands your network quickly, and a network is crucial
- It works better for contractors / consultants more than for full-time engineers — more on this later
-
In the early stages, find work by talking with recruiters
- People often refuse to talk to recruiters — don't throw away a resource
- Post your resume online, or reach out manually to recruiters if you can't
- Don't give references if you're in a sensitive situation with your current job!
- Be aware of recruiters' priorities and how they relate to your priorities
- Recruiter needs to get people hired at the lowest rate possible, as quickly as possible
- Depending on the quality of the recruiting agency, these numbers may vary
- Need to avoid passing incompetent people to their clients, as this will make them appear so
- Learn sales and bargaining to negotiate confidently with recruiters and hiring managers
- Be prepared to be negotiated down from your initial rate — "giving face"
- Don't cave too far on the rate you quote a recruiter, they are very good at getting you to do so and talk to people all day doing this
- Keep your finger on the pulse of the market (and your own value) by collecting information from recruiters — always pushing a higher rate
- Everything you say to a recruiter can and will be used against you
- Confidence is critical
- So is being rehearsed
- Practice, practice, practice — talk to every recruiter who reaches out to you
- There are many companies with no HR department who rely on contractors for everything, including hiring other contractors
-
Learn and use sales tactics to sell yourself
- Doesn't mean being a sleazy car salesman
- You must get comfortable with speaking to people on the phone
- Paint a consistent, compelling, and true story about your history, skillset, and motivations
- Pick a niche and own it
-
Leverage scarcity when negotiating for a new role
- When ready to look for work, NEVER accept the first offer
- Rather, wait until you have two or three offers lined up at the same time
- Creates a reality (as opposed to an illusion) of scarcity
- Multiple recruiters' / companies' offers playing off each other
- The more you are wanted, the more you are wanted
- Can significantly increase your rates (potentially even double)
- https://haseebq.com/farewell-app-academy-hello-airbnb-part-ii/
-
Find work with medium-size corporations instead of startups or household names
- Don't work at a startup — startups optimize to get as much done as quickly as possible and with as little money as possible
- Corporations optimize to prevent making mistakes, and are willing to spend both time and money to avoid them
- However, FAANGs often have stringent requirements like location, and/or can be hard to get into
- High salary comes with living and working in a high COL, which offsets the value
- Less autonomy and freedom comes with more responsibility with the higher rates working full-time at a FAANG
- There is also more competition because FAANGs are "cooler"
- Contract with mid-size corporations who need talent
- They also still have growing pains where you can be of true value
- Live in a low COL area, charge in a high COL area
- I live in Rhode Island, and charge Boston / New York rates
- Georgia / North Carolina are hot right now (doesn't only have to be tech hubs)
- You should probably be working remotely
- Not true for everybody, of course
- Prioritize working asynchronously like many of the best clients and smartest developers
-
Start your own company, only take contracts, and pay yourself benefits
- Bill corp-to-corp — cuts fluff out of the cash comp (no, I don't care about ping-pong and free beer)
- Mark up an extra 17% to 25%
- Pay for your own health insurance
- Leverage your parents' health insurance if you can
- Get business insurance and a business bank account
- Read your contracts and be prepared and able to negotiate where necessary
- Most of the time — the vast majority of the time — you don't need a lawyer
- Know what the norms are and how contracts are structured
-
Keep your resume optimized to generate job offers
- Keep your resume under two pages
- List past experience that points to the story you're currently telling
- Don't list your real age and don't list your oldest experience — ageism
- [...more resume advice, sharing my resume] (see bottom of page)
-
Optimize your LinkedIn profile to attract recruiters
- Collect LinkedIn reviews
- Consolidate your contracts under one company
- Turn on the #openforwork option
- Connect with lots of people (at minimum 500)
- [...more LI advice, sharing my LI]
-
Value your network, but don't rely on it (yet)
- When composed of past clients, your network has a value / rate threshold that is largely static
- You should be constantly increasing your rate, while your past contacts expect you to continue to work for a lower rate
- If you continue to rely on past clients for work, you will freeze your rate climb
- Still, your network is your ticket out of working with recruiters, so your network should grow with you
- Eventually it will sustain you but right now it is still too small, especially if you have been in one role for a long time
- Find a mentor. Mentors don't just make a quantitative difference, they make a qualitative difference
-
You, personally, should be charging more
- Read Patrick McKenzie on "you should charge more".
- So many people under charge for their work that you are almost certainly part of that group
- Information arbitrage — companies directly profit from software developers not knowing how much they're worth
- Push your rates to see how much you can get away with
Still with me? Thanks for reading so far. This is the table of contents / high level draft for a book I'm writing on how to improve your career as a software developer — the full book isn't released yet, but you can sign up for updates and prerelease chapters, and you can follow me on Twitter.
Originally posted here.
Extras
- Be careful not to burn any bridges. You never know who you'll run into later down the line.
- Avoid local maxima WRT rates both geographically, in terms of your network, and in terms of your tech stack
- Take one step back to take two steps forward if you have to
- What you get done is more important than how long you work
- How focused are you
- Deep focus
- Used to be pedantic about time down to minutes and skipped a lot of fun stuff while simultaneously being totally unproductive and stressed
- Learned about "Deep Work" (ala Cal Newport) and immediately destressed + became much more productive, AND had more fun
- Don't be afraid to quit a job early
- If you are in a manager role or non-tech role, find a way to keep your hands dirty. Write code. This is CRITICAL.
- Standing up for yourself at your job (how to improve your work experience)
Top comments (3)
Well, that kind of depends on whether the company is loyal to you.
Yeah, absolutely. I guess the point is that most companies are not loyal to their employees anymore -- at least, in the software development world. If they are, it's because they're underpaying their employees and want to retain them.
Modern HR departments, the profit motive, and the legislation & stockholders that create them, may have destroyed much of whatever of this there was, to begin with, in the name of standardizing employment relationships in the slow creep of central control of with whom and how we associate.
But the picture becomes more nuanced in smaller businesses, co-operative concerns, or early stage start-up companies, where a tighter knit brotherhood mentality is more possible.