---
title: "What is a Tech Lead?"
canonical: https://wavect.io/glossary/tech-lead/
language: en
description: "The most senior engineer on a team, responsible for technical decisions inside that team but not for the broader engineering organisation."
image: "https://wavect.io/img/general/bak/open_graph_preview.jpg"
---

ROLES

# Tech Lead

The most senior engineer on a team, responsible for technical decisions inside that team but not for the broader engineering organisation.

Last reviewed: 2026-05-24 by [Kevin Riedl](/team/kevin-riedl/) [wiki ↗](https://www.wikidata.org/wiki/Q139796365)

A tech lead is an individual contributor first and a coordinator second. They write code. They review code. They make the call when two engineers disagree about an implementation. They are not a manager: they do not handle promotions, performance reviews, or hiring loops outside their own team. That last distinction is the one that separates them from an [engineering manager](/glossary/engineering-manager/), and getting it wrong is expensive.

At Wavect we often deploy a tech lead alongside a fractional [CTO](/glossary/cto/). The CTO owns the architecture and the cross-team coordination. The tech lead owns the day-to-day quality of the team’s output: code review standards, how the team practices [agile](/glossary/agile/), whether the definition of done is real or theatre. Conflating the two roles is the most common mistake we see in series-A startups.

Worked example of that mistake: a company promotes its best engineer to “tech lead” and then quietly piles on 1:1s, hiring interviews, and headcount planning. Six months later the codebase has drifted because nobody senior is reviewing it, and the new lead is burned out doing two jobs badly. The fix is to name the split explicitly: technical authority stays with the tech lead, people authority moves to an EM, even a fractional one.

The honest trade-off: a strong tech lead with an external CTO sounding-board often outperforms a junior full-time CTO on paper, and costs far less. The ceiling is decision authority outside the team. A tech lead does not own architecture across products or board-level technical risk, and pretending they do just delays the moment you actually need a CTO.

How much should a tech lead actually code? Most of the time, and this is where founders quietly break the role. The instinct, once someone is “the lead”, is to pull them into meetings, planning, and coordination until they are coding ten percent of the week. A tech lead who stops shipping loses the team’s technical respect and drifts from the codebase they are supposed to have the deepest knowledge of. The rule of thumb is at least half their time hands-on, the rest spent on review, design, and unblocking. The day the coordination load genuinely exceeds that, you do not have an overloaded tech lead, you have an unfilled engineering-management seat.

Related: [Fractional CTO Austria](/services/fractional-cto/).

// FAQ

## FAQs

### Tech lead or engineering manager?

Different jobs. A tech lead owns technical decisions inside a team and ships code. An EM owns people, growth, and team health. Conflating them either burns out the tech lead or starves the team of management attention. Hire both once the team passes ~6 engineers.

### Can a tech lead replace a CTO?

For a small team, sometimes. The gap is decision authority outside the team (architecture across products, hiring senior engineers, board-level technical risk). A senior tech lead with an external CTO sounding-board often beats a junior CTO on paper.

### How much should a tech lead code?

Most of the time. Tech leads who stop coding lose the team’s technical respect and drift from the codebase. The rule of thumb: at least 50% hands-on, the rest reviews, design, and unblocking the team.

Related terms

- [CTO](/glossary/cto/)
- [Engineering Manager](/glossary/engineering-manager/)
- [SDLC](/glossary/sdlc/)
- [Agile](/glossary/agile/)

Related services

- [Custom Software Development](/services/software-development/)

Related case studies

- [Bond Analytics Platform](/case-studies/bond-analytics/)

Related guides

- [Freelancer vs agency vs in-house](/software-development-guide/freelancer-vs-agency-vs-in-house/)

Talk to us

## Structured Data

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/#organization",
      "@type": [
        "Organization",
        "ProfessionalService",
        "LocalBusiness"
      ],
      "employee": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "founder": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "legalRepresentative": [
        {
          "@id": "https://wavect.io/team/kevin-riedl/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Kevin Riedl",
          "url": "https://wavect.io/team/kevin-riedl/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        },
        {
          "@id": "https://wavect.io/team/christof-jori/#person",
          "@type": "Person",
          "jobTitle": "Managing Director",
          "name": "Christof Jori",
          "url": "https://wavect.io/team/christof-jori/",
          "worksFor": {
            "@id": "https://wavect.io/#organization",
            "@type": [
              "Organization",
              "ProfessionalService",
              "LocalBusiness"
            ]
          }
        }
      ],
      "name": "Wavect GmbH",
      "subjectOf": {
        "@id": "https://wavect.io/verified-claims.json#dataset",
        "@type": "Dataset",
        "creator": {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        },
        "description": "A machine-readable registry of quantitative and qualitative claims published by Wavect, with review dates, localized page appearances and public third-party citations where available.",
        "inLanguage": "en",
        "isAccessibleForFree": true,
        "license": "https://creativecommons.org/licenses/by/4.0/",
        "name": "Wavect verified publication claims",
        "url": "https://wavect.io/verified-claims.json"
      },
      "url": "https://wavect.io/"
    },
    {
      "@id": "https://wavect.io/team/kevin-riedl/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Kevin Riedl",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796365",
        "https://www.linkedin.com/in/wsdt",
        "https://github.com/wsdt"
      ],
      "url": "https://wavect.io/team/kevin-riedl/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/team/christof-jori/#person",
      "@type": "Person",
      "jobTitle": "Managing Director",
      "name": "Christof Jori",
      "sameAs": [
        "https://www.wikidata.org/wiki/Q139796367",
        "https://www.linkedin.com/in/jocr77/",
        "https://github.com/jo-chris"
      ],
      "url": "https://wavect.io/team/christof-jori/",
      "worksFor": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      }
    },
    {
      "@id": "https://wavect.io/#website",
      "@type": "WebSite",
      "inLanguage": [
        "en",
        "de",
        "es",
        "zh"
      ],
      "name": "Wavect",
      "potentialAction": {
        "@type": "SearchAction",
        "query-input": "required name=search_term_string",
        "target": {
          "@type": "EntryPoint",
          "urlTemplate": "https://wavect.io/search/?q={search_term_string}"
        }
      },
      "publisher": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "url": "https://wavect.io/"
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@graph": [
    {
      "@id": "https://wavect.io/glossary/tech-lead/#term",
      "@type": "DefinedTerm",
      "alternateName": [
        "Technical Lead",
        "TL"
      ],
      "description": "The most senior engineer on a team, responsible for technical decisions inside that team but not for the broader engineering organisation.",
      "inDefinedTermSet": "https://wavect.io/glossary/#termset",
      "name": "Tech Lead",
      "termCode": "tech-lead",
      "url": "https://wavect.io/glossary/tech-lead/"
    },
    {
      "@id": "https://wavect.io/glossary/tech-lead/#webpage",
      "@type": "WebPage",
      "about": {
        "@id": "https://wavect.io/#organization",
        "@type": [
          "Organization",
          "ProfessionalService",
          "LocalBusiness"
        ]
      },
      "author": {
        "@id": "https://wavect.io/team/kevin-riedl/#person",
        "@type": "Person",
        "name": "Kevin Riedl",
        "url": "https://wavect.io/team/kevin-riedl/"
      },
      "dateModified": "2026-05-24",
      "description": "The most senior engineer on a team, responsible for technical decisions inside that team but not for the broader engineering organisation.",
      "headline": "Tech Lead",
      "inLanguage": "en",
      "isPartOf": {
        "@id": "https://wavect.io/#website",
        "@type": "WebSite"
      },
      "lastReviewed": "2026-05-24",
      "mainEntity": {
        "@id": "https://wavect.io/glossary/tech-lead/#term"
      },
      "mentions": [
        {
          "@id": "https://wavect.io/#organization",
          "@type": [
            "Organization",
            "ProfessionalService",
            "LocalBusiness"
          ]
        }
      ],
      "name": "Tech Lead",
      "reviewedBy": {
        "@id": "https://wavect.io/team/christof-jori/#person",
        "@type": "Person",
        "name": "Christof Jori",
        "url": "https://wavect.io/team/christof-jori/"
      },
      "speakable": {
        "@type": "SpeakableSpecification",
        "cssSelector": [
          ".gls-single__h1",
          ".gls-single__tldr"
        ]
      },
      "url": "https://wavect.io/glossary/tech-lead/"
    },
    {
      "@type": "BreadcrumbList",
      "itemListElement": [
        {
          "@type": "ListItem",
          "item": "https://wavect.io/",
          "name": "Home",
          "position": 1
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/",
          "name": "Tech, product & engagement glossary",
          "position": 2
        },
        {
          "@type": "ListItem",
          "item": "https://wavect.io/glossary/tech-lead/",
          "name": "Tech Lead",
          "position": 3
        }
      ]
    }
  ]
}
```

```json
{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Different jobs. A tech lead owns technical decisions inside a team and ships code. An EM owns people, growth, and team health. Conflating them either burns out the tech lead or starves the team of management attention. Hire both once the team passes ~6 engineers."
      },
      "name": "Tech lead or engineering manager?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "For a small team, sometimes. The gap is decision authority outside the team (architecture across products, hiring senior engineers, board-level technical risk). A senior tech lead with an external CTO sounding-board often beats a junior CTO on paper."
      },
      "name": "Can a tech lead replace a CTO?"
    },
    {
      "@type": "Question",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Most of the time. Tech leads who stop coding lose the team's technical respect and drift from the codebase. The rule of thumb: at least 50% hands-on, the rest reviews, design, and unblocking the team."
      },
      "name": "How much should a tech lead code?"
    }
  ],
  "speakable": {
    "@type": "SpeakableSpecification",
    "cssSelector": [
      ".faq-question",
      ".faq-answer"
    ]
  }
}
```
