paint-brush
How to get a Team Lead jobby@borlov
6,035 reads
6,035 reads

How to get a Team Lead job

by Bohdan OrlovApril 23rd, 2018
Read on Terminal Reader
Read this story w/o Javascript
tldt arrow

Too Long; Didn't Read

Recently I’ve switched from a developer role to hands-on team lead and decided to share my experience while it is still fresh in memory.

People Mentioned

Mention Thumbnail
Mention Thumbnail

Company Mentioned

Mention Thumbnail
featured image - How to get a Team Lead job
Bohdan Orlov HackerNoon profile picture

iron-mitten.blogspot.co.uk

Recently I’ve switched from a developer role to hands-on team lead and decided to share my experience while it is still fresh in memory.

“Hands-on” simply means that I still write code ⌨️

🎭Roles

This is how I prefer to match roles and responsibilities:

🗡🗡Tech Lead — a person who is responsible for setting tech agenda for the team, has no direct reports, full-time coding. [Tactical hire]

🗡🛡Team Lead — a person who is responsible for tech agenda and long-term team success, has direct reports, part-time coding. [Strategic hire]

🛡🛡Engineering Manager — a person who is responsible for long-term team success, manages direct reports, almost no coding. [Strategic hire]

🎯 Tactical vs Strategic 🗺

A tactical hire is a person who gets work done, preferably in silence, networks with others only when its needed. Happy as long as work is relevant and stable.

A strategic hire pushes their own opinion and agenda. Engaged in work, networks with others who do it and tells everyone a preferred way of doing it. People around are pissed off by the annoying intensity of the agenda.

Both tactical and strategic hires are required in any company.

Reasons to become a Team Lead

👍 Good reasons

🛡Ready to shield people

You want and are ready to protect your reports.

Your main responsibility would be to work as a shit umbrella, rules are simple: all negative communication and process changes go to you first, then you filter them and take actions accordingly.

You won’t be able to simply cascade shit directly to your reports. Your job is to transform the shit into constructive actions, feedback and growth directions which don’t look like an offence to your reports.

🌱 Enjoy growing people

You enjoy helping people to study and reflect on their work. You will have to identify the personal agenda of your reports and help them achieve it by crushing obstacles.

🤝 Interested in developing soft skills

You realise how soft skills are important in achieving big goals and want to get better at organising people to achieve big goals together.

👎 Bad reasons

💰 Getting more money

Typically a team lead role is better paid than a developer role in the same company, but if you need more money a 10–20% raise won’t be a life-changing difference. If this is your only motivation it will be hard to succeed in the role.

🤓Becoming a better programmer

If your passion is solving hard programming challenges but you hit a ceiling and your company expects you to become a Team Lead, just change the company. The more you do the more you are, stick to your passion if you prefer computers to people.

⚔Seizing interesting work

Since you will be a person in charge you can organise work in a way that all interesting coding lands on your desk. This superpower should not be abused, the only excuse for this is that you are both the best person for the job and you have a capacity for this in your schedule. Otherwise, give it to your reports.

👾 Ugly reasons

😈 Becoming a boss

If you get a job, you become a boss, but it is not a permanent position, remember this. You merely borrowed the title. Luckily in our industry, if you are a bad boss your reports will abandon you very fast, they have plenty of options even if they are mediocre.

🕷Controlling everything

If you have lack of control as a developer, then don’t think that taking over communication with your team is going to help you. Micromanagement stalls work, you must promote ownership and autonomy.

Our solar system flying through space

Perfect Team Lead is like the Sun. It has huge gravity to pull everyone in the same direction, often giving peers momentum to overtake itself.

Prerequisites

🎖Seniority

Seniority is an absolute blocker for starting a Team Lead path. To understand what it is, you can read this very good explanation of Seniority from Krzysztof Zabłocki.

You must believe that you are a “senior” developer and should have external evidence of this: popular blog, open-source project, mentoring practice. External evidence is not required, but it is rather strange that a Senior person has no contributions to a relevant community.

Preparation

There are two main areas which will be assessed in an interview for a hands-on Team Lead position.

🐝 Hard skills

These are your engineering skills, they are useful for getting the job done, but their primary value is in mentoring, assessing and earning authority of your reports.

