Should you be changing your job every three years?

IT is a fast-moving industry. If you work in a large company, you will see people come and go every week. The average length of time at a job at the industry is 4.6 years. However, this average include 60 years old COBOL programmer dude in a small bank’s IT department. If you move them out from the average, for programmers at the age of 25 to 34, the median tenure is 3.2 years. All guys are changing jobs.

Leaving a company is hard. Programmers know that we develop a connection between our products and us since long hours we are devoting to develop them. A factory worker’s focus may change from one product to another for every few minutes, but it may take years to develop a single working product in IT. Thus, we feel like our projects are our childeren. Hell, you may be seeing your project more than your actual child for an average day. But you have to move on.

On the contrary, joining to a new company is nearly always thrilling. It’s like giving birth to a new child, or sometimes it is like adopting one. New technologies, new people, new dynamics will get you moving.

Whether it is a sad or a joyful story for you, every once in a while we change jobs. Changing your job is a possibility at all times, and you must be ready for it. In this article, I will talk about both pros and cons of this situation to help you decide when the time comes.


It’s good for you

Changing your job can effect you in a positive way. Here are some major positive points about it:

It’s good for your paycheck

According to Forbes, job-hoppers are likely to earn 50% more than loyal employees. It is a no-brainer, almost nobody moves to a new job with a downgraded paycheck. Like the loyal ones, you will get your yearly raises, plus the job hopping bonus that I’m talking about. And believe me when I say that these bonuses quickly add up since your annual raises also will become more and more.

It’s an oppportunity to get faster promotions

All companies will offer more money than your last job to you in order to get you. Some will do more. From their perspective, getting the right employee is hard enough to offer early promotions. However, when the time comes to promote their own programmers, companies act slower. Thus, if you are aiming for the top positions, hopping jobs may be helpful to you. Also, like the paycheck, the title you earned with your new position rarely goes away. For a junior programmer, it may take five years to get the title “senior”. However, changing your job at year three will probably get you that point.

PS: This is something I did at the previous year. I was working at the same place for three years, and it felt like I’m not going to get a promotion. So I asked to a superior, and confirmed that I’m not being promoted a while. Than I started to look for a job. After a short period, I started a new job with the title upgrade. Also my paycheck get upgraded a lot.

It will improve your skillset

Changing your job every once in a while will add new experiences and skills, both in technical, and social perspective. Here’s how:

Yay, new technology stack

After a few years, you will be competent at your current company’s tech stack, and also domain. Staying there more will add no more to your skillset. However, moving to a new company will definitely improve your cummulative skills, since no two company will be using the exactly same stack.

New processes

All companies have their own way to handle things. Hopping jobs will give you clarity to see pros and cons of every approach. For example, transferring from a waterfall-using company to an agile one may change your point of view since both approaches will have upsides and downs.

Hobbies becoming jobs

We programmers tend to study at home, too. However, these hobbies rarely make their way to your worklife. While changing your job, these may be included to your job description. I’ll give you an example from my own experiences: I’ve worked to a company that develops windows services, but I was also interested in embedded stuff. For my last job change, my work became embedded programming, even board support. So, by the day, I’m fed up with the low-level shit and move to my back-end programming hobby, which may end up my next job.

You will be controlling your career

This is pretty simple, if you’re bored with this tech stack or domain, just move on to the next one. Eventually, you will find what is most interesting to you.

It’s good for your company, both current and new

It is pretty clear why your new company will benefit from arrival of a new employee, but your old company will also benefit from your leave. Here’s how your companies will be effected from your leave:

Your current company is prepared anyways

Nobody is irreplaceable. The documentation you left, and their onboarding processes will make your company rock-hard about your leave. One of the main reasons of your documentation efforts is to make your replacement programmer adapt fastly. Stop worrying about the company you left behind, they were preparing to this from day #1.

You will be relieving your current company from some financial setbacks

Your leave is a financial surplus to the company, believe it or not. This is both in the perspective of your salary, and your extra benefits. As the salary, after a few years, you will be earning more than newly-recruited people at the same position at you since you start to pile up your yearly raises. Replacing you with a fresh-starter will be cheaper for your company. About the extras, in some countries, getting rid of employees may cost too much. For example, in my country (Turkey), when management fires an employee, they need to pay him/her a month’s salary for every year that s/he is worked there. That adds up pretty quickly. Remember the guy I mentioned at the beginning of the article that uses COBOL? If company fires him, the fee of compansation could be his salary of the next 3 years!

