
The main aim of this post is to give an overview to engineers about what they need to learn and how to grow themselves to be able to move to the senior level.
One good way to think about it is looking for a teammate or an engineer in the company that is rocking at the senior level, and try to learn from their actions.
The Senior Engineer Level
This is a level for strong engineers. From this level on it is not only about engineering skills but also having a bigger vision of the product and helping other engineers around to also improve and grow.
What you should do in this role
You can take complex requirements for projects with multiple stakeholders and dependencies, do research, put together technical design docs, create epics with stories and task breakdowns and lead other engineers to execute. You are able to work with outside stakeholders and dependencies and clearly communicate technical solutions, plans and deadlines.
Your work touches your peers and your team more than before. You bring solutions and proposals to the table that affects coding style, workflows, planning, grooming, scoping or anything else that the team does. Your work starts to more and more elevate the whole team, instead of just elevating you as an individual contributor.
You are able to lead other engineers and challenge all parts of the product development progress like:
- Challenging the product requirements. Do we really require this? Are we making simple things hard? Are we taking steps back instead of forward with this feature? Does the effort versus the value calculation make sense?
- Design. Does the UX make sense? Is it technically reasonable to add complexity that the UI/UX demands? Can we reuse something we have done before? Can we build and ship it in stages?
- Release plan. Can we split the solution into multiple parts and release them separately? Can we extract essential things and ship them fast and work on fine-tuning later? Should we deploy with targeting and not all together?
- Technical. Can we reuse parts we have created before, or do we have something in the pipeline that would already solve the problem we are trying to solve? Does the proposed solution make sense and is it optimal, clean, matched our code style? Are we creating similar components to the ones that are already present, should we make the component universal?
You ask questions a lot to challenge both product and technical solutions and direct attention to missing pieces in discussions.
Let us illustrate the expectations of this position with a story
Story of Average and Beyond
A certain farmer had become old and ready to pass his farm down to one of his two sons. When he brought his sons together to speak about it, he told them: The farm will go to the younger son.
The older son was furious! “What are you talking about?!” he fumed.
The father sat patiently, thinking.
“Okay,” the father said, “I need you to do something for me. We need more stocks. Will you go to Cibi’s farm and see if he has any cows for sale?”
The older son shortly returned and reported, “Father, Cibi has 6 cows for sale.”
The father graciously thanked the older son for his work. He then turned to the younger son and said, “I need you to do something for me. We need more stocks. Will you go to Cibi’s farm and see if he has any cows for sale?”
The younger son did as he was asked. A short while later, he returned and reported, “Father, Cibi has 6 cows for sale. Each cow will cost 2,000 rupees. If we are thinking about buying more than 6 cows, Cibi said he would be willing to reduce the price 100 rupees. Cibi also said they are getting special jersey cows next week if we aren’t in a hurry, it may be good to wait. However, if we need the cows urgently, Cibi said he could deliver the cows tomorrow.”
The father graciously thanked the younger son for his work. He then turned to the older son and said, “That’s why your younger brother is getting the farm.”
At the senior level, it is expected that the engineer looks further than the immediate task before them and asks questions to challenge and improve the initial task description to find smarter, more valuable solutions. Senior people usually have enough knowledge and drive that they want to create their own work. This means that when working on a task, they understand the needed followups or further developments and create and plan these after the initial development ends.