2x2: How To Exponentially Grow Your Programming Career

Do you know that your career can grow exponentially in Software Engineering? 
There is a statistical rule for high-performers in our industry, which says that you can double your compensation every two years 😱 
Hence the formula: 2x2

Give it a thought for a moment. How does your growth fit this curve?

There are several catches and things which need to be clarified. 
 To be able to grow this fast, you need:

  • Optimize your life around career
  • Be open to moving around the world
  • Have a well-defined specialization
  • Be ready to shift specializations and take advantage of hype waves
  • Negotiate all job offers
  • Change jobs often (no less than every 2 years)
  • Have a side gig (side projects, additional freelance projects, etc)
  • Have an expert community to get help from

Having an optimized lifestyle these days may allow you to grow up to 400k$ a year (in total compensation, US, data science/engineering in a corporation) having 10 years of experience.

Let’s talk about some specifics so that you better understand all tradeoffs.

Optimizing for a career.

This means that you will think about your career, achievements and ways to market it all the time. Most probably you will sacrifice some other parts of your life: health, family, sustainable emotional well-being. 
 You will optimize your free time for studying and getting new experience, as well as creating a public image and recognizable personal brand. You will start thinking about business and not solely about programming.

Moving around the world.

To get the doubling effect, you most probably will need to pursue unique opportunities around the world, following the market and demand changes. 
 If you are tied to a single geographical market, then your growth formula will be 1.5x2 
 For example, in Germany your compensation progression may look like that: 30k — 45k — 65k — 95k — 140k — 200k

Specialization and switching.

Specialization is what humans are good at. It is the easiest way to market yourself and learn many valuable skills. You will arrive to a specialization naturally during your career (read about it in the book “So Good They Can’t Ignore You” ). If you want to have exponential growth, you will have to deliberately develop your expertise in a given area. 
 Getting the fundamental knowledge and generalization will make it possible for you to switch the specialization and start investing in a different area faster. Potentially, you will need to do that to use the rising tide of a hot trendy specialization (e.g. transition from a web frontend developer to data engineer).

Job-hopping and negotiating.

Most people getting more than average compensation are negotiating their offer. Negotiations is a tool that most software engineers ignore and are afraid of. 
 Job-hopping is the best way to get a significant compensation raise. You can read about it in this article or in a must-read book “Fearless Salary Negotiation”. Also, job-hopping will allow you to amass more varied experience.

Having something to do on your spare time (apart from learning new stuff) will help you to get more diverse experience in those areas, which you will potentially ignore during your day job (e.g. marketing, user support, different tech stack, different business domain). 
 Why have I highlighted diverse experience twice already? I could not explain it better than Kathy Sierra in her amazing talk.

Being a part of an expert community.

This part comes naturally to some people but feels quite unnatural for others. Communications are the major part of any human professional activity, software engineering included. 
 Expert communities and mastermind groups will allow you to solve problems much faster, find resources, support and mentoring. And once again, it will expose you to the contexts and experience you may have never seen before.


Ok, here is the question: are you ready to spend 10 years of your life focusing on your own career?

This questions will probably raise other questions as well:

  • What do you really want from your life?
  • What makes you genuinely happy?
  • How much money is enough to have a decent life?
  • What are your core values? How do they compare (family, money, recognition, honesty, joy…)?

These are the questions we ask at MTDV. This is where you need to have as much clarity as possible to be able to rule your career.


This post was originally published in our MTDV Patreon blog
Join Metadevelopment if you want to learn more secrets and lifehacks in Software Engineering.