Typically, I work for an employer for around 3 to 5 years. At the start of each employment I make several successful leaps, often designing and building new systems (usually single handedly). I am rewarded with various pay rises, bonuses and promotions. Then around the halfway mark or later, things sour for a variety of different reasons. Typically, I will fall out with someone senior, like my line manager. It's normally over something mundane but definitely technical.
In each cycle I try resolving things in different ways but each time I fail; then I desperately try finding a new role with the knowledge that the whole process might repeat itself.
I can recall the various reasons the fallouts occured, e.g. frustrated by a boss's crony cancelling 3rd party supplier contracts (which I had to grovel to reinstate), having differing views about testing/automation (I am fond of both), how workloads should be spread more fairly, etc. There are many different reasons.
In the more recent cycles I just end up being entirely unproductive at the end.
Is it just me?
But still, after all those years, I don't feel bad about it. That's life and life is a mess sometimes. There are things you can change and there are things you can't. And most often a change takes quite a lot of effort or leads to nothing.
You need to distance yourself from this mess. This is easier if you first and foremost take care of yourself. Lead a good life, take care of your family, do sports, do something else than think about your job all the time.
And on the job, just try your best and even if things fail, learn from them and carry on. Hope this helps a bit. Stay strong and all the best to you!
I usually stay around 3 to 3 1/2 years. Not the worst tenure but not the best.
I now prioritize positive feelings, emotions and energy above all.
My goal in all meetings and all interactions is to keep positive emotions high.
What took me a long time to learn as an analytical and technical minded person is that there is a way to be optimistic and positive without being fake or insincere.
I have learned to try to set a positive tone first thing on every call by saying something optimistic and positive.
I also now motivate, encourage and bump people up (often, in a semi joking way).
I spent my career running over people in my way like a freight train. Now i emphasize on making sure the atmosphere is right.
When I was an engineer I felt that logic was the only thing that mattered. In fact( my experience, is that logical discussions and arguments are actually energy draining and viewed as negative by most people.
You could be completely correct on some point, on anything, but if the temperature of the conversation is not jovial or convivial it will be perceived as negativity and that association will stick to you.
Look how Bill Clinton and Warren Buffet enter most conversations. They always keep things light.
If you are a dry, logical, analytical robot - People will find a way to hate you eventually.
Or you think you are better than you are, not possible to tell from the post (but I'd say unlikely given some introspection that went into making it).
That said...
The most reliable way to get raises in our industry is to move jobs every 3-5 years. And since you're doing that anyhow, I'm not sure there's anything to fix here. You get to be yourself, and you get the raises.
Also, you're self-aware enough to ask if it's you or not, without an obvious bias towards it not being you. That makes me think you're doing pretty good.
My career is following a similar trajectory, except it is 2-3 years instead of 3-5 , so from my point of view, you are doing pretty well.
I'm not sure if there is anything wrong with you or me. When I look back, I believe that at each employer I learned many important lessons, I didn't repeat the same mistakes over and over again, and I built important work relationships.
So far (7 years in), the market didn't punish me for the lack of blind royalty on my side. Almost every time, I switch with a significant pay raise that I could not even dream of if I stayed. When I switch, I try something new while at the same time, I build on top of what I learned at previous companies, so I become useful for the new company pretty quickly.
I dunno... It's the circle of life?
(my career is not perfect and I know I need to improve a lot, I'm just saying that from my POV, it's normal, it's not necessarily bad for your career, and I regret nothing)
This is a red herring. The fact you’ve carried it out this far to the 3-5 mark is extraordinary. Most people move every two years just to overcome this effect.
Try reading "Developer Hegemony" by Erik Dietrich. I'm not sure about his remedies yet, but he presents a good model for idealistic types to understand corporate pathology.
Based on your example, is it possible that it takes 3-5 years for the business to understand the limit of your capability? You get early wins but eventually every convo becomes a debate. It kills energy, and neither of you wants to be around each other anymore.
They can't fire you without lots of effort because you're probably fulfilling your duties, but it's no longer "fun" to work with each other.
Can this be mitigated? Certainly. More open minds on either side. When was the last time you lost an argument, accepted the decision, and moved on?
But…
Becoming (mostly, I’m a veteran so there’s places to go) homeless, living way below poverty level driving a cab for nine years, getting evicted at the start of the pandemic because I living day to day on cabbie pay, almost becoming homeless again (doubt my parents would have taken me in without the pandemic) and being able, through unemployment benefits, to climb myself back to where I was when I last rage quit my job in ‘09 I realize the little stuff doesn’t matter all that much…water off a duck’s back as they say.
That’s your problem. Once you’ve gone above and beyond a few times too many they will move the goalpost and you will eventually become unable to keep up. Also things like https://en.m.wikipedia.org/wiki/Crab_mentality will set in eventually.
The name of the game is “managing expectations”.
Once you feel things go sour, don't prolong the agony.. That kills.
You leave, somebody else comes in, and they have the New Employee Perspective. Everything to them is fresh, cool, and awesome.
So why can't that New Employee be you? It's just a matter of perspective.
In the end, you are the only person you can control so it only makes sense to focus on you and what you can do about it.
In my experience these types of Conflicts typically arise when there is a lack of clear communication and expectations. So one way to move forward is to become curious and non-judgmental. Ask questions and be genuinely curious. You mention one instance where it was a "mundane issue related to technology". The outcome here was you changed jobs. So, now the question is.. was it worth it? Was that a positive, negative or neutral outcome?
If it was negative or say neutral.. How would you approach that situation today? Or how could you have approached that situation differently? Perhaps resulting in a more positive outcome for both parties?
Managers have to balance two priorities, which are sometimes competing: promoting engineering excellence on their teams, and delivering value for the business. The most common example of a conflict between the two is taking on tech debt to release something earlier.
If you disagree with a leadership decision, try to get more background on the thinking behind it. Good managers will be more than happy to get into it in detail. There are always tradeoffs to be made, and the inputs are not always purely technical. There often are business and organizational constraints too.
This is often a barrier that ICs have to break through to get to more senior levels (even they choose to stay on the IC track): making sound engineering decisions, but also being able to understand the business and make appropriate tradeoffs.
Here's my analysis of my own behavior:
- First few months, imposter syndrome. I feel everyone else is smarter than me, the struggle keeps me going. I wake up with a purpose.
- The next few months, I crack the work culture, the codebase and it gives me a sense of victory and the 'kudos's and the 'good job's keeps me going.
- The next few years, I stagnate - Maybe due to burnout, fatigue. Maybe now I get to know I can't be replaced that easily, I slack. But I'll feel that I can always get back to being insecure (a good stress?) if I want to.
- Then at some point, I get bored beyond redemption. If it is not boredom, it will be FOMO.
- There will be a promise of uplevel if I stay a few more years, but I always never want to.
- I quit and find a new job at the same level. Maybe subconsiously I don't want to take a leadership role and chicken out?
Will Larson's blog post called 'A forty-year career' is worth a read.
This is the most telling part. If it's mundane, I don't think it matters (for them) that the issue was technical. As mentioned in another comment, this likely leads to a loss of trust or respect. This can be both ways not just on one side.
There's a few ways to handle this: 1. accept the pattern and move on, 2. find ways to communicate better to reach some sort of agreement or compromise, 3. learn to "disagree and commit". One thing to realize is that as you report to your manager, they ultimately have the final say regardless of how technically 'wrong' it could be.
I too have had critical disagreements with senior technical or management. In some cases, I could let it go and work for a year or more before leaving out of boredom. Other times, if disagreements or lack of understanding recur, I may be on my way sooner. I've never regretted leaving and finding new opportunities. One thing that's worth trying is different sizes of companies and different stages of growth. Finding good large companies may be more rare as they're typically more conservative and move more slowly.
I didn't answer the question though. Is it just you? Maybe yes or only partly. But it also doesn't matter. It's also great that you can be so involved after 3-5 years, but realize that this is a double-edged sword. At the end of the day, it's a job that pays the bills for most people at the company. Take pride in your work but maybe not get too possessive about it, learn to let go like a child growing up and grow other parts of the system, there's always more. One thing that helps with the too much single-handed development is pair programming, alternating typing and navigating roles. If that doesn't work out, that's fine too--stick with what works.
If you mean switching jobs every 3-5 years, that part seems very normal, you might even be on the longer side of tenures these days.
We live in a society of conflict avoiders.
Conflict is human. You can decide whether it’s worth it for you to stand up for what you think is right. Some people don’t and sadly that’s what organizations prefer.
If you find the decisions from management to be completely intolerable, then that’s fine too. But it does mean that you have to find a new job. Finding a new job and then resigning because you didn’t agree with the direction the company is going in is also completely reasonable, and can be done completely amicably. But if you’re finding this happens every 18 months, then you perhaps also need to consider whether you might be too dogmatic about your technical opinions.
I come in, handle some successful projects (occasionally unsuccessful, such is life) in whatever role (it varies from senior developer to product owner to staff developer to tech evangelist, etc.), then find a reason to move on. I've noticed that the types of companies I work for tend to be grouped - I'll work in legal tech for 2 or 3 companies in a row, then fin tech for a couple, then marketing, then oil & gas for another couplefew, etc. My remuneration has consistently grown as well over that time - I haven't taken a lower-paying position for at least 10 or 15 years now, and only one change that didn't increase what I take home.
I actually didn't realize I was doing this until I started my year off recently and looked back on my career. I still don't know if it's strange or not, but it worked for me.
Additionally and anecdotally as you've said, around that time is when promotion is offered often without the difficulty level/growth opportunity changing in role responsibility.
Lastly, it's a team sport.
Over time they add more and more requirements to achieve same result making your work more and more difficult instead of making it easier over time, so after 2 years you are away from 5 simple requirements now with 15 requirements, some of them difficult to comprehend, making you waste more nad more time to achieve same result as in the beginning.
When I see e-mail about changes and improvements I am always horrified, because in 99% situations it means new useless unhelpful steps wasting more of my time.
If that is the problem, try including others in the process. Build a team, and be mindful of buldozing through people who have 'wrong' objections. Not saying to avoid it completely, but consider long term effects before doing it. And getting a few good people who enjoy working with you makes things much easier.
Just a theory ofcourse. And the suggested solution requires a bit of consideration of office politics.
just take a cue from the “quiet quitting” crowd, which is a weird way of saying to just do the job as described for 8 hours a day and go home
The raises and promotions are rewards for those contributions. The paycheck you received are compensation for those contributions. No one else owes you any more than that and it doesn’t entitle you to dictate how things are done outside of your responsibilities.
The above is my guess from reading between the lines.
You're not doing it on purpose, but the fact that you're asking about it shows humility, which is a good thing. Always be in a position of service for people. Try to be less ego driven, and more service driven.
And don't give up!
Maybe you are very good at building something alone. Working in a team, however, is more about communication and clarity than mere technical achievement.
In a sense, this includes many technical aspects, tho: if an experienced newcomer would arrive in your team when you are 6 month in a new system you are designing, would he be able to blend in?
You shouldn't put pressure on yourself to make something work if you're getting disillusioned. Better to go somewhere better
There’s no point digging deep for details of your specific nuances - they have nothing to do with someone else’s even if look similar on the surface
I joined a larger (tech) company a few years ago, best thing I've ever done. Instead of jumping companies I just jump teams.
Need to be productive to get the team switches but that's not too hard.
it is tougher but a lot more things are in my control.
I think communication is an underrated skill set. Mostly because it's so easy to feel like you are good at it when you are really not.
I think a lot of us are in the Dunning Kruger phase of communicating.. I know I was up untill a few years ago and I've been in my job (as a 3d artist) for nearly 10 years.
This happened 1 time for me. Worked at a place and things were great for years, tons of growth. We had an insider at our competitor who leaked infos my boss took advantage of. She got 'laid off' and then hired by us. She was inside sales, but she acted like she was our manager.
Except imagine the worst tech manager you've ever had and she was worse. She knew less than nothing about tech, she was at best a sales person who took other people's orders and attached a price tag. but this wasnt the big problem. She was constantly talking to my team, getting them to say something stupid and the going to the boss to get them in trouble. It got to the point 2 people on my team refused to speak to her. Would never even say hello to her because they learnt 9/10 times she was intending to snitch on them.
One day the team just realized the pattern and after she talked to them, they set an alarm on their phone. Right as the alarm went off, our boss came walking in. This was the day they turned to maliciously harming her. I decided to simply be uninvolved. I made it clear to my boss she's not my manager and i dont answer to her. That if he wants me to report to her, make it clear now as I was planning to quit on the spot.
Her toxicity mainly toward the junior techs really wrecked that place. demotivated everyone. This was the downfall of that job.
The story continues. Many months later she came one day to come after me. I was standing up talking to the junior most guy. He had a pretty severe issue and I was helping him.
She straight up went to the boss and said I was looking out the window while my coworker was sinking. Which she never came to talk to us, perhaps there was many points it would look this way from a distance.
My boss then demands monday morning I come in, there will be a company meeting with everyone and I had to beg to keep my job. I explain I was working on my own project while helping $junior. The junior guy interjects immediately, confirms I was helping him. That the claim I was looking out the window was a lie.
So I end up fired, begging for my job wasnt good enough. 1 other junior guy, the one most often targetted by her quit as well. I got a new job and I met someone who had worked with her at the job she was leaking infos on. He had completely forgotten about her but she did exactly the same snitch shit at that place.
about a year later. I get sued for 1.1 million $. I never had a non-compete. I had learnt about those the job before that job. His assertion a barely above minimum wage worker with no ownership in the business was a 'fiduciary employee' and so I'm not allowed to steal his clients. He lost something like 50% of his clients and none of them were at my new employer. Obviously he didnt get beyond discovery.
Knowing this, maybe it’s worth resetting your goals at the next role to take i to account how this cycle tends to go. Set “end” criteria for when you should move on and reevaluate those goals regularly.