An important duty as a CTO of a company with many talented developers is to ensure that they have enough growth opportunities for growing and get rewarded when they meet their goals.

In the early days of TNW, conversations around growth and performance used to happen in an unstructured way. However, a team of over 10 engineers needs the transparency and predictability of a more structured process. This is why we set out to create the first career ladder for engineers at TNW.

Our career ladder is still in development and its contents aren't final yet. However, I will give an insider look into what inspired us to create a career ladder, how we designed it, and what are the steps we are taking towards implementing it. Let's dive in!

What is a career ladder?

A career ladder is a system that describes how a person can evolve and grow within an organization by defining levels (or job titles) and the skills related to each level. A good career ladder should be:

  • Fair: By measuring everyone against the same skills, we reduce opinions and biases. Career ladders are excellent instruments to make sure every team member has a fair compensation, tied to their performance and skills, no matter how good negotiators they are.
  • Motivating: Good career ladders should inspire people to become better by showing them in a clear way which skills they need to develop to keep growing professionally.
  • Explicit: By writing down and sharing the career ladder in the team, people's expectations for their current job and their role in the organization become clearer. When hiring, a career ladder is a helpful resource to help candidates understand how they can develop and grow internally.

There is a lot of information online on career ladders. If you are unsure where to start, I recommend watching this talk by Marco Rogers or check some examples from other companies, like https://progression.monzo.com/ or https://engineering-progression.ft.com/.

The TNW career ladder

Designing a career ladder for engineers at TNW was an interesting exercise in self-reflection. I had to think very hard about what I expect from my team and how to make sure they have plenty of choices to help them grow as professionals.

Being able to answer these questions for your team will determine the success of your career ladder. But remember that every company and every team is unique: What works in one place will not work in the next one, and a career ladder should reflect the company culture and align with its goals.

Let's break down our solution and look at skills and levels independently:

Skills:

What are the abilities that I, as a manager, value the most in my team and want to encourage?

As I said, every company is different and has different priorities. My goals at TNW for this phase of the company are threefold. Improving the quality of the software we deliver, enabling the team to continue to grow and learn, and creating efficient and impactful solutions for the business. With these goals in mind I defined the following competences or skills to rate every engineer with:

  • Technical skills: Do you have the technical expertise in technologies, systems, and tooling to do your job successfully?
  • Software quality: Do you write software that is reliable, efficient, secure, and maintainable?
  • Communication: Do you share the right amount of information with the right people, at the right time? Do you listen effectively and are able to give and receive feedback?
  • Leadership: Do you provide support to colleagues, spread knowledge, develop the team, and inspire positive organizational changes?
  • Organization and time management: Do you deliver work that meets the requirements, on time, and within budget?
  • Strategic thinking: Do you define processes and systems that enable growth and improve execution of the team?
  • Impact: What kind of work are you capable of tackling independently and how meaningful your contributions are to the organization as a whole?

Levels:

How to assign meaningful and descriptive job titles for every person in the team?

Levels, or job titles differ a lot through companies. Here, my goal was to create a very simple system but with enough granularity. That way, almost everyone in the team can reach a new milestone every year or so, as long as they keep learning and improving as a professional. These level increases can then to a salary rise or new responsibilities, which are always good extrinsic motivators.

At the end, I settled on 18 levels (5 main “job titles”, with each job title divided in 3 sublevels). The difficulty to reach each level grows exponentially, so it's easier to go from Junior II to Junior III than to Lead III to Principal I).

  • Junior (I, II, III)
  • Mid-level (I, II, III)
  • Senior (I, II, III)
  • Lead (I, II, III)
  • Principal (I, II, III)

Implementing the solution

When deciding how to implement our career ladder, a spreadsheet would have worked just fine, but since one of our inspirations was Medium's Growth Framework, we decided to use their Snowflake tool. Even though Medium claim they don't use it anymore, their tool provides a nice way of visualizing each person's strengths and weaknesses and allows interacting with the different skills and levels easily. Also, it being open source makes it very easy to customize it to your needs and add a personal touch to it.

As of today, we haven't rolled out our career ladder yet: We are working to improve all the definitions and skills with feedback from the team and to get buy-in from different stakeholders in the company, most importantly from the team itself. Getting people involved early is key, so this is why I'm sharing our process publicly now.

Visit our Engineering Growth Framework page at http://engineering.tnw.s3.amazonaws.com/index.html (WIP!) and let me know what do you think!