DEV Community

Cover image for When Is the Perfect Time to Move on as a Developer?
Alex Fedorov for Foundsiders

Posted on • Originally published at foundsiders.com

When Is the Perfect Time to Move on as a Developer?

If you want to have a simple, easy, comfy, safe and secure job, then stop reading this post right this moment!

Still here?

Good. Let’s do this then!

20yrs of experience or 1yr repeated 20 times?

If you’ve been a developer for a while, you probably have noticed that there are folks with double-digit experience in years.

But they are not as good as you wish they were.

They focus on wrong things, they are stuck in the past way of doing things, and use outdated technology, or want to spend as much as possible of their time in the meeting.

(so that they don’t have to do actual work).

There is a term in the industry for these developers: “1 year of experience repeated N times.”

Of course, it’s not so black and white, and you can have somebody who has legit 3-4 years of experience, but then they got stuck in a situation that didn’t really allow them to acquire new skills, and they were repeating these 3-4 years (or subset of them) for a while now.

So we have a whole range, from people who are plain harmful to the team, product, and the company, who just want a safe and secure job and do as least work as possible.

And somewhere in the middle, we have well-meaning folks who have lost their ability to learn new things, improve, and are terrified of stepping outside of their comfort zone. They may be a good worker or inadvertently block others from improving and delivering value quickly.

Finally, you have someone who had 20 years of experience, and this experience was always unique, challenging, and still extending their comfort zone further and further.

These are top performers who help each team member around them and deliver exceptional results. And if you ask them tomorrow what they learned yesterday—they’ll always have something interesting to say.

Unfortunately, it’s way to easy to fall into a trap and get stuck in the middle, or even worse.

It’s way too easy to become “1 year repeated 20 times.”

When you finish reading this article, you’ll be well-equipped to prevent that from happening and even become exceptional with real 20 years of experience.

But before we jump into solutions, why not dive deeper into the problem?

Problem: wasting experience years

This problem occurs when you are wasting entire years of your experience, just doing a secure, comfy job, where you don’t need to challenge yourself or learn anything (or much).

One thing is to waste years entirely (sure way to become an epitome of “1 year repeated 20 times”), and another thing is to have the quality of these years of experience reduced.

What do I mean by reduced?

That’s when you are still learning a bit, and it’s a bit challenging, but it is way below what you can really handle, and it is not really stretching your comfort zone enough.

Real experience is gained outside of your comfort zone.

How does this happen?

For example, you may be good enough with the technology at your job, and you can handle 98% of the work with your closed eyes.

Then the process—it’s just working for you, okay, even though there are definite improvements that can be done to get 50-80% efficiency gains, but no—why touch what works.

Why risk it?

Why step outside of your comfort zone, and pull your team with you?

That’s the line of thinking that gets the person, the team, and the organization into the reduced quality of experience mode.

Also, the reduced quality of performance as a long-term result of this all.

Another problem with such complacency is that the longer you don’t step out of your comfort zone, the harder it’ll be to do in the future. Eventually, it becomes a terrifying step and almost nigh impossible to do.

Don’t ever let it get to this point!

The right mindset is one of continuous improvement and growth.

In this mindset, you’re going to be improving yourself, your team, people around you, product, codebase, and the company you’re in (and maybe even the world) all the time, with small incremental, but definite steps.

Of course, you’re going to fail.

And that’s good. Failures are the signs of learning, and of you attempting to do something very likely to be worth it.

People who don’t fail—do not learn.

This mindset is how you maximize your own experience quality and get the most out of your time and how you become a top performer.

Hello, dear skeptic

I know what you might be thinking:

It’s a terrible idea only to do new things, and only learn, because you have to become good at something via repetition and practice, before you can perform at a decent level.

If that’s what you’re thinking, I cannot agree more with you!

I don’t advocate limiting yourself to doing new things only.

Instead, you should get your existing skills to an excellent level until things start to get more comfortable. And that is the right moment to add some more skills or responsibilities to your repertoire.

This way, you always maintain a constant cumulative level of challenge while delivering excellent quality work.

Alright, let’s get technical with how you can keep ever-increasing the quality of your experience years:

Practice and get better at what you’re already doing

