I’ve recently finished reading a book about what a Staff Engineer does. You can read about it from https://staffeng.com/. Ever since I started working as a software engineer back in 2017, I’ve set my eyes on how to become a Senior Engineer. The title of Senior just felt so far away while I felt I was a newbie in coding, system design, and language fluency. It wasn’t until later I found out these weren’t the only things that a Senior needed to be. This post is combining my own experience and what I’ve read from Staff Engineer book to describe what a Senior-plus Engineer does and how to get the title.
Senior Engineers at this point of career should understand what the company and team needs and align themselves with those goals. Using these as bases to set up technical directions and explore what else can be done. It could be questions like which technology to adopt, what process can we implement, what best practices to set in place, etc. Not only setting direction for team but also provide mentorship to other junior engineers to make sure they are on the right track and help them get onboard fairly quickly. If they can be productive sooner rather than later then in the end you are helping the company in the long run.
As mentioned, you should implement or be involved in deciding the best process to ensure technical quality and maintain it. It could be but not limited to:
- Set a minimum code test coverage percentage to ensure your codes have unit tests
- Linting so your codes are of the same style
- Set up CI/CD for having things run automatically on pull request
- Dependency checking so no orphan file or circular dependency
- Performance checking so it doesn’t slow current system
- Integration or E2E test to ensure systems work well together
- Log and error reporting so we could be notified and have logs to reference to
If you identify a problem, try to document it with proposed solution and let everybody on the team know. Gather early feedback, modify, then roll it out. However, sometimes people are just busy or they simply don’t care so the best way in this case might just simply start doing it. One thing needs to note is don’t roll out multiple changes simultaneously or people get tired and start opposing. I’ve witnessed this first hand.
Be the Influence
Being a senior-plus engineer, be the mentor that everybody needs. Of course you can be that person that knows everything and holding key knowledge to certain service so company can’t fire you. Or you can make sure the whole team evolves with you and sharing your knowledge to everybody. You can improve everybody so eventually allows more people to make things better and you have a better work-life balance since not everybody has to ask you questions anymore.
At this stage, you may need to accept that fact that you might not be the person under the spotlight anymore but more on support role. In a meeting you would be driving the conversation, ask the right question, gather feedback, and make decisions. You may not do the actual work but you would at the end make sure things are delivered and on time with the proper quality.
Present Your Ideas
This should be applicable to anybody regardless of your title. At some point of time during your career you may have awesome ideas that you think will benefit the project, the team, or even the whole company. Before you write anything down, make sure to figure out who your audiences may be. Depending on the proposal you may present to your engineer colleagues or business people.
- Define the situation. What is happening or what is not happening. It could be the speed of development, the performance issue, etc.
- What is the complication? What is the road block or you have noticed a result that is not there but should be expected.
- How do we address this and what is the question we should address.
- Finally, what is the answer or solution for this. What is the path that we agree to take.
Getting the Title
Every company is different. Some have senior or staff-level projects that you are required to work on before you are entitled for a promotion. Some go through a more gradual and unclear process before you can get the title. Regardless of which, you can do the two things:
- Communicate with manager. Speak out that you would like to move towards that next level, see what you can do and align yourself with manager. Get that constant feedback to ensure you are on the right track.
- Be visible. You need to somehow convince people that you deserve a promotion by showing your work. Be present in the meetings, write document for new process, being new ideas to the table.
In the end, you are showing your influences to other people to ensure people are on the right direction. Company greatly benefits if other people start working like you, thinking like you, unless you are a really bad engineer. Also at this stage, you need to realize you cannot work on everything so only works on things that truly matter.