I'm in a high-paying Senior Software Engineer role at a top tech company with excellent benefits, just starting 16 weeks of paid parental leave, in the San Francisco Bay area in California, with a low performance rating, and I hate my job. I don't know when to quit or how to quit, if I should quit, since talking about it with a manager 3 levels up may solve it.
I've been at the company > 1 yr, so I have met the requirement to get my first equity grant and to not have to repay my signing bonus if I leave.
My performance rating is low--one small step up from being on the firing block. However, I feel that the value that I provide is high and worth my salary. I write high-quality code. I fix bugs voluntarily. I add company-wide modules which benefit people outside our team, when I see they are lacking. I fix company-wide documentation and doxygen throughout company-wide code when I see it is wrong or lacking. I train new hires. I solve tough bugs. I fix our company linter/code-formatter since it has repeatedly caused problems for some corner-cases on our team. I document our team's code. I study deep and hard and long and ensure I know what I'm talking about.
BUT, the company (my boss and his boss) don't seem to acknowledge this. I am rated low. I believe it is because of the following factors:
- differing world views: I think they want a code-monkey who rapidly completes tickets, but they got a detail-oriented individual who values quality over quantity any day. Part of this is because the person who hired me originally told me he wanted me to document and fix processes, since in the interview process we discussed how that was one of my strengths, but then he left 1 month later and his replacement wants speed speed speed and more speed, not quality nor documentation. I'm smart, but dense. I take a long time to understand our code base because it is so vastly overly-complicated and when I was hired I was lacking in C++ experience (not so much now), but I fix, improve, document, and simplify it as I go. They just want speed. That's it. But, I'm slow. They say, "don't document! Just do!" I say: "I cannot do if I do not document, for documentation is how I learn to do." I literally believe that to be true. It's like they are saying: "don't learn how to do it, just do it", and I am saying "clearly I must learn how to do it in order to do it--documentation isn't just for those who come after, it's how I learn." "And also, it helps our new-hires (they've told me so!) and those who come after."
- an all-star, company-loved peer who manages my schedule, misunderstands my intentions, nit-picks my code, and values schedule over people and schedule over quality--probably because by doing so he gets all-star ratings each time we meet schedules, even though the code is low-quality and then I have to go fix it, which of course takes me a long time. Let's call this all-star peer who manages schedule "John".
- I really do take a long time to get things. I'm outside my comfort zone, working on new technologies which I must study a lot to grasp and understand
- John nit-picking my code reviews. I've had multiple 2 to 5-line bug fixes, which were very complicated, albeit short, which have been blocked from merging by all-star employee John. Each cost me a couple days in productivity in months past, then took 2~4 hrs for me to fix when I did finally understand them fully, then took me 4~20 hrs of additional work (over 1 to 3 entire, very very long [12~14 hr] days) to convince John to approve them. I hate working with John. I want an internal transfer, or to leave the company due to John alone. Important note though: he is kind, not intentionally malicious, very loved by the company, doing critical program management and scheduling, and for me, nearly impossible to work with. Not once has he stood up for me and passed along my concerns about schedule when I surface them--instead: he drives the schedule hard to please the company and (I suppose) get good reviews.
So, we had a baby. I'm on 16 weeks paid paternity leave. The day before my leave, John yet again blocked me for 4 useless hours on a 2-line bug fix I added to my sprint, while I had other things to do. I'm rated "partially meets expectations"--in large part because I do these bug fixes to help my team-mates so we move faster collectively, but I am literally told by management and John, who heavily influences low-level management, that me fixing the bug wasn't a good use of my time, even though it helped my peers avoid 3 lost days of work over it.
My boss is new, but good and caring. He is trying to work with me to learn to "meet expectations", but even with him we still have the "differing world view" problem, and John is still a huge blocker for me. My boss's boss (2nd level up boss) is part of the problem: quantity over quality any day. But, 4 levels up they repeatedly state "don't sacrifice quality for speed", and 3 levels up I may have a shot at requesting an internal transfer. The problem is: would they want to risk transferring me even though I'm not meeting expectations in my current role? OR, would they just consider an internal transfer for me as passing along a problem since I'm a problem?
Should I tell my level 3 boss my issues now, and that I'd like an internal transfer?
Should I wait until my parental leave is over or almost over to tell him?
Should I just go find a job and quit right after parental leave?
Should I tell John he's a jackass and I hate working with him?
I can't stand this situation. We just had 2 new hires I really like, on our team of 4 now (counting me, but not counting our immediate boss), and I've been very helpful to them, and they'd probably be sad to see me go, but I hate working with John, and this job isn't an ideal fit anyway, especially because my quality and bug fixes go unnoticed while my slower speed is getting my bonus cut in half and making me so stressed I'm working 12 hr days and am stressed out of my mind all the time. No matter how much I work, I cannot succeed in this role immediately. It will be > 1 year I think before I do, but at the great cost of decreased self-esteem, no recognition, and not meeting expectations the whole time.
Related, but not quite the same since they don't talk about parental leave at all: