Note: I’ve recently been focused on better understanding what motivates engineers, what the optimal motivation is, and how to best hire + unlock talent. The following are my thoughts thus far. Definitely not complete or comprehensive.

At a high level, there are bad engineers, good engineers and great engineers.

Bad engineers are static in their output. Some even have an unfortunate decay function. As the times change - maybe the business model shifts or a new technology is introduced - they become less productive. They end up as a net drag. People need to invest a ton in onboarding them or pulling them along. They don’t push themselves - or - if they do, they don’t have the tools or drive to do it effectively. They spin their wheels.

Good engineers compound themselves up to a point. Prior to that point, their motivation compels them to become better. Prior to that point, they are high performers. After that point, their output decreases and they have a high likelihood to churn. That point is where the companies’ priorities have changed and are no longer able to align with the engineer’s values (e.g. most important problems no longer “hard” in academic sense).

Great engineers compound themselves indefinitely. What separates good vs. great engineers is (a) a strong intrinsic motivation that is (b) driven by wanting to provide value and improve. This takes form in aggressive ownership, personal development (reading, talks, etc), and wanting to understand the why. These are the engineers that stick through pivots, through rough patches, and are a pillar of sorts for an organization.

Dilbert on Motivation

I find that what separates bad, good and great engineers is most often the type of motivation that drives them. The right type of motivation, by and large, can make up for lack of experience or expertise. Conversely, experience and expertise rarely make up for poor motivation. This varies based on the context, of course, but in engineering (and especially at startups), I believe motivation accounts for a large percentage of output you’ll see from a person over the course of a reasonable time horizon (say, 6 to 9 months or more). But also over the course of a medium and long horizon (this is what separates good from great).

Bad engineers focus on cost-minimization

Bad engineers… and by bad, maybe I mean the worst because there can definitely be bad engineers that focus on value extraction… focus on cost-minimization. By that I mean that they focus on minimizing something that causes them discomfort.

Symptoms:

  • LIFO: Last-in, first-out. They aren’t here to make a name for themselves. This is a job not a livelihood.
  • Early Peak: Within the first few weeks of onboarding, they’ll peak in output. They will rarely stretch beyond this point.
  • Ambivalent: When you press to understand performance, it’s not clear. It seems like it’s motivation or maybe skill-level or maybe interest.
  • Unhappy with change: If they get a new boss or a new set of tasks, they aren’t thrilled.

Their output looks something like the graph below. Upon initial onboarding they’ll get ramped up to where they have somewhat average output. However, they will start to decay as time goes on. They aren’t focused on growing. They treat their job as a 9-to-5, clock out, and go on with their life. They are not fans of change. If you press hard, you will be able to see small local maxima of performance. Don’t be excited, the improved output will dissipate.

Bad engineers

Good engineers focus on value-extraction

Good engineers are focused on extracting something of importance to them. The difference between good and great revolves around whether the “value” is aligned with the company (no = extraction, yes = maximization). There are likely companies, or stages of companies, where these engineers are well aligned with the environment and an engineer with such motivation can be great. But there are times where this isn’t the case… but the engineer will still be good (or not terrible?).

Two of the clearest archetypes of value-extracting engineers are those that care about hard problems and those that care about status.

The Hard Problem Engineer

  • Symptoms:
    • Always looking for a challenging problem, preferably one that hasn’t been widely solved before.
    • Derives satisfaction from flexing mental muscles and using the latest solution.
    • Easily bored when tasked with maintenance or clearly achievable problems.
    • Typical of data engineers and data scientists.

These engineers are a gift and a curse. While the problems are hard and relevant to the business, it’s smooth sailing. As soon as the highest value task is not intellectually hard, it becomes an uphill battle for engagement and retention.

The Money/Status Engineer

  • Symptoms:
    • Constantly benchmarking against others. Incessant about what’s next on his or her career trajectory.
    • Comp season is highlight of the year. Want to make sure everything leads up to that.
    • Hard worker and likes to provide value, insofar as it contributes to his or her status.

These engineers are fine as long as you can manage expectations and have the cashflow to keep them happy.

The output for value-extracting engineers looks something like the graph below. They tend to continuously compound until they no longer can extract the value they seek from the company. This means the problems the company faces are no longer the problems they are interested in solving. Or the company is going through a rough patch and they no longer can keep the same compensation trajectory that is important to them. Nonetheless, these engineers are normally powerhouses for a year or two. You just have to be comfortable with churn.

Good engineers

Great engineers focus on value-maximization

Great engineers are focused maximizing something of value to them. This value is frequently a desire improve and create an impact. This allows them to be fulfilled at various stages of a company’s lifecycle. Below are some indicators that an engineer is driven by maximizing value.

Symptoms:

  • Always curious about how his or her work maps to business
  • Willing to jump on anything that either (a) benfits others / the company, or (b) teaches him or her something new
  • Unphased by company changes, calm during chaos
  • Hungry for constructive criticism
  • Takes learning and teaching very seriously
  • Rarely disengaged (even if a meeting topic isn’t in his or her domain, this person is attentive)
  • Obsessed with his or her trade, wants to be on the ball and the person

The corresponding graph is obviously optimisitic but the general characteristic stands. These engineers continuously improve and do so indefinitely. They care about the value they provide to their coworkers and to the business. They care about becoming better at their trade. Since their trade is building software to drive value, both the way in which value is driven (this can change with pivots) and what software is needed are somewhat independent of both their engagement and output.

Great engineers

So…

This is a start for understanding what type of engineer you’re working with. There are two open questions I have:

  1. How do you screen for great engineers during hiring?
  2. Is it possible to help someone change what motivates him or her?

In any case, interested in thoughts on whether I’m thinking about this correctly and whether there are any other caveats or symptoms to consider for the cases above.