If you are already doing something well, and it’s quite easy to deliver your work, then it’s time to start challenging yourself.

How?

You establish restrictions:

  • Try to do it faster while keeping the same level of quality;
  • Try to improve quality, while spending the same amount of time;
  • Help others to do this better—become multiplier.

In essence, practice, deliver, fail, get feedback, learn from it, and improve.

Every day.

If you do that, soon you’re going to reach a point where the amount of effort and time it takes to improve is just too much for the increase of effectiveness or quality.

This is where you can start handling some more responsibilities:

Get more responsibilities

For example, you’re getting really good at 2 out of the 3 necessary skills to do your job, and your boss is pleased with both of your current responsibilities.

Then it’s time to look around you and see what should be done, but it’s not getting done, or not consistently, and no one is responsible for.

But your gut really tells you these things have to get done consistently.

Get the ownership of that. Just start doing that. Learn in the process. Take that responsibility.

Of course, you’ll make mistakes. But you have your saving grace—you’re trying to make things better for everybody around you.

Once you get 10-20% of the mastery of that responsibility and see some good outcomes, go to your boss and “make it official.”

If it so happens that there are no responsibilities around you to take ownership of, then you should go with a new skill:

Get more skills

For example, you’re handling all responsibilities that suit you, and all of your three skills are at the level where improving them doesn’t make too much sense anymore. They’re that good.

Then it’s time to hunt some more skills for your belt.

First, look at what new skills you want to have (try to guess what you may need in the future), or what you think you’ll love to do.

Second, take a look at your environment, what skills are lacking in it? That’ll be beneficial to either the team, product, or company as a whole.

Now, intersect the two. What’s left is what you should be learning, practicing, and start applying at your job.

Again, practice, deliver, fail, get feedback, improve, and repeat.

Now, there is a dark side to all of that. Let’s chat about it:

What you SHOULD NOT do

If you realize that what you want to learn doesn’t fit your current company or role, then forcing it into your job will bring a lot of harm to the people around you, product, and your company.

An excellent example of that’d be a new fancy programming language or technology. But you have to come up with almost implausible excuses to use it at your job.

My personal work ethics tells me that this is a horrible idea then.

Therefore, this is not something you want to do.

Don’t be too selfish.

But what if you see this skill or that responsibility as a vital component of your future career?

Well, if you really think so, then there is a solution for you:

It’s time to move on

For instance, you are in the unfortunate situation where what you want to get better at, doesn’t benefit your employer or your team (or even harms them).

Then it’s time to start searching for a new job, and if your company is big enough, investigate what other roles/departments you can move in, where it’d work well.

Your goal is to start learning and practicing it on your own (and in 10% time if you have that benefit at your company), but not force it into your day-to-day work (to do no harm).

In parallel, talk to people.

A lot of them.

Learn what companies are out there, and who may need your current skillset plus what you’re trying to learn.

Reach out to them and try to get through the interview process. You probably will have to play a number game, because, while you’re expert in a few topics, you’re still learning this one.

Look for something that will fit your chosen direction as best as possible, and where you, learning this on the job, will be precious to the team and a company as well.

I cannot stress enough—it’s going to be challenging.

And it’s well worth it!

Also, since you are changing roles/companies, it’s an excellent opportunity to negotiate a higher paycheck. For example, with this website for developers you can share your salary info and find out how much people earn at the other company you are negotiating with.

Finally, depending on your aspirations and goals for the future, it may be a good idea to start your own thing:

Go independent

If your ambitions cannot be satisfied anymore by any organization around you (or even remotely, in a different country), then you’re likely to be ripe to go independent.

What do I mean by that?

Well, there are three options:

  • become a freelancer,
  • start your own product company,
  • start a service company or agency.

There is, of course, a whole lot to learn there. And a lot of potential failures to encounter.

And that’s good. As we established, this increases the quality of your years of experience!

There are trade-offs to these options, and probably more I haven’t thought about yet. I’m not going to cover these in this post—it’s already getting long! (sorry about that)

What I should tell you, is that there are few things you should do before going independent:

  1. Make sure to save some money for N months—you need that runway because success won’t come on day one.
  2. Line up a job or contractor opportunity in N months for the worst-case scenario where you have failed a lot of times and never succeeded getting anything off the ground.

