Ask HN: Is it just me?
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?
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.
What I saw when I worked at a big corporation was that there was an accumulation of people who stuck around, but there was also a constant churn of people who hated the culture and didn't last. I haven't counted, but I would guess that a decent majority of the colleagues I had over the course of my time here came from the latter group, even if most the people at any one time came from the former.
In SF. In Atlanta we have 90+% retention at a five year mark.
I got to build active-active systems that handled user sessions and core business APIs to the tune of 80,000+ queries per second. Caching layers, hand-optimized replication, eventual consistency algorithms, etc. Outages would cost millions of dollars an hour.
I worked on one of the teams responsible for building a migration path from on-prem to cloud, getting workloads from bespoke containerization onto k8s, securing clusters, and developing automation around CI/CD.
I joined an ML team to build product, did various frontend work, maintained important developer platform pieces... It's hard to enumerate it all.
You can have a full tour of tech inside most big companies. And you can continue getting promoted and working up the comp ladder.
I was getting $400-$500k total comp in Atlanta. None of us were seeing a compelling reason to leave, at least anecdotally in our limited sample size observations.
In any case, I left to pursue my own startup ambitions. I added one to the count.
[1] Granted, some problems require fresh blood, new ideas, killing internal weirdware, questioning assumptions, new domain experts, new leadership, etc.
If I had to guess, most folks at my last office were between the ages of 20 and 45. We only saw one retirement during my tenure. A few folks left to a local startup and did far worse than when our company IPO'd and 100x'd our options. I could name everyone that left and count them on my fingers.
We collectively maintained a spreadsheet of Atlanta hiring dates and frequently compared our seniority against our colleagues based in SF. Most of us were in the top 5%, according to an internal employee registry API that could tell you your seniority rank.
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!
- opponent way better than me
- had a bad day / off my game
- unlucky for some reason
What I learned then that has carried into work is that I can try super hard, and still things won't go my way. What I started focusing on in sports was my AVERAGE game. I kept trying to improve my average over months, and years, and that helped me avoid focusing on down days.
The same applies for work. I give it my best, and I try hard, but there are days, even weeks sometimes, where I struggle to do much of anything. I just accept that I will have powerful weeks too (and I do). Be calm, and move on.
The thing is, even if I know or see things I don't like, often it is actually quite hard to figure out a way to improve the situation, a way which works for everyone in the team. Those things take time. You can try to improve those things, but be prepared for a bumpy road. Going in full head on can be painful, things can get personal or you'll do or say things you could regret. Sometimes it's better to wait it out, sometimes it's better to take it slow. And sometimes it's better to just leave it and concentrate on the stuff you can do well.
I don't want to sound like a know-it-all and possibly there are companies which are hopelessly lost. But there are always things to learn and to improve on a personal level. And I'm sure you'll feel better, if you don't try to fight every upward battle.
This seems like you're asking a question about basic social skills, and it's only tangentially related to development. I'm not saying that to dunk on you, but it seems like maybe you're framing the entire issue incorrectly?
You do your best within the constraints you're given, which is what is being said in your example. You are welcome to make your arguments for or against a decision (as far as office politics allow), but just as there is a breaking point for you being told to do something you feel is "incorrect," there is a breaking point where you become "the guy who always gives them a hard time."
Soft skills are important as technical when you're working with others. You have to pick and choose your battles. Don't confuse a platitude with a literal decree. Does that make more sense?
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).
Did you actively build a relationship with your boss? Did you actively solicit feedback from all the stakeholders in a given project? Did you ask earnest questions to try to understand people you disagreed with?
When I was younger, I thought anyone that disagreed with me was incompetent. This had upsides since I pushed through projects others thought were impossible. But you alienate a lot of people in the process. More importantly people start rooting for you to fail. This is fine a very narrow set of situations but as a whole you're far better off taking the same effort to understand the people around you.
My hypothetical question to the OP is have you ever had a falling out with anyone that you felt truly understood you and wanted the best for you? I haven't.
But you just can’t tell which is which from where we’re sitting.
So, OP… probably you’re the asshole, but maybe not.
i'm in a cycle. i quit software eng job hating everything, everbody, and software engineering (which i very like). i go to work away from computers. my happines goes up, my optimism goes up, making software makes me happy. then i say to myself: i am good working with people. if i can do it here then i can do it in an IT company. The IT company turnouts as an unorganized mess with dumb people pretending to be experts.
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.
Empathy and a desire to be a better human are underappreciated values in this industry. I’ve made this a pillar of interviewing at companies I’ve worked at over the years; it’s better to hire kind people with a capacity for growth and skills in the right direction than to hire folks with all the necessary skills and experience at the time of hire but with poor social skills or a lot of dogma.
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.
Once you feel things go sour, don't prolong the agony.. That kills.
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?
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.
I disagree. I was recently hired at a company that I worked for years ago. I left because I tired of the project, but left on very good terms. Good enough that both the company and myself are looking forward to another run together.
That was a relationship that ended successfully.
By ending your relationship with the company, you're declaring that relationship necessarily deficient in some way. My advice is to define those deficiencies deliberately, rather than in an ad hoc way.
As did I.
I don't disagree, technically, but calling the relationship "deficient" has implications that aren't necessarily true. For instance, leaving a position because of a change in your personal circumstances isn't leaving because the relationship is "deficient" in any sense other than your needs have changed in a way the company cannot accommodate. It isn't because there is anything wrong with you, the company, or your relationship with the company.
I think you meant an individual, however what you demonstrated was that your relationship with that person hadn't ended, which actually reinforces my point.
Your implications aren't my implications, and none of them are what I said.
I guess once again it depends on how you define success. I am still friends with some ex bosses and even ex partners. It does require a level of maturity for both parties to accept that just because circumstance threw you together it's quite possible to reach the point where it's best for everybody to part ways.
An enemy is the worst thing to have. If you can put aside the ego-driven temptation to burn bridges you'll end up with more tranquility, less regret and maybe even a better network of contacts.
Uhh pretty sure that’s furthest thing from the truth. I had lots of managers that I’d absolutely work with again and companies that I’d definitely consider going back to. Then there are ones that I’d never work with if I can. Sometimes (a lot of times?) work stream just peters out…
were you in in the room when the bad decision was made? how did it escalate to being fired / needing to quit?
did you have allies? how important was the thing you were fighting for?
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?
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.
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.
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.
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.
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.
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”.
You shouldn't put pressure on yourself to make something work if you're getting disillusioned. Better to go somewhere better
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.
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!
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.
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.
It's nice to share these things, it builds connections between people, you and/or they may be more empathetic for when things are going slower than you'd like, and to the OP comment, it starts the meeting with a non-negative tone. Even if they say negative things, you can listen and empathize, and it can become a positive thing for you both. Sometimes people say "I don't want to talk about it" and then you can demonstrate lightness by saying "that's okay, [I understand]" and waiting a beat--sometimes they start talking about it anyway.
I also make sure to have a couple of small things I could share if they reflect the question back to me, or if it doesn't seem like they want to talk. These are little things from my immediate life--the lunch I just had with a friend, or interesting thing I saw on my walk, or something I'm excited about, or an idle question I've been pondering.
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
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)
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.
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.
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.
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
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.
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?
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.
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.
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.
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.
it is tougher but a lot more things are in my control.