First off, I want to caveat my response with the fact that this will vary a lot based on company. However, Microsoft is one of the world's most prestigious tech companies, so I imagine its bar for senior isn't too different from what I'm used to across Meta, Robinhood, and other FAANG/FAANG-equivalent companies.
For me, here are the core axes when it comes to evaluating a project:
- Technical complexity - This one is hard to measure as it's very subjective. The simplest way to tell is if junior/mid-level engineers struggle working with the code behind the project: That clearly shows senior+ technical depth. Other ways a project can be more technically complex is if it's closer to the infra layer (and further away from the product layer) and if it's working with legacy code as opposed to new code.
- Number of stakeholders - For senior engineer complexity, I think you need at least 5-10 people relevant to the core execution of the project, which will generally be a combination of product managers, designers (if you're working more on the front-end), and other engineers.
- Time horizon - Being able to be proactive and see into the future is a crucial skill for senior engineers. If I were to put a number on it, a senior engineer project should take at least 4-6 months to complete.
- Ambiguity - Did you have a well-defined PRD and designs when you get the project or was it more of the "some scribbles on a napkin" level of fidelity? The latter makes the project more "senior".
All that being said, I think what a lot of people don't realize is that even if a project is "senior-level" doesn't mean you're a senior engineer if you take it on. The level of credit you get on a project is actually the cross-product of 2 vectors:
- The scope of the project (covered above)
- The depth of your behavior while you were executing it
It's possible to do a "senior level" project with a mid-level engineer's performance overall due to poor execution. It's also possible to turn a "mid-level" project into a senior engineer's performance with exceptional execution and expanded scope. Here's some axes to evaluate an engineer's depth of behavior when doing a project:
- Leadership - I mentioned that number of stakeholders is important, but it's not at all relevant if you're just functioning as yet another individual contributor. You need to be a lead or co-lead of the people on the project in order to claim "senior engineer" credit.
- Project Attribution - In other words, "Were you the one who came up with the project and successfully aligned people to get it on the roadmap?". You get a lot more credit when you were the driving force behind the genesis of the project as opposed to just receiving some well-defined project from your PM or EM.
- Quality Of Execution - Did the project complete on time? Was the team able to build in a healthy way without burnout? Did other engineers on the team grow due to the project's execution? Was thrash minimal? Did the launch go well with very few (or even 0) production issues? If you can answer "Yes" to all these questions, that's great sign of senior engineer behavior.
- At Instagram, a big part of my promotion packet to senior was finding a multi-million dollar bug and fixing it with a lot of depth. Here's the in-depth breakdown of this.
- This is 1 level above, but Rahul created a powerful internal debugging tool that helped get him to staff at Meta. It's covered in the video here.
- In March 2021, I joined Robinhood as a senior engineer and was able immediately hit the ground running. Here's the video about it where I break down the project I championed after I started with a focus on the tech lead behaviors I was able to show.