Just remember, failing is not a bad thing. If you are failing and failing often—that’s great. (Just don’t forget to learn and improve between failures).

It’s much worse if you are not failing for a long while, only to run out of all your saved money and realize that the whole venture was one big failure, and you haven’t had an opportunity to learn from it. And now it’s too late.

  1. Get a mentor. Almost every successful independent person had a mentor. That’s one of the primary ways you’re going to get feedback on what you do and improve.
  2. Seek external feedback as often as you can. Sometimes, in business, what appears to be a failure to you, may actually be a bud of the enormous success that you can’t see because you lack a specific type of experience.

That’s the hardest path, and it’s well worth the effort. Good luck, and let’s summarize:

Conclusion

As you know, some folks have 20 years of experience, but actually, just one year repeated 20 times. Let’s call it “the left side” of the scale.

And then there are outstanding professionals, who have only, what 7 years, but all of these years are unique experiences that make them exponentially better than the former. These are probably top performers in their field. Let’s call it “the right side” of the scale.

(pun intended)

And then there is everything in between.

So how does one get closer to the right side?

  1. Don’t chase only “new and unique” all the time—make sure you actually get good at skills and responsibilities before you add more things to your repertoire.
  2. Challenge yourself every day. Be ready to answer the question “what did you learn yesterday” with something substantial. Perhaps add “how did you fail last week” to the list of these must-be-able-to-answer questions.

In fact, answer these questions every day, if you can help it.

Never become complacent and have an “easy job.”

  1. Get more skills that’ll help your team/product/company to become more successful when your current skillset starts to near the “easy job” state.
  2. Become responsible for more (and more important/challenging) things.
  3. Make sure that what you’re adding to your “toolbelt” is actually valuable to people around you, your product, your company, or your customers.
  4. If your path forward makes the above not true, then it’s time to switch a job. Don’t forget to negotiate a larger paycheck, as this is the easiest time to do that! Use this to find out what is the pay at the company you are negotiating with.
  5. Finally, if such a company doesn’t exist (or is inaccessible to you)—then create one! Become independent.

Now it’s your turn!

Quality of the years of your experience is entirely in your hands. Don’t let weak excuses make you think that somebody else is responsible for your career.

You are the only one.

And you owe yourself to get as close as you can to “the right side” of this experience scale.

So get out there, and never ever stop learning!


Photo by Joshua Coleman from Unsplash

Top comments (27)

Collapse
 
bacchusplateau profile image
Bret Williams

I found myself pushed into management by my company and slowly over 10 years my technical skills rusted and I became slow and sloppy coding. Recently, let's say 2 years ago, I picked up a Swift book and taught myself how to make iOS apps and games and it was incredibly inspiring and fun.

I'm curious what advice developers have for managers who manage development teams so that they can stay technical. I study on my own time on the weekends and tinker with Swift but I feel like when I leave this job I'll have to go to a bootcamp to get up to speed again. I've looked at job postings for managers and surprisingly most of them require you to be a super star coder as well as a fabulous project manager and people person.

Collapse
 
waterlink profile image
Alex Fedorov

Hey, Bret!

You are not alone! Most of the engineering managers who I know (and who are good people managers) miss coding.

A simple solution would be some retreat once in a while, where you get together with other developers (or engineering managers with the same problem), and code away, or hack something up. This could be a hackathon or coding-dojo/coderetreat format—these are extremely fun!

You can organize such events internally in your company, join/hold community ones, and even probably go to conferences where there are such full-day activities.

I have even more thoughts and ideas about this and how this can be done. If you are interested in chatting about it (in person or video call), drop me a line via alex [at] foundsiders [dot] com!

Best,
Alex

Collapse
 
sujaykundu777 profile image
Sujay Kundu • Edited

That's a great article ! Thank you ! The entire article was very relating, and I believe this is the dilemma that is faced by most of the developers

Collapse
 
waterlink profile image
Alex Fedorov

Thank you! Do you have a particular example from your experience?

Collapse
 
renesansz profile image
Rene Padillo 🇵🇭 • Edited