Your future company will acquire brand new experience and skills

Things you’ve learned at all your old workplaces is a powerful asset for your new company. Both technical and organizational stuff you’ll bring with yourself surely help your new company to improve. I’ve seen companies that recurit scrum developer team members just because they wanted to implement this management technique.

Dynamisism in general is good for both of them

As you see, companies will gain both experience and money from your job changes. So, there’s no need to be afraid or extra committed to your company.

It’s good for the industry

Your new job will help not just you and your companies, it will effect all of us. Here’s why:

Information movement increases

You will not only carry new information to your company, but also you will spread it. The guys that will work for you will move your experience to their next jobs, etcetera, etcetera… Next thing you know, the industry’s cummulative information increases and it thrives like never before.

At the end, you will be a help to more than one product

If you look at the product perspective instead of industry perspective, you will be helping more than one product, which will increase total revenue of the industry. Oh, look! Even if I am not thinking about the industry, I am!

However, the job changes are not always beds of roses. See why:


Extra luggage you carry

After every job experience, your expectations from your new job changes, good and bad.

Previous misfortunes

A shitty experience at the prior job will likely to effect your next job. People with bad developer habits that they get from their old jobs may try to move their shitty ways to their new job. There are a lot of companies that do not develop documents, tests, etc. If you’re a tech lead coming from that kind of company, we shouldn’t expect that you to change this bad behavior at your next job. This luggage may also be emotional, rather than technical. For example, tough code reviews may turn someone completely fine into a shy person about pull requests.

Future “misfortunes”

People worked at organizations that are all friendly and helpful against their employees may set their expectations so high, their next jobs may not satisfy them. For example, an employee leaving from a company that gives him/her payed leave for “being bored” will find it hard to adjust to the new employer, which is a regular one instead of that fairy tale.

The adjustment period

Changing jobs are not natural to us, so we all need an adjustment time to our new jobs. During that time, we are not that productive, examining codebase, reading documents, etc… It may feel unnatural to be not performing, but in time you will be. Also, in most of the companies, you are not expected to be productive at that period. However:

Could take a month or two

Some companies’ on-boarding process is just shit. Sorry to say that, but my two previous companies were two of these. Here’s what I’ve experienced on them:

#1: The codebase is passed to me, undocumented. There was no tests, no documents, not even a meaningful comment. There were at least five different anti-patterns in it. I couldn’t get a computer for a week since they placed the order with my arrival. After getting it, I couldn’t get my credentials to login for a week from the IT department since the “department” was a guy that is on vacation that week. Then, I was just able to check my mails from it, since I was not a local admin and cannot install shit. After weeks of effort, I get my permissions to install things I need to install a month after my start. Then I work on the codebase for a month to understand it. It took me two months to place my first pull request. That two months was like H E L L !

#2: I was given a 700 page book to work on “embedded linux devices”. I spent two weeks perfecting my information on the book, then I was given a job that includes only developing pci-e drivers for the products of the company. I was able to perform such a task without studying! Anyways, I’m not complaining about reading a book. That was certainly better with respect to the other job.

The long resume

The previous job experience pile up pretty fast if you are a job-hopper. And, unfortunately, it may effect your carrer by:

Fossil-minded people will judge you for changing job

There are always companies that are run by old folks, thinking the company as a family, or employees as soldiers(Yeah, I’ve heard this before). For this old guys, changing jobs is a read flag somehow. When they hire you, they expect you to die on the company, and your resume will tell otherwise. You may end up crossed out for some jobs just because of this.

You “could” look incompetent

Some people think you as technically or emotionally incompetent because you’ve changed a few jobs. These people are the ones repeatedly asking you the question “Why have you changed so much jobs?” or even “Are you a tough person to handle?”. Damn right we are, but not in a bad way!


To sum up, the job-hopping strategy has its ups and downs like presented above. There are also lots of other pros or cons about it, and I’m happy to edit the article if need be. Pass your additions in the comments if you think it should make on the list.

I hope this help you to decide on your career somehow. Visit my homepage here for more. Wish you a great day!

Leave a Reply

Your email address will not be published. Required fields are marked *