Status: Editing done and put internally at dbt Labs — will likely make it up on MLT website later this year when I get a new webmaster ;-)

[WIP — I put this here because multiple people have told me I should put this in writing. If you’d like me to flesh it out, please comment here! N.B. This was written as a stream of thought right after a phone call with my friend Sivan, and I haven’t had time to do much with it so — it’s very poorly formed and needs work.]

We all go through different career levels. We get new responsibilities, we get new titles, we are part of different teams. However, many of us take on more responsibility as we grow. Some of us continue to take on higher and higher Individual Contributor roles — Engineering…Principal Engineer…Distinguished Engineer…Fellow. This article isn’t about those. It’s about those of us who choose to take on the mantle of leadership, or, put more bluntly, those of us who choose to have others in our care.

Over the years, I’ve noticed that there are moments of huge change in your role, and while the exact titles may differ, the characteristics of the role changes, to my observation, have not.

Here they are. I hope you find them useful as you frame the development of yourself and others.

I — Individual Contributor

Your role is mostly focused on your work, it being the right work, done at the right speed. You measure yourself, and you are measured, by how well you coerce the computer to bend to your will while also getting along with others beside and above you. This role can keep getting more and more senior, up a completely different career path — Engineer, all the way to Distinguished Engineer, etc. Those roles are characterized by self leadership and leading without authority — and, as mentioned above, are not the subject of this short paper.

M — Manager

You lead a team of I’s (mostly). Your role is primarily to make sure that quality work gets done, but you take part in prioritization, helping people grow (so they can do the right work), clarifying schedules, etc. You also are directly responsible for the first time for people getting along and working well together. You’re still deeply technical, I hope, but you are now only partially building with your own hands and you are mostly working through others. It’s a frustrating change for many — often because you have less control over what you used to consider the actual work — and instead you spend a lot of time in coordination and meetings. These things can often feel unproductive — until you accept that they are the new way you get things done, i.e. part of the new definition of your productivity.

D — Director

You generally lead managers, though you may have one or more senior ICs reporting to you. This is “Middle management”. Your role can be one of two things; either “more of the same” of what you did as a Manager (i.e. 2–5 teams all developing generally related things) OR it can be “this thing is not like the other” where you might have teams all doing different things. The difference here dramatically affects how you should be spending your time. The key element here is that upper management is now holding you directly responsible for things other than code production — hiring, team health, multi-quarter team direction, tech debt, etc. And while you have a lot of control and leverage, you’re mostly piloting the ship from island to island, while people above you are choosing the overall itinerary. This is a time when you notice that you’re getting less feedback and you need to grow your skills at digging out what’s really going on — your title and position make it so that conversations with you are more high-stakes than they used to be. Most people’s careers top out here, maybe with an Sr D bump once they’ve done their time. In order to stay technically deep and involved, many people at this level maintain a couple senior ICs reporting to them — this helps them stay involved in the issues going on in the team and be able to weigh in on them.

V — Vice President

Aside from the I→M change, this is the biggest change (or it should be). In the D→V change, a truly important thing happens — the buck stops with you. You typically have 50+ people, 3–4 Directors and a manager or two, maybe a Distinguished Engineer reporting to you. It’s rarely “more of the same” and you typically have either wildly different tech or even different functions reporting to you. [Note: at the larger tech companies, this would typically be 1000+ people, $2–5B in ARR, so tune this up to a Director at those companies]. You are responsible for everything — what work gets done, the quality of it, prioritization, hiring quality people, programs to train and retain, engagement surveys, etc. You, if you use it well, are able to influence company direction and culture. At this level you need to hone the skill of seeking out feedback, finding the truth of what’s going on, and disconfirming your beliefs. You also need to start cultivating a much wider network of mentors because there may be few or no people at your company who have been through what you’ve been through and who can help you.

C — C-Level

There are at least 4 types of CTO. I’ll focus on the technically deep one that drives company strategy while also having the engineering team report into them. For the first time, it’s likely that your boss (the CEO) knows less about your job than you do. You have to develop an entirely different network of mentors — likely outside the company. Not only that, but you have to stop fighting for your function and now fight for the company. Your first team changes from the people who report to you to the people who report to the CEO with you (though, at larger companies, this likely happens at the V level). Your boss expects you to be objective above all else, and expects you to be an expert at the Trust Equation. You have to make sure that you’re plotting the direction of the company — both for your functions and adjacent ones, because if you don’t do it, it isn’t anybody else’s job and won’t get done. You have to create a sense of urgency and set the engineering culture of the company.

CEO

The loneliest job. In this job, you typically have people reporting to you who know how to do their job better than you do. Your job is to build and nurture a team that leads a great company, while focusing as much as needed on the things that only you can do — funding, strategy decisions, key hires, etc. If you’ve gotten this job up the Engineering ladder, you’re going to have to learn all the other parts of the business enough to lead them remarkably, while recognizing that you’ll never be a subject matter expert in any of them the way you were on the I→M→D→V→C journey. [I am not fleshing this out right now, partially because I’ve never been a CEO and partially because it’s not relevant.]

Why does all this matter?

As the Leadership Pipeline and other books tell us, being promoted is quite likely a different job, not just doing your current job more/better. From a company point of view, this is why you must put star employees in these new roles and let them “try them on for size” before promoting them into them. Otherwise, you can be in the position of watching a star fall to earth unexpectedly — and managing out somebody who merely months before was a star performer. From a personal point of view, this framework can help you realize that feeling like an imposter at the next level is correct (you are), and that feeling like you don’t have the skills to do it well and need a lot of help is both common and valid.


Footnote: Note that there may be multiple levels of the first four things — IC, Senior IC, Manager, Sr. Manager, AVP, VP, SVP, EVP, etc. However, those are organization stacking tools, and don’t change (IMO) the fundamental fact that I→M→D→V→C→CEO are all completely different jobs, with different skills, mindsets, success criteria, and failure modes.