I'm at a crossroads considering a team change because the current work environment is taking a toll on my mental health. It's a tough situation—most of my colleagues (especially juniors) view my actions negatively, except for my manager and probably my Principal Engineer and Distinguished Engineer. Despite being a senior software engineer, the work has shifted heavily towards operational tasks, thanks to a change in leadership focusing on fixing legacy code due to recent outages.
I explored moving to another team but found potential hurdles in advancing to a higher role there. The new manager emphasized the need to impress the new leadership for growth, which feels like playing politics, something I'm not keen on. Meanwhile, my current manager's expectations for my advancement seem vague despite assurances.
My contributions mainly revolve around operational tasks and bug fixes. I'm starting to doubt if this aligns with the requirements for a higher staff position that demands more substantial technical input.
The nail in the coffin is that my manager is leaving no personal space and constantly calling me for discussing trivial operational tasks during evenings, late nights and early mornings. Her behaviour has made other team members also comfortable in calling me at any time for confirming on small things. I'm ok to help the team at late nights if it's an outage or urgent issue, but the lack of boundary is just making me more frustrated.
I've been open about my frustrations to my manager and even my skip level manager. However, I only see assurances and nothing major changing on ground.
I'm at a point where I need to decide between enduring the toxic environment and unclear growth path in my current team or potentially facing similar challenges in a new team's advancement and politics. I'm seeking a balance where my work speaks for itself without the constant need for politicking or unclear expectations for progression.
I was hoping to wait until July to start looking out, so that the stocks vesting happens. Please suggest how can I navigate this situation better! Should I anyways make the move to switch teams? Or should I look for switching company?
This is a particularly challenging thing to assess as I don't necessarily know the extent of outages that the code has taken in the duration you speak of and with what severity. Operating at a higher level certainly doesn't mean you won't be contributing to the grunt work especially at senior level, but I would expect you to say "Hey, I'm seeing these kinds of errors a lot" and prioritize the work of the juniors as appropriate.
Juniors will always be touchy as you get the hang of your new position, but I think showing them that you are human and that it happened to you a lot in the past would be particularly helpful. Goodness knows I didn't handle that well as a junior and got an attitude with my seniors.
As a manager though, I need you to start advising me and prioritizing the work of the juniors and what constitutes solving legacy issues in a reasonable manner. If the business is calling at night, do they have SLAs or SLOs that you're aware of that necessitate the on-call strategy? Is there documentation you should be writing or the juniors should be writing so that they don't bother you as much. Which kind of these should be prioritized based on the kinds of errors you're seeing and how well does the manager feel you're leading the team.
Once you go staff+, there isn't any guidance and you are increasingly the expert in what is being worked on and are expected to be a good partner to the managers. Everyone seems to see you as the team lead and unfortunately, the only way I see that ending is by delegating more and more to the juniors as there is only so much you can do.
Your impact is less hands-on and more I do I guide them to learning about the system and tackling key business problems as prioritized and re-prioritized as necessary.
Three main benefits of a job:
It sounds like you're getting neither learning nor growth, so that's a solid argument to leave. Given the ambiguity around growth even if you switch teams, I'd advocate changing companies unless you feel you have some deep contextual knowledge that makes you valuable here.
I like the idea of time-boxing career moves. So you can look to see if the situation improves by, say, March, and if not, then commit to leaving after your vesting date in July. That way, even if you're in a toxic work environment, you know there's an end date.
I recommend watching this if you haven't already: [Masterclass] How To Choose A Good Company And Team As A Software Engineer
Thanks Brad for the insights!
You're right Rahul, these are the parameters I am evaluating as well. I like the time-boxing suggestion, it gives me a conviction that I'm not in this for a long time, if things don't improve.