DEV Community

Cover image for Want to be a Senior Engineer? Do this
Colin Morgan
Colin Morgan

Posted on

Want to be a Senior Engineer? Do this

Becoming a Senior Engineer is an important milestone in your career, but what are the exact steps to becoming one?

Unfortunately, the reality is that there is no universal checklist that can be used to determine someone’s level. A lot of times it comes down to the company you are applying to and the level of people you’ll be working with. With that said, here are some steps you can take to put yourself on the right track.

Become a domain expert

Most jobs will have you working with large swaths of code, spread across multiple systems, each with their own quirks and requirements. Choose a system and become the domain expert for it. Here are some ways to achieve this:

  • Volunteer for projects that involve these systems.
  • Perform any required maintenance for them.
  • Write or improve documentation for them.
  • Volunteer to investigate and answer questions related to them.
  • Take the initiative to document any changes or improvements that would make the system more efficient or reliable.

You’ll begin to notice that people will start coming to you any time they have a question about this system or involving you in planning related to it. You’ll also start to notice, in your own mind, that these questions emphasize how much you know about the system compared to others. This is a clear sign that you have achieved your goal. Now choose another system and repeat the process.

Develop a solid understanding of security

One key thing that separates a Senior from a Mid/Junior is their understanding of security.
You should spend time learning and understanding security best practices for your area of expertise. Working on web apps? You better know topics like:

  • How to store and manage passwords and sensitive information.
  • What TLS is and why it’s used.
  • Hashing algorithms and how they work.
  • Authentication/authorization and how both work.

At the end of the day you should be able to identify breaches of security when reviewing code. You should also be able to design and implement systems that adhere to the security standards of your domain and be able to explain why the related precautions are necessary.

Take ownership

Taking ownership is more of a shift in mindset than anything else. The mindset is one of viewing a system as your system. If you spent an hour washing and waxing your car, how would you feel if someone walked up, just as you finished, and sprayed it with mud? Embracing this mindset, you’ll notice several things happen:

  • You’ll start to recognize very quickly when something is either beneficial or detrimental to the system.
  • You’ll have an urge to “keep it clean” which helps greatly with code reviews and feature requests.
  • You’ll develop a sincere interest in the system, which becomes obvious to your coworkers.
  • You’ll actively look for ways to improve the system.

Once you begin to take ownership, you’ll find yourself naturally leading efforts involving the system in question. Why? Because it matters to you. This type of genuine ownership is that “hard to describe” quality that you admire about most high-level engineers.

Be a multiplier

One of the clear signs that someone is a Senior level engineer is that they spend their time being a multiplier. At the end of the day, our contributions are limited by the number of hours in our work day. The work around to this is looking for opportunities to increase the productivity of those around us. Here are some examples of being a multiplier:

  • Taking the initiative to unblock a project. If you have five engineers assigned to a project that is blocked, you have five engineers doing nothing. Even if it takes 100% of your effort to help unblock those engineers, you’ll be increasing the current productivity by 500%.
  • Mentoring. Spending an hour or two of your week to help mentor another Engineer can dramatically increase that Engineer’s effectiveness. Bonus points for convincing them to mentor others and pass it on.
  • Document everything. Writing good documentation is the quintessential multiplier for Software Engineers. Every minute spent reading documentation is a minute not taken from a fellow Engineer to explain how to do something.

Speak up

Learning to contribute to discussions is an important part of becoming a Senior. Yes, sometimes your input will not yield actionable results. Yes, sometimes you’ll say something that was obviously wrong or will be dismissed. Yes, it will sometimes make you feel stupid. However, contributing to discussions is the only way to develop your voice and authority. By speaking up, you’re showing your team that you are thinking about the topic at hand and that you are willing to take initiative. Opportunities to speak up:

  • You don’t understand. Asking for clarification shows that you are engaged and listening. It also helps quieter people who are also not understanding but are too shy to ask.
  • You think there might be a better approach. Even if you are wrong for some reason, it’s important for you to understand why your approach won’t work so that you can improve problem solving skills.
  • You see a way to contribute. Maybe you worked on a related feature recently and have valuable insight to the discussion. Often this will open the door for you to be involved in a project that you wouldn’t have otherwise.

Remember, although these steps will help accelerate you towards being a Senior Engineer, at the end of the day it comes down to experience and time.

Good luck and feel free to reach out if you have any questions.

Find me on twitter: https://twitter.com/ColinMTech

DM me for coaching/mentoring sessions.

Top comments (0)