Defining a Distinguished Engineer
I learned a lot about myself and the way big companies are organized over the past year or so. I had mentioned a bit in a previous blog post and podcast about “the N + 1 shithead problem” (from Bryan Cantrill’s talk on leadership). To reiterate, the “N +1 shithead problem” occurs when you are demotivated by seeing people who are a level above you behave poorly, or more bluntly when they behave like a shithead. I know from experience what a huge demotivator this is and after talking to several other folks I realized this is quite common.
When faced with this demotivator, I found myself thinking “why would I want to be at their level, when once I get there I’ll just be one amongst the dipshits.” It’s a horrible feeling to have and I’d love to have a model that resembles what I think of as a distinguished engineer or technical fellow.
In this post I will define what it means to me to be a distinguished engineer or technical fellow and maybe others that agree will modify their ladders to incentivize people to resemble these qualities.
The first thing people think of when they think of a distinguished engineer is that they are a technical leader. I fully agree. A technical leader can understand all parts of a system. They can also be dropped into a new system and pick up the way it is architected and designed with relative ease. I think this is an important distinction to make. It’s good to be an expert in a field, but only being an expert is limiting. It’s also important to understand the full picture and that takes general knowledge. I think having a general knowledge of things outside your area of expertise is key if you choose to gain expertise in something.
A technical leader can always realize that there is more to learn. One cannot be an expert in everything and you can have a general knowledge of most things without fully understanding the details within. A technical leader can always strive to continue to learn and persuade others to continue to learn as well.
A technical leader can build up others and empower their colleagues to do things that are more challenging than what they might think they are capable of. This is key for growing other members of an organization. I personally believe you don’t need a high title to take on a hard task, you just need the support and faith that you are capable of handling it. That support can come from the distinguished engineer and be reflected in their behavior towards others.
A technical leader can also make time for growing and mentoring others. They can be approachable and communicate with their peers and colleagues in a way that makes them approachable. They can welcome newcomers to the team and treat them as peers from day one.
Give constructive technical criticism
A distinguished engineer can never tear others down but they can be capable of giving constructive criticism on technical work. This does not mean finding something wrong just to prove their brilliance; no, that would make them the brilliant jerk. Constructive criticism means teaching others to make their work better when there are problems, while also encouraging them to iterate and empowering them to succeed.
Have strong opinions loosely held
A technical leader can be able to have strong opinions loosely held on designs and architecture. They do not need to have opinions on everything, that would be pedantic. Technical leaders can be able to use their experience to help others succeed, while also empowering others to own solutions. Technical leaders can not pass down solutions to problems but allow others to learn by letting others come up with solutions themselves. This is where good constructive criticism (from above) can come into play.
Great communicator and bridge
A technical leader can have strong communication skills and be able to articulate the “why” of a problem as well as articulate the technical details of designs. They can never communicate in a derogatory manner. They can always communicate to others as peers and colleagues.
At times, technical leaders will need to act as a bridge between teams. It is really important to be able to clearly communicate then as well as always.
Humility and empathy
A technical leader can not be driven by ego but by a constant urge to learn and grow both themselves and their colleagues. They can have empathy for others and portray kindness towards their peers and colleagues.
Prioritize shipping and decisiveness
A technical leader can value shipping and decisiveness. They can not be susceptible to analysis paralysis. At the end of the day most people have jobs to get things out the door and this can be a priority. Of course, shipping can not come with the trade off of burning out a team or setting the company on fire.
Technical leaders can always seek feedback from their customers. This might be the internal customers of their infrastructure or external customers if they are on a product team. The best technical leaders are capable of empathizing with customers and iterating quickly on customer feedback.
Build resilient systems
A part of being a technical leader is having the experience of building multiple systems in the past. Distinguished engineers can be able to anticipate various failures from their past experiences and build systems that will not create the same failures. Of course no system is perfect so they can be able to learn from the failures they cannot anticipate as well. This is a cycle that they can then use when building the next system.
Value quality, performance, and security
Great technical leaders value quality, performance, and security in what they build. They stay up to date on advancements and research in technology so that they might be able to use new techniques for bettering their solutions. Technical leaders can also build with respect for users and their privacy.
Technical leaders can value writing code that is easy to maintain and easy to understand. They can value unit and integration tests as well as making sure if a bug is fixed it has a test to make sure there is not a regression. Technical leaders can use code comments, not as a garnish, but to denote things a reader would need to know. This could be details of a code section that fixes a specific bug or maybe reasoning behind why something is written a certain way. Documenting context is super valuable and helpful for maintainability.
Good technical leaders are also leaders in the outside communities. This can include giving talks on various things they have built as well as mentoring others in the community or the workplace.
Learn from external community
If you silo yourself to only learning within your company, you are missing out on a world of experiences and expertise different than yours from the external community. Technical leaders realize this and place importance on learning from the larger world of computing than just their silo.
Value listening and be open to feedback
By gaining feedback and making yourself visible to an external community, leaders avoid a dunning-kruger like effect of only growing inside an echo chamber. It is always valuable to see where the rest of the industry is focusing and how technical leaders at other companies are solving problems. Technical leaders realize that there is much to learn from people with different experiences than their own. They can always be open to listening to others.
Technical leaders can always remain humble and modest. The best technical leaders know that it’s not possible for them to know everything and will prioritize keeping an open mind to always be learning.
Call upon other experts
The best technical leaders know when they need to call on experts in specific areas for help or feedback on certain designs or architecture. By participating in the external community, leaders form strong networks and bonds with fellow engineers they can call on when they need them. Technical leaders can always be eager to use these relationships when they need them or introduce others to these folks if they could use their expertise.
Along with being able to call upon other experts, technical leaders can value well researched solutions. They can strive to learn from prior art.
Always make sure to have fun and not take yourself too seriously!
These are just a few of the things I think define a strong technical leader and engineer. I am sure I will grow this list as I personally grow myself every day.
Most importantly you must actually do these things. Actions speak louder than words.