I work as a junior software engineer and I have recently started a new project. The project is being led by an intermediate software engineer and she has set an ambitious vision for the project and it has been split into three main components, with myself being responsible for one component.
The company culture dictates that we should justify our design decisions, and if we are unable to come to a conclusion ourselves the design should be reviewed by a meeting and selected through a majority vote. It also dictates that I'm responsible for the design of the component given to me, so this means that I need to make sure the design is appropriate and that tasks I give to other developers are completed correctly, and on time.
I've been given a limited amount of time to complete the design, and I've ran into a few problems:
- She wanted some functionality applied in every use case. There were some gaps in the intermediate software engineers understanding of the specific domain knowledge. It took some effort to communicate this to the engineer because they only accepted it was the case after a formal document was made with input from other engineers who agreed it only could be done in a few use cases, and implementing it only for those few use cases would negatively affect the other use cases of the project.
- I proposed some initial designs and everyone aligned on one solution that met all requirements (with the exception of her). She requested I investigate one of alternative options in the document more. To be fair to her, I did not deeply detail the design of this specific alternative solution because it had major issues which conflicted with project requirements which I clearly outlined in the initial document. I ignored her request because everyone else on the team agreed it wasn't a good choice. This caused her to make passive aggressive comments towards me which made me pressured to write a new document with much more significant details about the option she wanted. After writing this document and booking a meeting with more senior engineers, everyone including her agreed it wasn't a viable option. She then thanked me for doing my job, which felt passive aggressive.
- She has done the above a few times, even for very small choices that can be trivially changed or choices that are very clearly bad choices and don't require team input. When I disagree with her and try to explain things to her, she gets aggressive and starts accusing me of implementing bad choices or passive aggressively accuses me of not doing a good job. So I end up creating a document for team input, which other team members are starting to complain about because of all of the time consuming meetings I'm requesting they join.
- A few days after everyone (including her) aligning on a design choice and a few people starting work on implementing that choice, she messaged me and wanted me to explore another radically different alternative option. I tried to explain to her that this specific option wasn't a good choice, but ended up working over the weekend to put together a document and review it with a team, only for everyone to agree it didn't make sense to do in the first place at all.
I've been trying to mitigate this issue by working long nights and weekends, but I think all of the extra hours I'm working is making me feel frustrated and burned out. I feel like the extra work I'm pulling isn't being appreciated, and it will end up negatively affecting the project as a whole.
I understand that she wants to deliver an amazing project with big promises and that she is ultimately responsible for the project as a whole but I feel like I could do a better job handling the situation. What can I do?