|
I have 5 years of experience writing ML software and working with distributed systems for large-scale data processing (10s-100s of TBs). I have some hard-won experience, but I am by no means done learning. I try to be open-minded, and I've accepted that there's no way I'll ever truly be an expert in every aspect of SW engineering. Four months ago, I joined a new team at a new company (my previous tech was purchased, and I wanted to move on to other projects). Writing code with this team has been a really difficult experience. Every change that I make I get pep8'd and abused on style. With each PR that I make, a long thread (>50 back-n-forths) ensues with comments like "let's put the calls in this file instead of that file", "let's actually put the code here in this file", "your code should be under 80 characters long", etc. What's annoying is that this codebase is a mess, and these comments appear to me as hazing as they are not uniformly applied to others: lots of inconsistent styles; really complicated class hierarchies; major violations of YAGNI; major violations of pep8. The codebase size is <3K LOC, and I've worked on codebases with 100Ks of lines; so it's really frustrating to deal with the nitpicking on something that seemingly wastes everybody's time, and doesn't provide opportunities for growth or learning. So being a good new employee, I've asked for a style guide and was handed this link: https://www.python.org/dev/peps/pep-0008/. I've been programming in python for 10 years, and I just found this to be insulting. I've worked on projects that are orders of magnitude more complex than the current one; and yet none of my experience matters, and I feel that I'm being viewed as a junior since I've been given smaller and smaller "projects" (if they could be called that) to work on. I believe that my teammates see me as a bad apple. I want to do something constructive here, but I'm feeling pretty bruised and confused. Thanks for any advice. |
My hypotheses are:
1. They are doing it to purposely be unproductive. It's like in school where kids would ask the smartest kids in the class to bring down the grading curve by telling them to relax or hang out more.
<3k LOC supports this theory, which is absurdly small for a team that's been around for a while.
2. They see you as a threat. This could be for the above reason, it could be because of your background. The hazing and insulting comments support this.
This might also go into a lot of things that you haven't mentioned. Like some people saw me as a threat when I was the only developer who didn't have to work at the office. It might also be that you're staying in later or coming in earlier, skip lunch, aren't going out on drinks with them, aren't engaging in some workplace ritual.
Hypotheses should be tested, then you can work on solving the problem.
I would recommend the Benjamin Franklin approach. Ben was ambitious, but he was bad at reading people early in life. He was screwed multiple times for standing his ground or proving that he was right.
He eventually learned to roll with the punches, to fit in even though he thought it was wrong and unproductive.
You probably want to quit later, but it might be a good exercise to find out what you're doing wrong so you don't face the same issue in the future.