I’ve been around enough startups recently (especially Australian ones) to have noticed a pattern of confusing titles, stunted career opportunities and early promotions stunting the healthy growth of engineering orgs.
A few of the most egregious mistakes (and one I made myself) is the premature titling of CTO to the technical founder. A startup of 5, 10 or even 20 engineers doesn’t need a CTO and in all honestly, it’s unlikely that the technical co-founder has time to act like one. At the early stages of growth, a tech founder should be focused on a mix of shipping code, growing the team and building scalable engineering practices. Two of these are the most important - and hint, it’s not shipping code. If this sounds like a head of engineering or a VP of Engineering then you’d be closer to a valid title than you think. Still, until you’re at the size of needing to add unnecessary levels why not drop all the pretense and leave it at Technical Founder.
The one time the above rule can be broken, or if at all bent is if you don’t have a technical founder and you need to hire someone to lead your development. In that case the question becomes does your candidate have the right skills to be your long term leader of engineering? If you’re certain then go ahead and give up that title (once it’s given it’s hard to take it back). If not, there’s still plenty of valid and prestigious titles to start with. Try lead engineer, head of engineering or even first engineer.
Next up, career titles. I’ve witnessed some crazy lack of and over use of titles at startups. I’ve seen engineers with a year of experience given senior titles and new titles made up just to give a new hire or a tenured engineer a higher title. You can rename titles a bit but let me break down each of the levels and give you an idea of what engineering ladders should look like.
Junior Software Engineer - A graduate or an engineer with less than a couple years experience. Does tasks assigned and needs mentorship and guidance.
Software Engineer - An engineer with a few years experience, can come up with solutions to small problems and contribute to larger projects.
Senior Engineer - An engineer with many years experience. A senior engineer has high impact on a single team and can develop and lead projects. A senior engineer can architect complex systems and is the core of your engineering group. There is an impetus to have the lower level engineers pushing for promotion but at senior level, an engineer has less force to move up and can still have high impact, growth and reward at this level.
Staff Engineer - An engineer with a proven track record and execution. A staff engineer has impact on the entire organization or company. At most startups this is your top level, reserved for a few of the highest impact engineers. A staff engineer must show mentorship and guidance.
The levels above Staff should be reserved for larger scale companies and only add confusion and complications to a smaller and nimble startup.
When you first start to scale out your engineering team, everyone should be reporting to the tech co-founder or head of engineering. When you hit about 8-10 engineers it’s about time to start thinking about adding a level of management. Promoting from within is always preferable if you can cultivate and grow the skillset there.
Tech Lead - This is the softest level of management. It’s not real management and you may or may not choose to have engineers actually report to a tech lead but the tech lead should be doing 1:1’s and worrying about the health of the engineering team,
Engineering Manager - The first level of hard management. This level is responsible for an entire team and usually has engineers reporting directly to them. The engineering manager should be looking at hiring, roadmaps and making sure the team is productive and has the right culture and opportunities. The EM is responsible for promotion and feedback of the team members.
Sr. Engineering Manager - The middle level of management gives you the ability to promote an EM who has taken more responsibility. Managing across multiple teams or managing a tech lead or manager.
Director of Engineering - This is the growth opportunity for management as the startup expands over a hundred engineers. Directors are responsible for managing the direction and culture of the organization as the company will naturally split the responsibility of verticals and products into separate teams.