Do a self-assessment using Skills Matrix:


Programmer Competency Matrix_Note that the knowledge for each level is cumulative; being at level n implies that you also know everything from the…_sijinjoseph.com

And roadmaps for relevant platfroms:


kamranahmedse/developer-roadmap_developer-roadmap - Roadmap to becoming a web developer in 2018_github.com


BohdanOrlov/iOS-Developer-Roadmap_iOS-Developer-Roadmap - Roadmap to becoming an iOS developer in 2018._github.com


Learning Android Development in 2018 — Part 1_Before writing a single word, I wish you all a very Happy New Year!!!_android.jlelse.eu

🦋 Soft skills

These are your organisation and communication skills. They are required to be successful in the role, so the following areas will be assessed in an interview:

  • Self-management
  • Strategy
  • Working with people
  • Resource management
  • Analysis & Decision Making

📚 Books

Read this before your interviews ;)

Mentors recommend:


Peopleware_Peopleware has 6,383 ratings and 351 reviews. Ben said: Peopleware is something of a classic in the world of…_www.goodreads.com


The Deadline_The Deadline has 1,343 ratings and 116 reviews. TarasProkopyuk said: Книга обязательна к прочтению для начинающих и…_www.goodreads.com

I recommend:

A guide for supervising and leading “cats”:


Herding Cats_Herding Cats has 212 ratings and 12 reviews. Herding Cats: A Primer for Programmers Who Lead Programmers is a…_www.goodreads.com

“Cookbook” style answers to questions about leadership and management:


Leading a Software Development Team_Leading a Software Development Team has 43 ratings and 4 reviews. Nathaniel said: I got this book because I had…_www.goodreads.com

True stories about software development and management of humans:


Managing Humans_Managing Humans has 2,011 ratings and 177 reviews. Keith said: I bought this book because I love the author's blog…_www.goodreads.com

Not about meditations ;) Helps with self-discipline and a healthy attitude to life and people:


Meditations of Marcus Aurelius_Meditations of Marcus Aurelius has 25 ratings and 1 review. Deedra said: Not the exact book: Audible:The meditations of…_www.goodreads.com

This is a must-read If you happen to know Russian:


45 Татуировок менеджера_45 Татуировок менеджера has 438 ratings and 54 reviews. ☘Misericordia☘ said: Q: I'd rather be judged by 12, than…_www.goodreads.com

💕 Winning hearts

aka Interview process

🏟Understand your audience

Answering direct questions is not enough, you have to understand who you are you talking to and their personal aspirations for the person trying to fulfil the role. There are three main groups:

🔼 Direct reports

These are developers and potentially QA. These people are choosing their future boss so you have to sell your Hard Skills (I’m one of you guys) and give them an idea about your management style and agenda (I’m your shield).

◀️ Peers ▶️

These are leads of other teams including product managers and UI designers. These people are choosing the facade of the team they will work with. At this stage, you have to equally sell your Soft Skills (My team will help you achieve your goals) and Hard Skills (I can assess the team and code if needed).

🔽 Line manager

Your boss is looking for a very specific person, your task is to understand who this person is and if you are that person. Reverse engineer this by asking about current challenges and problems in the team, the more info you can get the better chances of securing the position.

💌 Offer

If you get an offer, it contains boring info about compensation and benefits, which is not what I want to talk about. The important bit is that unlike most of the coding positions you interviewed for, a management role implies that you are offered a certain set of long-term challenges and problems before you joined, such knowledge rarely included in offers for developers since they are not expected to take strategic decisions.

📈 Understanding expectations

You will be assessed by your progress in achieving these goals and fixing those problems, so if you are indifferent to them, it would be wise to pass on the offer. For example: if your management are performance freaks and don’t care about quality (or the other way around) then it’s a waste of time to join such a company. You have to be eager to fulfil a role.

🎬 Action!

Start from growing a leader within yourself and the title will follow up.

The quality of a leader is reflected in the standards they set for themselves - Ray Kroc

🌟 Gratitudes

Thank you to all the good managers I had! Same gratitude goes to the bad ones too, because those bastards taught me what not to do!

Special thanks go to the most humble, helpful and inspiring manager I had — Rafael López Diez.

And thank you for reading 👋