Level Up: Choosing The Technical Leadership Path

Complexity

2 types of complexity:

  • essential complexity
  • accidental complexity
    • C Java: no memory management
    • self-host infrastructure cloud: easier to choose the type of infrastructure
    • inapropriate abstractions “simple” code

A lack of technical leadership increases accidental complexity.

What is technical leadership?

Technical leadership is the act of aligning a group of people in a technical context.

Example: mis-alignement in pull request process.

Technical alignment

  • lack of
    • group of individuals
    • priorities individual task
      • work system disincentivizes us against working together as a team and create mis-alignement
    • “I’ll do it my own way”
  • stronger
    • high performing team
    • prioritizes long-term
    • strong collaboration

Who is accountable for technical leadership?

The speaker is suggesting to have a different model as the actual ladder evolution, which is either IC (Individual Contributor) or Management. He proposes the trident model (might not needed for all companies):

  • technical leader
    • names (depending on the companies): lead dev, tech lead, staff engineer*
      • accountable for technical alignment
    • 70-80% time spent: leading technical topics and teams
      • aligning team
      • technical vision
      • technical risk management
      • tech debt management
      • growing technical knowledge
  • individual contributor
    • levels
      • staff engineer*, senior software engineer
        • create some technical alignment
      • software engineer, junior software engineer
        • maintain technical alignment
    • 70-80% time spent: “Executing, doing”
      • designing
      • testing
      • coding
  • management
    • engineering manager
    • 70-80% time spent: managing the system
      • supporting
      • planning
      • budgeting
      • organising

Leadership skills:

  • empathy
  • conflict resolution
  • feedback
  • coaching
  • self-awareness
  • influencing
  • communication
  • motivation
  • delegation

How to start technical leadership?

  • look for misalignment/neglect
    • ex:
      • why does everyone have their own special build script?
      • pull request reviews are really different depending on who completes it
      • why haven’t we got rid of this outdated tool?
  • choose to own the issue
  • seek sponsorship
  • deliver value
  • celebrate (and repeat)

It’s easier for manager to recognise what you are already doing, not what you might do.