I feel like I achieved almost everything I wanted as a frontend developer (even moved from just working with UI/react/etc to pure R&D, researching and working with browser api for innovarive/obscure tasks) and while backend looks interesting for me, I know that I will have to take a paycut if I would move there.
Becoming a team leader or moving to other management position looks more promising from salary and work enjoyment (for me) purposes, so what are my next steps are?Is there any good reads, courses, videos, lectures etc I should know of? I work in small startup for the past year so I don't have anything to take example of nor I have any opportunity to lead a team (except one guy I'm mentoring)
[+] [-] akatechis|2 years ago|reply
For me, what has worked CONSISTENTLY are 3 things:
1. Take initiative: I can't stress this enough. If you act like a team lead, people will recognize you. And if they don't, you should consider whether this is somewhere you want to be. An organization that doesn't help build its talent, is not one where you will accomplish your personal growth objectives.
2. Speak to your Manager: Assuming you are doing #1, make sure that your manager(s) are aware of your career goals. You need to get "buyin" from others in the organization that are able to carve out this kind of role for you. They will also have good advice for you. Not every manager/team lead role is the same, so YMMV in this regard. It may be that there's a bigger need for a people manager vs a technical manager.
3. Stay at a company for 3+ years: The number might be different, but in my experience this is the point, after which you have been around enough time to have been involved in many different projects. Not only will you know a lot of the tech stack and it's limitations, you will also understand MUCH of the business itself. You'll have positioned yourself at the intersection of the business and the technology, and become an indispensable part of the organization.
One of the companies I worked at was a personal finance startup, and over the years I learned so much about saving, spending, credit, loans, income and investing IN ADDITION TO the technology we were building and everything that was powering it, that I was asked to be a part of nearly every discussion.
[+] [-] 727374|2 years ago|reply
A lot of companies will have a career doc that lists expectations for each role. Take a look at the manager version and make sure it is actually something you want to do and then start doing some of those things. For example - lead a small group on a project, mentor someone who needs help, implement a change that will improve team health, reduce chaos on a project, align stakeholders, etc.
Tell your manager you’d like to explore that career path and frequently ask them what they need help with. If you don’t have a good relationship with your current manager, you may consider finding a new one who will help you grow. Look for a manager that is ambitious and looking to develop someone they can delegate to and you can ride their wave.
Everywhere I’ve worked in the last 20 years has needed strong managers, including startups and FAANGS. If you’re slightly patient and show some signal of readiness an opportunity will arise.
[+] [-] SkyPuncher|2 years ago|reply
I have seen another path for #3. Switch to a smaller company that's growing.
If you're already at the top of your IC skill set, you can likely come in at a relatively senior role with direct lines of communication with senior leadership. As they need more teams, it's easy to throw your hat into the conversation.
[+] [-] rockostrich|2 years ago|reply
[+] [-] intellectronica|2 years ago|reply
As for attitude and behaviours for making the jump, it's a combination of actively looking for opportunities (that's the easy part), and positioning yourself as someone who is an obvious choice for such a position, which is basically when you consistently have an attitude and reputation of total ownership, supporting others, never complaining or taking it easy and instead always thinking and delivering at a wider scope, being the person people come to for making a decision on what and how to do, rather than a person who is being told what and how to do.
Some people do all of that naturally. Lucky them. Others don't, and it's a journey to adjust. You don't need to be a "natural", but if you aren't you need to learn to behave like one before you can credibly go into a leadership position.
[+] [-] miroljub|2 years ago|reply
Nicely put, but can be also considered as a warning.
If it doesn't come "naturally" to you, do you really want a leadership role? You will need to learn, fake and struggle to achieve something that others do without any effort. Are you ready for it? Do you want to do it? Is it worth it for you? And although faking can get you to the first line management role, the effort to go a step further would be exponentially harder if you are not a natural talent.
Or, to use a fake sport parallel, if you are not a natural talent, with a lot of effort you can make it to the high school team, with even more effort you may even become a starter, but you'll never be a lead player, or be able to play in a college team, and you'll enter a NBA stadium only if you pay a ticket.
EDIT: this applies to every job, not only management. If you are not a natural talent, there's a limit to what you can do, regardless of the effort.
[+] [-] sokoloff|2 years ago|reply
In terms of advice, don't overlook or look down on yourself in regards to just mentoring this one guy. It's a perfect starting point and maybe check in with the founder or your direct boss to express that you'd like to progressively get more involved here.
My (and many people's) first leadership role was a team of two, which I later grew to a third dev and we shipped an entire Playstation game after I made and overcame many mistakes as a team lead. I'm glad to have had the chance to make those mistakes in a small team; the same mistakes on a team of eight may have been impossible to recover from as my first experience.
In that type of a role, you are still hands-on coding 70+% of the time, which in many ways, I found to be an incredibly enjoyable mix, and gives you a taste of leadership to help you decide whether you want more or that or not. I enjoyed that journey and, when it comes time to retire, I'm somewhat likely to take that level of 3/4-IC and 1/4-team lead role again.
[+] [-] ssss11|2 years ago|reply
If you like mentoring people, sharing knowledge, delegating tasks (yes, even the tech work you love) and dealing with things blocking the team like politics with other departments then go for it.
It can be rewarding but it can also be very draining and stressful, and isn’t for everyone, and I wish someone would have prepared me better the first time.
[+] [-] sheepscreek|2 years ago|reply
The worst part: once you experience the power trip, it’s also hard to go back. Even after knowing fully well that you’re getting the wrong end of the bargain. Truth is, for better or for worse, a good manager can have significant influence over many things (from roadmap, to people’s future, to their own future career prospects).
I find that it’s a tad bit easier to write my own destiny as a manager, without having to resort to changing jobs/roles.
Another big negative often not talked about: unlike software development, where your skills are transferable when you change companies - management = people and relationships. You lose them every time you change ships and have to rebuild from scratch.
[+] [-] NorthOf33rd|2 years ago|reply
Obviously delivered tongue in cheek, but it’s a hard job and it’s not for everyone. I second everything the parent says and also add that your timescales are different. If you think waiting for a build is long, try waiting for your efforts to improve a directs’ communication skills to take hold. generally the most important, and the most fun, work of being manager takes years for feedback instead of hours.
[+] [-] mcntsh|2 years ago|reply
[+] [-] JALTU|2 years ago|reply
"You have to wake up in the morning excited about solving people problems with 'problem' people..."
Examples were then given about how sometimes you drop hints with people, sometimes you tell them outright, and sometimes despite all that they still don't/won't get it, and you try yet another approach (echoing other's posts here about the same). And so it's stressful unless you like these human issues. i.e., Don't consider leadership unless you derive some degree of "happiness" from "working with people on people."
[+] [-] bazmattaz|2 years ago|reply
[+] [-] dangitnotagain|2 years ago|reply
From the way you describe your experiences, it sounds like you’re a young adventurer on the journey.
These things come in their own due time, and if they are appropriate, they will mature and flourish from within you.
You will be chosen when there is a need, and you are able.
In the meantime a few thoughts to prepare yourself.
- be superbly well organized. Take written notes. Compose your thoughts carefully (self edit.) provide written accounts to your overhead as well as peers/delegates.
- know your stuff. Go the distance to prepare and know that the best answer is never the most exciting, it is the most EFFECTIVE.
- A leadership position is not one of vanity or even “self development”, it is one for getting the job done in the most stable, reliable, measured, and complete way for those who pay you to solve their problems.
I would choose someone boring and methodical to lead over a hotshot any day.
[+] [-] wiz21c|2 years ago|reply
No, it is a position where you have to implement the vision of your boss. It's a position where you're a slave. If your boss is a good one (who listens, helps and defend), you'll be a happy slave. If your boss is not, you'll have to do things against your own will and convince your team that it's good for them. Many people can do that but a lot more can not.
So the first time you'll have a proposal to be a manager, be sure to be able to recognize if your boss will be good or not. That kind of information is best gathered by participating to extra-work activities where you can get "off the record" information. And that prepares you to be a boss: much of your work happens outside of your team, in informal contacts.
[+] [-] sverhagen|2 years ago|reply
Yeah, well, sure... but also don't be shy to ask for what you want (you know... "in due time"), because many managers will maintain the status quo if they can, and definitely not volunteer to promote you out of being a great individual contributor at their own expense of having to replace you.
[+] [-] deliriumchn|2 years ago|reply
Not exactly, but not very far either (6 years in including 20k+ empl companies and small startups)
Thanks for good advice. I agree with you.
[+] [-] gwbas1c|2 years ago|reply
Even though the book is old, the concepts in it haven't changed: Developers need to work with minimal interruption, management needs to serve development.
Here's the thing: "Team lead" and "manager" are very, very different roles. "Team lead" is very hands on, because you need to be able to jump into the code base to help team members understand the bits; and you need to be able to speak to management with detailed technical knowledge.
(As you can probably infer, I've been a team lead and really, really enjoyed it.)
In my case, "team lead" was about a 50/50 split between hands-on coding and leadership. At times, it was basically me doing the hardest parts of development with assistants who I would directly assign tasks. Other times, I worked with other developers and directly mentored them in tasks because I had the most experience in the code they were working with. Other times, I was merely a peer making sure that process was followed.
At one point I had to "manage up" and explain what the boundaries are between QA and development. This was mostly to avoid situations where other developers were spending a week scratching their heads trying to reproduce a bug. It turned my reputation from being "difficult" to being a leader overnight; because (surprise surprise) sometimes you need to tell QA that their responsibility is to clearly communicate bugs.
As far as management, part of it is making sure there is just enough process that people can hand off work from one person to the next. The processes need to be flexible so they don't get in the way, and they don't exist for the sake of existing. It comes down to things like making sure bugs are documented so that someone doesn't spend a week trying to figure out how to reproduce it; and that the actual steps to reproduce aren't buried in a chain of 100 comments in a ticket. (But that's just part.)
The other part of management, and any leadership role, is realizing that you're not a boss. You merely have a more powerful role in a team, and you need to use your power wisely. Everyone should feel like they are doing what they believe is right.
[+] [-] genericlogic|2 years ago|reply
To get into management, you generally need experience in management. I know that sounds silly but it's true. If I'm interviewing for a management position and I have two candidates, one who has experience and one who doesn't, I'll take the person with experience.
So your question becomes how do I get the experience. I would start with finding a work place that values the concept of promoting from within.
From there you need to advertise your intentions of wanting to move into a leadership role, without being annoying. You need to socialize and relationship build. Gently broadcast your intentions.
You need to be able to tell people why you want this role. It needs to be clear reason. This is more or less your sales pitch.
If you do these things listen to people's feedback. It should be enthusiastic and positive. If it's not it means that people don't see your potential yet. Figure out why.
This is your feedback loop. Take training, work on your presentation skills. Find another mentor. Keep building your network. Ask your manager if you can take over a meeting or take over a small responsibility for them. Gently reshape your role into a lead role. Do this until you get some positive feedback.
From there start to interview. Your first couple of interviews are likely going to be terrible. Don't lose heart. Ideally these are internal interviews. If you don't get the job reach out to the hiring manager to get open and honest feedback.
Keep interviewing and keep working on all of the above. With a little luck one of your connections will pay off and someone will take a chance.
[+] [-] a13o|2 years ago|reply
From that point forward, as you progress thru your company's advanced IC track, the ranks parallel eng management ranks; and soft skills will take up more and more of your time. Eventually you're responsible for mentoring and steering an entire frontend team and you will not even get half your time to do heads down IC stuff. The rest of your time will be spent mentoring via pairing or reviews, jockeying for resources for your initiatives, interviewing, and spiking big unknown tasks. Not to implement them mind you, just to size them for someone else to implement.
The way forward then, is to practice all those not-programming things that are programming adjacent.
[+] [-] devjab|2 years ago|reply
I was, and am, a good leader in terms of decision making, being assertive and having a general focus on the well being of the people around me. A lot of the MBA and management literature is focused on this, as well as how you communicate. It was nice to pick up some extra tools in those areas, but I wouldn’t say that it would have been necessary for me to do throes courses. What I am not a natural at is planning. It was during my stint in management I was diagnosed with ADHD, so that sort of stood in the way (and still does), and I had to spend a lot of time on “resource management”. This is where you have delivery targets and employees (resources) that you need to juggle to meet your targets, and it’s going to be a constant chaos. I wasn’t apt at this, I likely never will be, and as a result I got an immense amount of value out of the MBA courses targeting this area. Then there was the part I hadn’t really known about before, the budgeting and value realisation. I mean, I obviously knew what budgeting is, and how it’s nice to deliver value, but I never knew just how much finance and “bookkeeping” you’re going to do as a manager. Again, the MBA courses dealing with learning how we are all cogs in the machine were irreplaceable for me in teaching me how much of a different mindset you’re going to need as a manager compared to being an employee.
What ultimately led me to abandon management was that I didn’t actually like to manage people. I like people, I like working with people, but I don’t like managing people. I think you need to ask yourself if you would want to become a manager at Walmart, or a nursery home or something completely not-related to SWE and if the answer is no, then I think you really need to consider what exactly you want. Because management is a discipline in its own right, and it’s almost nothing like mentoring or being a technical lead.
If it’s really what you want, then get into networks with other managers. Look up where you can find MBA courses, edx.org has some cool intro CS courses, maybe they have something similar for MBAs to help you sip your toes in it.
[+] [-] idlewords|2 years ago|reply
[+] [-] walljm|2 years ago|reply
It also runs counter to my experience. I don't think people deliberately promote people who are incompetent in order to "get them out of the way". People are smarter than that, as it only pushes bad people into management.
If we want better managers, then we should move heaven and earth to get the best people who understand the needs of both technical and organizational constraints and who can communicate and coordinate effectively.
[+] [-] dadalorian|2 years ago|reply
[+] [-] pfannkuchen|2 years ago|reply
[+] [-] cauliflower99|2 years ago|reply
- Express to your manager your interest in stepping into a leadership role over the next 6-12 months.
- Write down a list of responsibilities / behaviours a good leader has in your company. Take on one of these responsibilities one at a time to show that you both interested and serious about a leadership role. Advertise to your manager how you are progressing with these extra responsibilities each month via email so they had a written record.
A leadership role has much higher responsibilities and so your manager (if they are a good manager) will not promote you into the role without knowing you can do the job first. Leaders lead by action, not be theory. I know some great leaders who have a very poor theoretical understanding. And I know some horrible leaders who know the theory inside out.
Focus on action.
[+] [-] mojo74|2 years ago|reply
[+] [-] snowman647|2 years ago|reply
I'm working as a manager and transitioned to this role for the same reason you mentioned. However, I had been talking to my LM for some time, and he found an opportunity for me.
Simplest way for you to get one more mentee and form a team of 3. The next step is to add one more person to the team. Once your current team lead receives a promotion, you will be next in line for their role. That's the path I'd follow.
[+] [-] walljm|2 years ago|reply
* Listen to the people who report to you. They aren't always right, but they often are, and if they are pushing back then there is a good chance that they might be seeing something you don't.
* Much of leadership is about communication. And much of communication is about planning. And much of planning is about knowing and understanding all the components of the problem you're trying to solve. So cultivate a deep understanding of your people, their talents, your business, your boss, and spend time thinking about how to best optimize all those things.
* Its hard to lead in an area where you don't some expertise. You don't have to be the best, but you shouldn't be a slouch in the subject matter either. In order to earn respect you'll need to be able to understand what you're being told by your team, and you'll need to be able to articulate why you are making certain decisions, and that is seriously difficult if you don't have a good understanding of the domain.
* Good task management and organization is remarkably similar to good distributed systems architecture. Teams should be organized so that communication and integration dependencies are minimized, because communication overhead grows logarithmically as the number of people who need to be informed increases.
not nearly a complete list... but a start maybe. good luck! good leaders/managers are a scarce resource.
[+] [-] barelysapient|2 years ago|reply
1) Engage with your manager. Explain your interest in the position you want and ask for their support. If you can't get their support; learn why and either outgrow it or find another manager that will support you. (Not all managers want to develop their team)
2) Ask about and seek to understand the challenges your manager is working against.
3) Internalize those challenges, the broader company goals and create your own personal plan to help achieve those things.
4) Do that plan; gain the support of your team members through influence. Recognize and celebrate their support.
4a) Become comfortable using influence and vision to influence others. Even as a manager, senior manager, or director, you rarely have the pure authority to achieve what you want. Even if you do, the team will chafe under that style. Success is influence; inspiring others to jump in and pull with you.
5) Measure your progress and get feedback. Even unfair or invalid feedback is valuable because its a perception that you can manage against and overcome.
6) Celebrate success. Evangelize and learn from your failures.
7) Ask for the job.
[+] [-] siliconc0w|2 years ago|reply
What I didn't really realize is that 9/10 if you ask people for their help, they'll usually give it. So if you just ask, "hey can I goto the leadership summit?" They'll say no. But if you ask, "Hey I'm trying to understand what a management direction for my role might like and I think I would learn a lot from the discussions at the leadership summit, do you think I could tag along - maybe virtually- for a day or two?" - They'll probably say yes and throw out an invite. Now you're in the room and can build relationships with the leaders that decide the next manager. (or wisely learn attending these types of meetings isn't what you want to be doing)
[+] [-] maedins|2 years ago|reply
Goodreads link: https://www.goodreads.com/book/show/63079576-the-staff-engin...
[+] [-] unknown|2 years ago|reply
[deleted]
[+] [-] aenis|2 years ago|reply
I did this when I was 4 years into my engineering career. After 20 years I ended up a CTO at a large (~40bn) company. There are good things about it, but I am still the happiest when I have time to code and build stuff. Managing others is nearly entirely about emotional intelligence, empathy, and it's better to be an extrovert as your days will mostly be all meetings. Money is fine, but I am not sure I'd do it again if I were to start from scratch. With all the hindsight I think I'd advise myself to join a startup instead.
In any case, don't neglect the company culture. If you want to learn management, don't do it in places with zero strategy and short term focus - you will only learn to never attempt it again, most likely.
[+] [-] mxuribe|2 years ago|reply
@aenis While i did not reach CTO level at a 40bn company, i did play a similar role once at a small non-profit, and some parts were fulfilling but others were def. not - at lewast for me. However, you said it best when you stated, "I am still the happiest when I have time to code and build stuff". I dislike so many meetings, hate work politics, but the 2 areas where i shine and/or am fulfilled are coaching team members, and building stuff (coding, etc.)! Man, i miss more directly building stuff!
[+] [-] tomduncalf|2 years ago|reply
[+] [-] magusd|2 years ago|reply
There's no structure, there are no guidelines and that's because it's mostly dealing with people and people are almost always completely different from each other.
If you want to learn how to be a good/better management, focus on being a better person and helping the people around you get better.