I'm a coder who has worn a lot of hats, from individual contributor to lead engineer to "CTO" (yes, in quotes, make of that what you will!). I've a lot to learn and hopefully some to share as well.
It's pretty flat. Technically we have titles but they're a little meaningless.
I think somewhat of a hierarchy has emerged anyway with three layers:
The people who are purely individual contributors. They're often entry level, or they just choose to avoid responsibilities beyond writing code (which is a fine choice to make, as far as I'm concerned). These people usually have "software engineer" as their title.
The people who are willing/able to mentor people, lead projects, possibly put in long hours (at least sometimes). I'm in there somewhere. These people often bounce around between IC and leadership roles. They usually have titles including "lead engineer", "director of engineering", "CTO" (technically that's my title, but it makes zero sense, so sometimes I prefer to say I'm a "lead engineer". We have several "CTO"s).
The people who are mainly leaders and spend most of their time on leading teams and architecting large initiatives. They have the same titles as the people in rung 2 so you can't tell who they are at a glance, but you would quickly see that they command a lot of respect and trust, including from the executive team.
It can be a little chaotic, but I've also enjoyed that I can easily move around and do different things without bureaucracy and switching my job title. I wouldn't want to be a leader all the time, it's tough. I stay hidden in my code hole until duty calls and some project needs a lead engineer. Even when I'm in IC mode though I still do one-on-ones with people I used to manage, lots of code reviews, and there are often some quasi-management tasks that pop up here and there.
Complaining upwards is a great piece of advice!
Are you working at an org with a flat structure then? How is that?
It's pretty flat. Technically we have titles but they're a little meaningless.
I think somewhat of a hierarchy has emerged anyway with three layers:
It can be a little chaotic, but I've also enjoyed that I can easily move around and do different things without bureaucracy and switching my job title. I wouldn't want to be a leader all the time, it's tough. I stay hidden in my code hole until duty calls and some project needs a lead engineer. Even when I'm in IC mode though I still do one-on-ones with people I used to manage, lots of code reviews, and there are often some quasi-management tasks that pop up here and there.
Very interesting, thank you for sharing. What would you say the biggest pain point or thing to watch out for with that structure is?