Variables and Values: What makes a Senior Engineer?

Cris Bettis
Aug 31, 2018 · 3 min read

What is a senior engineer?

That’s actually a pretty difficult question to answer. The simple, obvious and mostly wrong answer is that they are just a regular engineer with tons of experience.

Another answer is: “I’ll know it when I see it.” Which is a useless answer that mostly tells us that this is based on subjective criteria.

It might be better to ask the question: What does a senior engineer do? The answer to that will largely vary by organization. But, it usually boils down to a few things. Seniors are expected to be really good at their jobs. They should know what they are doing well enough that not only do they deliver solid solutions, but they reduce errors and inefficiencies in the code base in general. This is usually done through strong architectural/design practices and through raising the skill sets of those around them.

To simplify, senior engineers need to be skilled in coding, designing and mentoring.

Also, of great importance: Extreme whiteboarding skills.

Variables

Engineers produce two things when they work on a solution. Design and code.

Design is how the problem was solved. Good design will reduce or completely negate unwanted side effects to the code. It helps to dictate things such as performance and maintainability. Solving a problem is easy. Solving it well, is not.

Code is how the design was implemented. What libraries or classes were used? How was the code structured? The choices of tools and techniques effect performance and maintainability but to a lesser degree than design.

If the problem you are trying to solve is to reach a destination, design is like selecting a mode of transportation. Coding is like driving. You can be an excellent driver, but if you choose to use a scooter for a cross country trip, you’re going to have performance issues.

Design is a hard skill to teach and often comes with experience.

Values

Ideally, you want senior engineers to not just produce code, but to raise the bar on the engineering team as a whole. This means the role has some influence and trust baked into it.

Senior engineers can do this by raising code quality directly (refactoring, feature work) or they can raise it by raising the quality of the engineers around them (code reviews, mentoring). The former exercises their technical abilities discussed above. The latter exercises their value system. Values are a definitive attribute of being a senior engineer.

It is more effective to have senior engineers raise the quality of other engineers than for them to shoulder that responsibility themselves. This is what makes the mentoring aspect of senior engineers so important.

Values are beliefs that the senior engineer will hold to be guiding principles in how they approach their work. They can range from being technically focused such as “Less is more, if all things are equal, use the simpler solution,” to being customer focused, “Value the user’s interest over engineering’s interests,” to being ethically focused, “Don’t contribute to the spam problem.”

As a mentor, senior engineers will pass on their values to the engineers around them.

Senior engineers should have boundaries as a result of these values. When asked to violate their values, senior engineers should not be quiet. Depending on the severity, they should be willing to raise issues, push back, refuse to do work or quit. They should also advocate for their values when individuals who have not yet developed values, such as junior engineers, are asked to do things that individual may not yet see as harmful.

From a management perspective this can seem to add some complications, but these very values will prevent the company from developing unhealthy development habits, bad reputations or from getting into legal trouble. They provide an immune system against bad practices.

The Calculus

When hiring or promoting a person to a senior engineer position it is important to consider both aspects of the role. This position is one of influence and that individual will hand down their knowledge and their values to other members of the team.

Fill these roles with care.

Cris Bettis

Written by

Code Artisan, UX Enthusiast, Geese Juggler

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade