It's starting to take a toll on me and I'm not sure what to do at this point. I've tried my best for the last couple of months to elevate the entire team. I spend a lot of time writing thoughtful and educational comments when reviewing. I've emphasized the importance of atomic PRs that are small, but every single PR is about 500-1000+- and 10-20 files. In addition to that, lots of the code written is just erroneous or poorly written from a system design standpoint. I often find myself having to design the entire feature from scratch for them, or give them specific guidance.
How can I help my team improve in this area? I might start to encourage folks to create a design doc outlining shortly the work they're going to pursue, but I'm not sure if this will add too much friction and time consumption from needing reviews from others.
The most frustrating part is when I'm not requested as a reviewer, people will just do LGTM without much consideration, and then I'll find problematic code in our repo.
We're in the early stages development of a new frontend and backend.
We are using a linter, formatter and a compiler tool, so that's not a concern.
The next step is to convince your managers that writing good code is in the best interest of the company.
If that doesn't work, just let things play out. Sometimes, things just have to ride out for people to learn and no amount of proactive time and effort will accomplish this. Just make sure to get in writing that you think these behaviors are a risk in the long term & the owners of the code are responsible for any issues that may occur on or after launch.
What level are you? If you're a junior or mid-level, affecting broader change will be very difficult. If you're senior or above, you have a much higher chance of getting the word across and it's actually expected for engineers at this level to improve the overall culture/process of their teams.
All that being said, you do have a hard stop mechanic: The "Reject" button on the PR. The problem is that if you use it aggressively and don't have the trust of your peers to back you, you will be seen as very annoying, very quickly.
As Jonathan mentioned, I recommend talking to your manager about this. Don't just go in as someone complaining: Make your case as to why your way is better and come across as constructive. If you have proof of negative impact from landing giant PRs (e.g. missed bugs), have that as well. Check out this video: Voicing Your Problems And Frustrations Productively
Here's an excellent discussion that covers something very similar: "How to push for changes when not directly in a leadership position?"
Thank you so much, I really appreciate the feedback! I've already taken some actions and I'll do some more research on how to raise this with my manager in a productive fashion!!
I'm a junior, SDE1.