If you are a JavaScript developer this should terrify you.
Because when I work with developers, the first thing I realize is how underpaid they are.
The average JavaScript developer I talk to is around 30% underpaid. That’s because there is one giant problem with everything you heard about making more money as a developer.
Everyone recommends things likes:
- Selling your soul on Upwork chasing low-paid projects competing with hundreds of people for the same gig. Not my cup of tea!
- Wasting hundreds of hours as an “indie hacker” building an app that will die forgotten in another GitHub repo. The building is the easy part. Getting users is the hard part.
- Even building a YouTube channel with the same 5 step JavaScript tutorials as every “Influencer” out there making 2 cents per hour… Actually, is probably less than 2 cents.
While this advice sounds good in theory.
In practice, is plain bullsh**t.
The truth?
Most of that advice comes from people who either got lucky or are simply bluffing to increase their YouTube subscribers count.
Hell most of them don’t even know how to code well, let alone earn more from that code.
In reality, most of them already settled for what they are given. The other half is gambling the little they have on Bitcoin, stocks, and things they really have no idea about.
Look, if you did not get software architecture right yet what the heck are wasting time learning about stock investments?
And then there are the “Influencers” you see on YouTube claiming to make 250ks a year writing JavaScript for some crypto startups…
If you are making 250ks a year, you have no time for YouTube.
Ever wondered why you haven’t seen me much on any of those podcasts?
Simple.
Being an “influencer” is below my pay grade.
If you keep on reading I will tell you how to actually make a real buck with your programming skills.
With honest work.
Without burning out trying to become another YouTube star, selling your soul on Fiverr for 10 dollars an hour, or working on side projects that will never see the light of day.
I will tell you what to look for, what to say not to, and more importantly what are the most important skills to get to that level.
Let’s get down to business.
Now I suppose if you are reading this, you have some kind of ambition, you already have good enough programming skills and a strong work ethic.
If you never worked professionally as a programmer, this article is not for you.
Your time is better spent getting good at coding and applying to jobs.
On the other hand, if you have been working as a developer for a while, you probably observed how most programmers hit a plateau after a certain time. They stagnate both in salary level and skills.
It usually happens just around the mid/senior level.
Even seniors get stuck, it is just the reality of life (physicists call it entropy, I call it getting sidetracked).
Fundamentals first: to make big money as a developer you must work for people that have big money.
In tech, if we exclude the FAANGs, that will usually be established companies with big problems to solve and lots of cash in the bank.
Or smaller companies with big problems to solve and lots of cash in the bank.
I excluded the FAANGs, because despite all the hype and the obsession with this kind of company they employ a tiny portion of developers.
If you want to be one of the millions of developers applying for this kind of over-competitive job so you can make your mama proud, good luck! I would rather waste my life on more lucrative opportunities.
You will see I also stay away from little startups that promise you the world and give you equity so you feel special.
Equity will most likely not put food on your table any time soon, you are taking their risk with little reward.
Because even if the company is successful, programmers are usually the last ones in the queue to benefit.
So back to companies with big burning problems and a lot of cash.
How do you get there? And more importantly which are those companies and how can you spot them?
Let's start by saying you can find them, but most likely they will find you. This brings me to step 1 in this process...
1. Become an expert.
I’ve got bad news.
Most programmers don’t make good money because most programmers can’t really code.
Funny, right?
You wouldn't expect doctors to not be able to diagnose. Well, there is a huge difference between doctors and programmers.
First, is the selective process to actually get into medical school(with only the brightest fitting the bill).
Then there is the duration of the studies, which is nothing but short.
”Doctors must complete a four-year undergraduate program, along with four years in medical school and three to seven years in a residency program to learn the specialty they chose to pursue. In other words, it takes between 10 to 14 years to become a fully licensed doctor.”
We are talking about decades of preparation.
Doctors make great salaries because they spend years gaining rare and in-demand expertise.
Let’s be honest, most programmers today are galaxies away from this kind of level of preparation, yet their salary expectations seem not to adjust (looking at you crypto crowd hunting 250ks salaries writing “smart contracts").
Where did we think 10$ Udemy courses are going to get us?
Or McDonald's type of Bootcamps where everything goes so fast that after the 8 weeks people still struggle with the basics.
Garbage in, garbage out.
What’s more, developers, just like doctors, face the challenge of a never-ending sea of information with very little time to figure things out between their full-time jobs and all the other requirements of daily life.
So what can smart developers do?
As someone who “has been there and done that I can tell you there are 2 keys for you to gain long-lasting expertise as a software engineer.
Key Principle A - Focus
You only get 24 hours in the day.
You can get rid of some complexity in your daily life and squeeze one or two more hours, but that’s about it. This is why the only way to make real progress is by focusing on the right things to do.
You need to start looking at your programming knowledge like a financial portfolio, kill the losers and feed the winners.
What are the exact things you should focus on?
It depends on your technical level, your goals, the market you are in, and a trillion other factors. For a quick technical assessment, check the links at the end of this article.
“People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully.” - Steve Jobs
Key Principle B - Systems Thinking
Next time you feel overwhelmed by the information out there, think about this: you are feeling overwhelmed because you have no systematic way of managing complexity.
To become an expert programmer that can demand a high salary you must shift your thinking from thinking in frameworks to thinking in systems.
It is the only way you can stay relevant in a field where things change so fast.
Apply those two principles in your developer career right now and you will be amazed by how much faster you will be able to master the craft.
Only then you will be ready to seize the best opportunities out there which brings me to the next point…
2. Look for “bridges”
Most developers out there will aim to work for companies with nice names.
And guess what?
So does everyone else! Those places are extremely competitive, competition is cutthroat because there are always dozens of devs looking to get through the door and salaries follow that tendency.
Yet, as you can see below, money in the software business is made on the opposite ends of the technology adoption curve.
Only when you become aware of technological changes going on in the market, you can navigate it strategically.
Back to big companies with big problems.
The sweet spot is companies with tons of customers and a proven business model that somehow missed adopting new technologies in their stack.
They usually have loads of cash around, don’t have so much access to talent (most devs want to work for the hipster startup that just opened shop downtown) and they have a burning need to migrate their tech stack which became a business risk.
This means the C-level is highly willing to invest in getting that thing up to speed, and they need an expert to do that (YOU).
Heping the Dinos out of the Jurassic can be an extremely profitable endeavor for any developer.
Right now for example companies running on older stacks (like Java or PHP) would pay dearly to help them migrate to modern technologies (JavaScript anyone?). Whether you do that as an employee or freelancer, it doesn’t really matter, you will get extremely well compensated.
And you know what? There will always be dinos, and there will always be legacy code. You've been told time is not your best friend as a developer because tech advances quickly and you fall behind.
Well, guess what?
Same for companies. The code they write now will be tomorrow's legacy. Another point in favor of sticking with something for a long time!
How do you find this kind of company?
That brings me to the next and final point…
3. Market the sh**t out of yourself
You can be a rockstar programmer.
But, if you can't get your skills in front of the right people, you will die poor.
All developers I ever worked with (including myself early on) give a negative meaning to selling oneself or talking openly about money. Leaving aside cultural differences, this is probably because we are not used to dealing with money.
But mind this, the negotiation doesn’t start in the final interview.
It starts from the first time they check your LinkedIn profile and CV and give you a call.
Everything that happens after that, how you present yourself in the screening call, the quality of the code you deliver, and the answers you give in the technical interview are all going to influence your ability to negotiate.
Sure there is a lot of advice out there about how to negotiate.
How to never disclose your salary first and 100 different cheap tricks to fake a position of power in the process.
The truth is, you are dealing with people that negotiate on a daily basis, unless what you ask for is backed up by sound technical skills and a great professional image you are set for failure.
Do you know what’s better than that?
Not having to fake anything.
Being in demand at all times because you know your sh**t and people know you. Is as simple and as complicated as that.
If you don’t like the idea of promoting yourself it might be for two reasons.
A. You’ve been conditioned to think real life is like school.
You do your job, you get good grades and the accolades will follow.
Sorry to disappoint you, but delivering in the sprint, helping others, and showing up is what every developer is supposed to do. You did your job and nothing more (ask your manager about this if you want a reality check).
Life is not fair, I know.
That brings me to the main point: promote yourself because no one else will.
You don’t get what you don’t ask for.
Start getting used to the idea and change your mindset a bit. You will improve both your life quality and your bank statement.
B. You have a negative view of selling yourself and your skills.
Maybe you had some negative experience with someone constantly talking about themselves and being pushy.
I am here to tell you that you don’t have to do that.
What you have to do is make sure your “digital self” reflects your real self as well as possible.
Now there is a lot of advice out there about how to build a nice Github profile, pixel-perfect resume, and cover letter…
My answer: nobody freakin' cares. They don’t and they shouldn’t.
Because a pixel-perfect GitHub readme is not an indicator of skill, is an indicator of free time.
That is why I “outsourced” my own GitHub readme to my little sis, she felt proud in the end and made some extra bucks.
The people that will hire you will be looking for one thing only: proof of your technical expertise as quantified by previous experiences.
That means a deep, well-quantified impact that relates to your tech stack. The better you are at expressing that, the more they will see your value, and the more you will believe in yourself and stay behind the salary you will be asking for.
So here it goes.
Implement these strategies over a long enough period of time and you will become the engineer companies will feel stupid not to overpay.
Let's say you will get paid so much you won’t be able to tell your developer friends (without stirring the envy pot, lol). And the good news is you can start right away. I’ve put together some tools for you:
- To find your technical gaps you can use this free technical assessment here.
- To find out how you can effectively get to Senior Developer in a systematic way, I recorded this free training(it goes deeper into these core areas).
If you want to learn more about how you can become the “go-to” developer in your team, get to the senior level faster and earn more, make sure to subscribe to my YouTube Channel here. Every week we drop a free training video, we don’t have a fixed schedule though so if you want to be sure you get it, make sure you subscribe!
All right, I hope this article lived up to your expectations and I hope it added more clarity to what you are doing.
Your biggest fan,
Dragos