Over the past years in my career, I always wondered if job titles matter. When I started in tech, titles for me represented level of knowledge, where the most senior person would be the most experiment and their word would be the final one. But, as everything in life, when you start growing in your field, you start realizing that titles sometimes are just something to fill somebody’s ego. That’s why I want to share my view on this subject. And full disclosure, this is my view and not at all the truth written in stone. So if you don’t agree with me, that’s fine 🙂.
Oh, how do we have titles in tech, there are so many of them that sometimes you can get lost in the sea of titles.
I really liked a tweet from Kelsey Hightower.
Job titles are important; that's the problem.— Kelsey Hightower (@kelseyhightower) November 14, 2020
I couldn’t agree more with this statement. As titles matter let’s start by showing how the majority of tech companies define their engineering job titles.
- Junior Software Developer/Engineer
- Software Developer/Engineer
- Senior Software Developer/Engineer
- Staff Software Developer/Engineer
- Principal Software Developer/Engineer
I don’t want to get into the discussion about the difference between being a developer and being an engineer in this article. This will be something for future writing.
Looking at these titles we have a good start point to develop some thoughts.
When you don’t have titles, the way to make decisions is very similar to a democratic discussion. Many people will follow the consensus decision framework, make a decision, and move forward with their work. This is the ideal scenario, where everyone can contribute and take a conscious decision.
Looking at the above is a reality that many companies can’t experience. In the end, the goal of your team is to ship products, and you won’t have time to keep having discussions with everybody every time you want to make a decision. There is also the problem of entering in a deadlock where people can’t agree with each other. In those cases, someone will have to step up and decide what to do next. In general, this person is a more senior/leader person.
Titles will help this kind of scenario to have a smoother resolution.
Lots of companies, specially smaller ones, say that titles don’t matter, what matters is your experience. Sometimes, this can be true in your day to day work, but most of the time though, this is just a speech to get rid of difficult discussions, like leveling, salary increases, career planning, and guidance, etc.
Even if you are in a small company with 10-20 people, you should consider having titles in place, and we will see why further in the article.
When having titles, one of the first things that can show up in your company culture is authority. This means, more senior people have more authority. I’ve seen many senior engineers that used their “authority” to veto a technical decision, just because it wasn’t their idea, or because in their heads another person’s proposal doesn’t make sense. They were not able to communicate clearly, why that was not a good approach, or why we should go into another route. In the end, they blocked decisions to feed their ego and show who’s in charge.
I cannot express how this is horrible in the industry. This will open the door to a culture of authoritarianism, and ego. I like to think that this is a wrong view of titles. It shouldn’t be about authority, but about having experience, responsibility, and contribution.
Let’s be clear here, sometimes, more senior people will have to show signs of authority, but not through harsh, and non-sense arguments. They have to show why a decision will hurt the company in the future by weighting, and articulating the pros and cons of their ideas. That’s how a senior person becomes a senior and gain respect.
Titles are extremely important when you want to give your team a vision of where they can go in the future. Where can I grow when I’m a junior engineer? What if I want to become a manager, what should I do?
Having a clear career path is key for fostering a good engineering culture. Giving people an honest glance over future possibilities will help retaining people and make them happy wherever they work.
The important thing to remember is, it doesn’t matter if you have a defined career path on paper, but you don’t help your team to achieve their ambitions. As a manager or a leader, it’s your job to ensure your people grow in their professional life. If they grow, you grow, and everybody wins.
Recruiting or being hired by someone is another big part of why titles are important. Imagine if you worked in a company for 5 years, and got promoted 2 times. From junior software engineer to software engineer to senior software engineer. But in your contract, you are still hired as Software Engineer, a very generic description. In your LinkedIn, you are free to put whatever you like (Jedi engineer if you want), but common sense says that you should follow what’s in your contract. Now, when you leave this company, you can’t show other companies that you have grown while in your prior job. Of course, you will show your experience, and that’s the most important part of the next interviews you will have. But most of the time, recruiters, when screening your CV, will look at your title and time you have spent in the company.
If you are in the situation described above, go talk to your manager and ask them to make an addendum to your contract with your current title. It’s your right to do this, and it will help you be noticed by other recruiters.
If you have a title, be honest and put what you have been hired for in your CV. Your experience will tell them that you are the right person for the job.
Here is a difficult one. I’ve worked in different companies and we always had this discussion. Should we have a role called tech lead? Or this a hat that people wear (having the according financial compensation)?
Today, I still have the opinion that we shouldn’t have a role in the career ladder where you are a lead engineer. I know many people will disagree with me, but hear me out.
Becoming a leader of people happens for a series of factors: you’re good with people, you’re good with tech, and knows how to balance these two. Now, you can be a senior engineer and still be a leader, you can lead a staff engineer or even a principal engineer because you are good at leading and motivating them. But in reality, they’re more technically experienced then you, and that’s fine.
What I don’t agree is what happens in most places in our industry. To become a leader you have to be at the top of your individual contribution career. And then, from there on, you can become an Engineer Manager, Director, and VP. I saw this kind of career progression in lots of places:
Jr. Engineer -> Engineer -> Sr. Engineer -> Staff Engineer -> Tech Lead -> Engineering Manager
This is terrible. This will limit or force you to go to a leading/managing position if you want to grow. Not everybody likes, or are a good fit to lead people. Let’s look at another example of career progression:
Jr. Engineer -> Engineer -> Sr. Engineer -> Staff Engineer -> Principal Engineer -> Tech Lead -> Engineering Manager -> Director of Engineering
A bit better, right? It is, but now you have another problem. Is a tech lead position supposed to be in a managerial career track?
I like to remind you of something, a quote I wrote in another article a while ago.
And you are left with a role that has a progression into managing, where in fact, you want to lead technical people to success.
Looking at these examples, is the reason why I think you should be able to wear a hat and become a lead engineer, which will give you more responsibilities (and extra compensation). But this should not be a role title in your career.
These were my thoughts on the topic about having titles or not. As you noticed, I do vouch for using titles, but they are not a symbol of authority, but a sign of experience, influence and contribution. Please send me some feedback if you have different views, and I would be happy to hear it.
See you in the next article 👋