I am a middle backend engineer with 2 years of experience. I recently joined a very new startup(< 2 years) where my friend is my manager. He/she is a principal software engineer with 10+ years of experience. In the team, there are 2 other senior software engineers, each is 4 years older than me with 7-8 years of experience. When my friend invited me and interviewed me to join the company, he/she said that I might not be a senior yet, but he/she's sure that I will get to senior really soon because I have a habit of learning consistently.
Even though I only have 2 years of software engineering experience, I had previous 3 years of tech experience so I already know how to navigate company politics, communication, and have that business intuition. Also, in my previous company, I was the 1st backend engineer who had to build the codebase and infrastructure from scratch, so I am pretty confident that I am not a junior anymore. However, I understand that I still lack experience and knowledge on how to build clean code and how to build reliable and fault-tolerant system, and I feel like I could learn it from my manager, that's why I joined the current company.
The 1st senior engineer is pretty chill, he/she looks like he/she is not very ambitious to get impactful projects and looks like he/she's just happy to have a job to support his family. Besides, he/she joined the company 8 months earlier so I guess he/she already has some context. The 2nd senior engineer joined at the same time as me, and he/she looks pretty competitive. I feel like he/she's constantly sizing himself up against me and he/she's always making some little undermining comments such as "Are you used to code pairing? You look like you can't code", "Let me help you use a terminal", etc. Basically these comments are very subtle and masked as jokes or him trying to help me, but I sense that he/she's actually a bit intimidated by me.
My manager has a concept of "pairing", where he/she will split the team into 2 groups, and each group will work on a project for some time and then he/she will rotate it. In the 1st rotation, I was paired with the 1st senior and I did probably 70-80% of the project, but I was happy to do it because I learned a ton and my manager, during the 1-1 said that I was doing great and he/she told me he/she felt that the 1st senior is an underperformer. Despite this, I specifically let the 1st senior gave presentation of the project to the stakeholders because I felt that he/she helped me to onboard to the company so I'm ok with it.
The 2nd senior was paired with the manager and I felt that they did project that is much larger in scope and impact compared to me and the 1st senior. It means that now the 2nd senior has much more context than me. Right now I'm being paired with my manager, and the 2nd senior is paired with the 1st senior and I feel like I'm starting to get some context, but I'm just worried that when it comes time for me to get paired with the 2nd senior, he/she will hoard all the impactful projects and context and I will be stuck with really small scope. How to avoid the "rich gets richer, poor gets poorer" scheme? Thank you
...he/she's always making some little undermining comments such as "Are you used to code pairing? You look like you can't code
My immediate thought is that this kind of a comment is a red flag. If this person genuinely said this word-for-word, I would talk to your manager about it. Telling a software engineer that they can't code is such a harsh thing to say - I wouldn't say this to a newgrad junior engineer (who actually might not be able to really code), let alone a mid-level engineer with 2 YOE.
To help facilitate that conversation and navigate these situations in general, I recommend this: Alex's Guide To Effective Communication
How to avoid the "rich gets richer, poor gets poorer" scheme?
The first step is to not view scope as a zero-sum game. Scope is not some ultra well-defined finite resource, especially at a startup. In order to go from mid-level to senior, it's crucial to learn how to create your own scope. This behavior is so important as it gives you freedom and derisks your contributions as you don't need to rely on an authority figure to hand your products or fear engineers "taking away" the well-defined scope.
Here's some good resources to learn how to do this and better understand the concept:
Lastly, this question makes "Senior 2" to be a bit of a villain. Something I always recommend doing is to "Initially assume good intent". If Senior 2 is an important person and they're here to stay, it's much better to work with them instead of against them. A lot of engineers have good intent but just come off the wrong way - Maybe that was the case here? Of course, I could very well be wrong (people are often times just crappy people), but it's important to give folks a chance first and take a step back to examine your own biases.
Your friend/manager sharing performance comments about other engineers is totally out of line. It’s already dicey that you had a personal relationship, they interviewed you, and they are your direct manager. I can imagine the senior most engineer/lead being given some direction on who needs help, etc., but just tossing out “yes, S1 is underperforming” is really problematic.
M+S1, Y+S2 :: M+S2, Y+S1 :: M+Y, S1+S2. These are the possible permutations, that’s it. 3. The manager not trusting you, so not giving you a meaty project seems unlikely. They aren’t giving S1, who they have determined to be an underperformer, an important project. 1/3 of the time, you’ll be with S1, the rest you’ll be with others and likely get better work. Have you told your manager you think you were given the less interesting project and want to stretch on more ambitious projects?
S2 has the red flag of saying “You look like you can’t code”. That’s super problematic. I would recommend checking in with them to make sure you’re progressing in their opinion, and actively seek constructive feedback. If they are demeaning, that has to be addressed. If this was a jerk thing and they move past it, it’s not good but survivable.
I don’t intend to criticize, but if you’re referring to folk in a non-gendered way, just use they or their name/“label” (Senior 1) if “they” would be ambiguous. S1 got one “his”. Generally I appreciate degendering, but I can’t “skip” the paired pronouns and it’s a speed bump.
Focus on your manager’s feedback and direction. There’s nothing you can do about your manager’s feeling about S1. If S2 is a jerk again, it’s worth mentioning to your manager. Focus on what you can control, which is the work you do.