I have to abandon my PR without any reviews and close the ticket saying it was made redundant by the other newer ticket/PR the tech lead worked on.
He always likes to work evenings and weekends and always seems unavailable. Which is not a problem for me but making me waste my time and not even get proper credit is making me consider finding a new job (this is not the only weird thing I see here, but don't want to make this a long post).
I can't confront him because he works in hero mode 24x7 and the founder loves it. I'll get no sympathy up in the hierarchy.
Do you also see this often? Has anyone ever been able to fix this situation?
In any case, spend your working hours looking for a job.
> I have to abandon my PR without any reviews and close the ticket saying it was made redundant by the other newer ticket/PR the tech lead worked on.
Ok, so the lead reviewed and committed your code. Close the PR, thank the lead for committing your code and move on.
When your PR is ready, send a friendly note to your lead, their manager, and the PM, saying that you'd like to get it into the next release, and it's ready for a review.
Talk personally to the lead first... If you can 100% exclude misunderstanding and the boss likes the lead dev, I would look for a new job, but:
While doing it, be professional. Keep doing your work (even if it is not accepted), don't be mad or raise your voice. Collect evidence and print it.
If you found something new, you will have to talk to your boss. Have the printed evidence with you and tell/show him, as soon as he asks why you are leaving. Maybe you can prevent others from having a toxic environment by this.
If another team member copied my code and pushed it through without going through a proper review, I would just assume they were working on a bunch of different things and probably didn't want to deal with merge conflicts. Is that a possibility here, vs some sort of malfeasance?
But then again I work in a small team that generally trusts one another.
Whatever you do, ignore the comments about trying to reason with the lead. This person’s behavior is malignant and there’s no way that they’ll suddenly act rationally when they’re called out.
Don't focus on the stolen work, focus on the fact that there should be process and it should be followed for normal work.
idea i (less healthy):
maybe that gives you an angle -- if the tech lead is behaving like this with your other colleagues, maybe you can privately agree to review each other's PRs promptly, and cut the tech lead out of the review loop! starve the environment of unreviewed code stuck in limbo for your tech lead to steal, see what happens. this would be dysfunctional in a different way, but hey, a change is as good as a holiday, right?
idea ii (more healthy):
re: "reminding the team" to review PRs, a different way to do code reviews is "pick a victim". pick a specific non-tech-lead colleague and request that they review your PR. maybe roll a die or round-robin them to avoid picking the same colleague each time. that way the responsibility can't be diluted and you can hold a specific colleague accountable .
before you start doing this, you could call it out in a team meeting (standup? retro? having a chat around the coffee machine?) so everyone has a heads up that you're going to change things. you could even say something like "i've noticed that PRs sometimes get stuck in limbo for weeks without review. to spread out the review load, let's try having each PR author picking a specific person as the reviewer. pick a different person each time. if someone asks you to review, please leave a review in a day or call out if you're overloaded and need someone else to step up and review".
If the founder is in earshot and/or you get any pushback, you can say that spreading the review workload and working to get changes through review promptly should increase the velocity that the team is able to ship changes! This is (a) likely to be true, and (b) will make it much harder for someone to argue against what you're proposing, because shipping changes faster is what the founder wants.
He either fixes the problem or doesn’t care - either way you know what to do next.