great article, I can somehow relate a bit with 1 year repeated 20 times, however on my end it's more like 1~2 years every company. The problem I have before is not that I am not learning anymore but the financial problem side where I was like more underpaid and somehow it's not worth it that I am having a lot of responsibilities for a small pay.

Collapse
 
waterlink profile image
Alex Fedorov

Maybe there is a skill you could have developed to fix the underpay problem? ;)

(spoiler: it’s not a software development skill).

Collapse
 
renesansz profile image
Rene Padillo 🇵🇭

no, actually it's how the company was earning money.
imagine being paid once a month + 1~2 weeks delay.

Thread Thread
 
waterlink profile image
Alex Fedorov

That doesn’t sound too good. Likely, the business model wasn’t very sustainable, and they have made it possible by underpaying. Was the company, at least, a place where a beginner can rapidly learn? or not?

Thread Thread
 
renesansz profile image
Rene Padillo 🇵🇭

well, atleast during that time it was a place for beginner to rapidly learn, most of it were self-learning since no one at my company was doing front-end web development. A year in working in the company did help me a lot with boosting my experience, but yeah the pay was so terrible that I need to find a stable salary.

Thread Thread
 
waterlink profile image
Alex Fedorov

Okay. At least you got something out of the engagement—that’s great!

Collapse
 
andrewbrown profile image
Andrew Brown 🇨🇦

I am 3 months x at 15 years = ~45.

Collapse
 
waterlink profile image
Alex Fedorov

I am a little bit confused… Is it 3 months repeated for 15 years? Or something else? Could you write a more detailed comment? Thank you in advance!

Collapse
 
andrewbrown profile image
Andrew Brown 🇨🇦

I've created 40+ production application in that time frame generally on 3 month time lines.

Thread Thread
 
waterlink profile image
Alex Fedorov

Is there also some drawback of staying only for three months with a single application, and then moving on? What do you think?

Thread Thread
 
andrewbrown profile image
Andrew Brown 🇨🇦

I would say heavy production for 3 months, but many were maintained long-term, just not needing active development some as long as 10 years and still going.

When you are focused on putting that many apps into production you learn to go vanilla, find more reusability, carefully choose projects where you can stack effort.

At that speed, you can't stagnate since you need to keep pace.

Thread Thread
 
waterlink profile image
Alex Fedorov

Got it. Makes sense! I’m curious, have you been doing this alone, or was it a team effort?

Thread Thread
 
andrewbrown profile image
Andrew Brown 🇨🇦

I started alone and became a 10 person team (my company), but I was out churning apps and felt my existence was to supply paychecks for people who wanted cushy jobs and building passive income apps that never worked because the clients were just in it for the money.

Thread Thread
 
waterlink profile image
Alex Fedorov

I’d like to understand you better:

What do you mean by “the clients were just in it for the money?”

Were you building passive income apps as a company for your clients? Or were your employees building passive income apps on the side, while having a good paycheck at your company?

Collapse
 
miteshkamat27 profile image
Mitesh Kamat

Great article !!!
My takeaway ===> practice, deliver, fail, get feedback, improve, and repeat.

Collapse
 
waterlink profile image
Alex Fedorov

Yes. That is the main point. But also, a reflection upon your environment is essential as well. Whether it’s the right environment, and what learning opportunities are there, and whether it’s a good idea to create different ones (do no harm principle).

Collapse
 
miteshkamat27 profile image
Mitesh Kamat

Agreed !!

Collapse
 
wideawakening profile image
Iru.

Good article! I wonder if you have any resources about how to be mentored. Not everybody has contacts that can help, and it's quite a personal thing ...

How u ppl deal with this?

Collapse
 
waterlink profile image
Alex Fedorov

I go to as many events as I can (limited to my energy levels and mood swings), and network with people. Because networking is hard for me, I use this cheatsheet to hack it a little bit (written by my co-founder).

When I find somebody interesting (who I can learn from, or who can learn from me, or both), I schedule a coffee chat with them. And that’s how I start these types of mentoring relationships (potentially bi-directional).

Also, once you know someone, and they are aware of your current and future challenges/problems, you can ask them, “who do you think I should also talk to?” And then ask them to make an introduction.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

This is a awesome article :)

Collapse
 
waterlink profile image
Alex Fedorov

Thank you!