CTO vs Head of Engineering

What is the difference between CTO and Head of Engineering / VP of Technology at a 30–100 people company?

Gajus Kuizinas
4 min readAug 10, 2021

Contra is growing fast and we are bringing in people that are taking over some of the responsibilities that were owned by the CEO/CTO at the early stages of the company. For CEO, that’s noticeable with Head of Product. For CTO, that’s most likely to be Head of Engineering. However, there is some ambiguity about these roles. Below is my take on what that separation looks like in a startup and when it is time to split these roles.

Preface

I intentionally (for clarity) emphasize in this article that one or another thing is a responsibility of either CTO or Head of Engineering. However, in practice, CTO and Head of Engineering are peers and most of the decisions are discussed between them (similar to how a co-founder relationship works). Success of both of these roles is judged by the success of the engineer organization.

30,000-foot view

CTO (executive)

  • focus on technology vision and “whats next”
  • communicates vision / confidence to external stakeholders
  • plans technology direction based on business plans and market trends
  • decides high-level strategy

Head of Engineering (manager)

  • focus on people success and operational success
  • plans technology based on team and available resources
  • implements technology direction

CTO is responsible for vision and communication

CTOs job is to communicate confidence to external stakeholders about the technology choices and the engineering organization, security and scalability (e.g. in conversations with TikTok, CTO would address questions about our security practices, or in conversations with VCs, CTO would discuss strategy for attracting and retaining talent.)

CTO is responsible for knowing the market, growth & marketing plans, so that they can change the technical direction as necessary (e.g. knowing that we are planning to rollout a crypto wallet, CTO would prioritize security audits, or knowing that a competitor is releasing a similar product, CTO may post-pone release to evaluate market feedback) Head of Engineering makes decisions based on team and technology, and plans to release deliverables when they are ready.

CTO is responsible for defining the high-level architecture / structure / culture (e.g. build in-house vs buy, open-source vs proprietary, full-time employees vs consultants, request-driven vs event-driven, monolith vs micro-services, etc). Head of Engineering executes on these decisions.

CTO is responsible for procuring technology related resources (e.g. negotiating Segment, Google Cloud, etc).

I would also say that… CTOs job is to stay up to date with the latest technologies and advocate them internally and externally (e.g. using Relay over Apollo, writing / talking about these technologies & engineering culture). However, depending on the stage of the company, this might be too deep into the weeds.

Of all the technical decisions that are on Head of Engineering plate, CTO is responsible for evaluating which ones to elevate, decide on, and translate that reasoning down, e.g. CTO might task Head of Engineering to build a solution with the existing resources at hand. However, they may plan and eventually override decisions that Head of Engineering did if new resources / new requirements emerge, e.g. Building event aggregation using GraphQL mutations made the most sense in the short term, however, now that we are hiring data team and have access to Segment, sending those events through Segment is the preferred solution to enable autonomy for the data team.

Some ways to evaluate success of CTO:

  • Is the organization able to secure funding and partnerships?
  • Is the organization able to attract and retain talent?
  • Are people within and outside of the organization excited about the technology vision?

However, CTO also shares responsibility for all the success criteria set out for the Head of Engineering (see below).

Head of Engineering is first and foremost a people champion

Head of Engineering is first and foremost a people manager / people champion. Their job is to setup engineers for success, mentor and motivate them, identify & escalate problems, ensure that deliverables align with the CEOs/CTOs vision, and that deadlines are met. They know how to estimate work units, how to manage the development process, and how to get the most of the team. While these are the core responsibilities, Head of Engineering is likely to also be involved in product strategy discussion, research or any other number of activities that make up the organization.

Some ways to evaluate success of Head of Engineering:

  • Do you have a smooth recruitment process?
  • Do you have a smooth onboarding process?
  • Does everyone receive mentoring?
  • Do you have visibility over performance of the engineering organization?
  • Is the engineering organization tight? (efficiency, collaboration, respect)
  • Are deliveries coming out on spec, on time and on budget?
  • Are the services running reliably?

Peer Relationship

As I mention at the beginning of the article, the relationship between CTO and Head of Engineering is symbiotic. Virtually all of their activities may be overlapping. It is important to have some success criteria for each role, however, these roles do evolve and overlap over time. “people management” on its own is not a thing if you do not have the right strategy, processes, technology and product in place. Building a healthy engineering organization is a collaboration.

When to split CTO and Head of Engineering into 2 roles?

As for when both roles should exist in the organization, that depends on priorities. At the moment, despite all the things I listed that CTO should be doing, upwards of 70% of my time has been focused on people success. It is the most important role when building an engineering organization / culture from the ground up. However, gradually other mentioned things become a priority, and when one is impacting the other, it is time to think about splitting these roles.

--

--

Gajus Kuizinas

Founder, engineer interested in JavaScript, PostgreSQL and DevOps. Follow me on Twitter for outbursts about startups & engineering. https://twitter.com/kuizinas