It's just a way to ease unsuspecting engineers into management. If you don't suck at management, your team inevitably grows (or you're handed over other teams), and before long, you're managing full-time.
Which means that there are three type of people who remain TLMs in the long haul: those who suck at management; those managing dead-end projects on dead-end teams; or those who desperately cling on to the engineering past and actively refuse to take on more people. From a corporate point of view, none of these situations are great, hence the recent pushback against TLM roles in the industry.
as in "and the strawboss said well a-bless my soul, you load 16 tons.."
Inevitably because why?
> those who suck at management
If higher management can figure out not to put more people under them, why can't it figure out to remove the existing people under them?
> those managing dead-end projects on dead-end teams
If "dead-end" just means "not growing" then that sounds fine. When a company does thousands of things only a small fraction of them need to be growing.
> those who desperately cling on to the engineering past and actively refuse to take on more people
"Desperately cling" is a wild way to refer to someone sticking with a job they like. And if they're a TLM it's not the past, it's the present. Wanting to keep your present job is very normal.
And is the end goal to have zero TLMs in this expanded team? If you're going to pick new TLMs to go under the one you push into higher management, what's bad about leaving them in place and putting someone else above them?
> Inevitably because why?
Because proven, effective managers are always in short supply, so when you hire new people, or if any of the existing managers leaves, it's the default pick.
Plus, most people want to make more money over time. And on the management track, this means angling for that director / VP role down the line, even if it wasn't your childhood dream.
> If higher management can figure out not to put more people under them, why can't it figure out to remove the existing people under them?
They can, but in big and / or growing companies, performance problems are addressed less vigorously than they probably should. This cuts both ways: neglecting problems is wrong, but cutthroat performance management makes people cranky too.
I laughed out loud when I read this. I've never seen anyone at any company in a hybrid tech/manager role that wasn't expected to do two jobs at once. Or at least they felt like they were, which is still the same problem.
80% coding & 80% management for that role sounds about right.
As alternative explanation, even if there's no pressure to do so, the thing is these people came to do dev, and probably enjoyed their job enough to get recognized for their work.
So when asked to split between dev and management, outside of a few exceptions they'll want to do 80% of tech by choice. But the management part doesn't go away of course, so it will still be at least 50% (and 80% if they want money, because that's the part they're actually evaluated on)
For this to be accurate, you're saying 160% aka 1.6 or 64 to 80 hrs per week, with 96hrs as the extreme?
Anecdotally, a hybrid technical manager I had in the past worked 60 hours a week pretty much minimum. Which sucks.
Coding requires the opposite, zooming deeply into the code and retaining focus. The job of the IC coder is to deliver (design and implement) beautiful and pragmatic architectures that do what is expected.
I recommend anyone to reject to fill roles where these two are combined into one. Note that this is not a comment about workload, but about irreconcileable differences. (The perfect candidates for each even match different personality profiles...)
In any role, there are some folks who push themselves too hard, and there is no one to tell them "stop", but that's their choice.
Impact and outcomes are far more important than outputs, so it makes sense to for you to spend a lot of time on that. But, when performing review time comes around, you’re still bounded by hard metrics around outputs.
The problem I foresee here is, there would be escalation meetings and all the non-technical managers would sit back and point fingers at the TLMs until they leave.
Much of the reason the TPM job exists is simply so your manager can be an advocate rather than a nag. The nag job is offloaded to the TPM, but the TPM has no decision-making power, so you don't get perverse incentives where the manager burns all their relationship capital making you do your work, or sandbags the deadlines so they don't have to.
In many orgs TPMs are also in charge of goodies like fun events or device/swag distribution, as a way to offset the negative emotions that come from them basically being nags.
(1) As an engineer, I prefer to be managed and guided by someone who actually knows what I work on, preferably better than I know it.
(2) A manager who actually understands the tech is often better at unblocking the team.
(3) Since senior IC openings tend to grow very thin as you become older, TLM path might be a viable career path for at least some.
Can this role work if we don't expect IC output from the TLM beyond what they themselves take on for their own satisfaction and growth?
As a manager of people who know far more about the things they do than I do, my goal is to assist and ensure in the right place (for them and the org). It’d be foolish for me to hire peons who know less than me.
In post 1, you want your lead to preferably know more, someone says that’s not realistic, and in post 2, you profess to not understand their point while changing the goal post to now be “some level of hands-on knowledge”, which sounds like you do understand their point.
At the risk of oversimplifying, the role of a manager is to find you that TL.
In those last 3 years I've only seen TLMs used to assist an overloaded EM.
The pattern I've seen is something like:
Principal EM |- Staff EM (7 reports, project A) |- Staff EM (8 reports, project B) |- Staff IC (projects A, B, C) |- Senior IC (projects A, B) |- Senior IC (project C) |- Mid level IC (project C) |- Mid level IC (project C)
Maybe project C was just reorged under the Principal EM or maybe it's a speculative side project. But those last three are clearly clustered, but there's no good EM fit and the principal EM feels disconnected from the 2 mid level ICs. Project C is a bit of an island and projects A and B are taking up most of the EM's time.
So the Principal EM deputizes Senior IC on project C as a TLM until things have changed enough that there can be a dedicated EM. Eventually the TLM converts to EM, a new EM is brought in, or there's a reorg, etc.
Of the two times I saw saw it happen locally, both converted back to ICs after a year or two and noted that the role felt like being 70% IC and 70% EM.
Nowadays the TLM role doesn't exist so the principal would delegate most of the technical responsibilities of the M role, giving them nearly full control of project C, but would not give them a formal role. (I've been that senior IC for project C.)
Principal EM - USD$1.3m/yr per https://www.levels.fyi/companies/google/salaries/software-en...
Staff EM - USD$664k/yr per https://www.levels.fyi/companies/google/salaries/software-en...
Staff IC - USD$557k/yr per https://www.levels.fyi/companies/google/salaries/software-en...
Senior IC - USD$410k/yr per https://www.levels.fyi/companies/google/salaries/software-en...
Mid IC - USD$290k/yr per https://www.levels.fyi/companies/google/salaries/software-en...
levels.fyi doesn't appear to use the term "Technical Lead". There is "Technical Program Manager" and "Technical Account Manager" that sound like they'd be similar (someone technical transitioning into a full-time non-technical role). And then roles such as "Product Manager" and "Program Manager" seemingly for those who are currently 100% non-technical in their work.
Does the change mean the most competent solution architect who has successfully designed and implemented many complex systems from scratch is capped in salary package because they're not doing the important job of demanding those around them fill out TPS reports all day?
[1] https://www.levels.fyi/companies/google/salaries/software-en...
"Technical lead" is not a role profile or ladder, it's what you're doing. You could be a TL at L4 on a small project, and you could not be TL at L7 if it's a big enough project. All very subjective.
The point of this thread is that there are teams with a manager who is the defacto TL for the projects the team is doing, so they have IC responsibilities, and then there are teams where the manager does manager things and there's one or more separate TLs.
I've worked on teams in both structures, both in and out of Google, and whether TLMs vs EMs work well depends on so many factors: who the manager is, their management style, the org's priorities, the projects, etc.
It also sounds like the 10x developers are underpaid by a factor of 100!
The prior poster is missing the L7 tier, which is Senior Staff Engineering Manager for the Engineering Manager Ladder.
L8 is a Director on the Engineering Manager Ladder L8 is a Principal on the Software Engineer (SWE) Ladder.
Tech-Lead Managers (TL/M or TLMs) were on the SWE Ladder.
For reference:
Software Engineer Ladder
L8 - Principal Software Engineer
L7 - Senior Staff Software Engineer
L6 - Staff Software Engineer
L5 - Senior Software Engineer
L4 - Software Engineer II
L3 - Software Engineer (new graduates would start here)
----------------------
L2 and below exists in rare occasions.
Engineering Manager Ladder
L8 - Director
L7 - Staff Engineering Manager
L6 - Engineering Manager (M1)
L5 - Engineering Manager (M0 - normally this level does not exist for external hires and is for the rare situation when a SWE is converting to the Engineering Manager ladder)
Staff engineer typically is overseeing multiple projects, providing deep technical oversight and guidance on those projects, and mentoring Senior engineers. They start to influence technical culture. They are actively involved in ensuring business needs get met by the technical solutions their group is building.
Senior Staff Engineers will be overseeing a product function, and multiple Staff engineers. They build the correct technical culture. They ensure larger architectural issues get resolved. They are actively involved in ensuring the technical work being done is meeting business needs, and identifying business needs their technical org can be meeting - and working to make that happen.
Principal engineers are setting the tone for an entire large product (typically), and ensuring the Senior Staff engineers are doing the right things - and also often involved in driving strategic product direction.
Senior Staff and Principal tend to be increasingly political, but even Staff will get pulled into that type of thing somewhat regularly.
All of this means as an individual you suffer from extreme information asymmetry.
Even if you got two offers from two different FAANGs, it would perhaps be hard to figure out which one is better.
Has anyone defined any mapping tables between role names across Amazon, Meta, Alphabet etc. and figured out salary ranges for them in a public spreadsheet?
BTW, has anyone got a leaked (anonymized) copy of FAANG employment contracts so one can compare the various clauses across employers, and track changes of their standard templates over time? (I haven't seen this topic discussed much on here in the systematic way that it deserves.)
Given the developer community invented open source it is surprising that corporations have so far succeeded in keeping such obvious things relatively secret (compared to, say, the emails of Sarah Palin and Ehud Barak ;-).
> BTW, has anyone got a leaked (anonymized) copy of FAANG employment contracts so one can compare the various clauses across employers, and track changes of their standard templates over time
If this doesn't exist it's only because it's incredibly uninteresting. levels.fyi will tell you all you need to know. (also they aren't employment contracts, in the US we do agreements because we're at-will)
I've hopped multiple FAANG+s now across my career.
L7 is Senior Staff Engineering Manager (M2)
L6 is Staff Engineering Manager (M1)
they are of equal level to the SWE ladder L6 and L7 titles
> Does the change mean the most competent solution architect who has successfully designed and implemented many complex systems from scratch is capped in salary package because they're not doing the important job of demanding those around them fill out TPS reports all day?
No.
In house solutions architects are not really a thing at FAANG. Designing and implementing systems is what mid+ level SWEs are expected to do. The solutions architects I have seen were all in the sales org helping external customers better use the cloud. My experience isn't exhaustive of course.
I am obviously not disputing your experience, but wanted to mention that this was not the standard pattern. The standard pattern for forced conversion at L6 (Staff) was either 6 or 7 reports (I don't remember exactly).
> Principal EM
I don't want to be overly pedantic, but there's no Principal EM on Google eng ladders and so it's not entirely clear which level you're referring to.
The IC ladder runs Staff SWE (L6) - Senior Staff SWE (L7) - Principal SWE (L8) - Distinguished SWE (L9)
The Eng Manager ladder runs EM II (L6) - EM III (L7) - Director (L8) - Senior Director (L9)
P.S. I hope I got the EM II/III designations right. I think EM I is L5, though almost never seen in practice.
P.P.S. Confusingly, the IC ladder allows a limited number of reports (the limit increases with level).
>I am obviously not disputing your experience, but wanted to mention that this was not the standard pattern. The standard pattern for forced conversion at L6 (Staff) was either 6 or 7 reports (I don't remember exactly).
I think you're both saying the same thing. By "forcibly converted to EM", I think B-Con was saying the person was given more reports.
Given more reports and forced to be on the EM track.
I think 4 is still OK for L6 (L7 can have up to 19!).
> I don't want to be overly pedantic, but there's no Principal EM on Google eng ladders and so it's not entirely clear which level you're referring to.
I meant L7 EM - I have no idea why I wrote Principal (probably because I was moving too fast), and now it's too late to edit.
Occasionally one reads stories of how people get paid pretty hefty salaries to mostly just work very casually. Contrast with the usual software engineering types I know that work insanely hard solving difficult problems day-in and day-out.
When I was younger I remember a lot of project managers (almost exclusively ladies in my environment back then) that mostly just ran around interrupting the programmers and relaying feedback and status and a lot of chitchatting and busy work. Often there can be tons of support roles, wellness officers and who knows what that can probably be slashed. What shocks me is when a lot of these really low value-add positions are given high seniority with crazy paychecks and very little real skill required and fairly low responsibility or accountability for anything vaguely tangible. I suspect in tech companies generating huge cashflows that almost seem decoupled from headcount in comparison to non-tech businesses, this stuff just get covered up. A big machine that is very profitable due to massive competitive advantage/network effects, can hide a ton of HR waste.
I worked in an org with about 60 engineers all working on the same product and I have to actively _not_ fix small issues to keep my sanity. Whenever I see a small issue I would have:
0) If it changes anything visible to the user discuss it with UX or PM (very annoying)
1) Fix it (easy part, usually)
2) Create PR and explain issue
3) Get someone from the other overworked team to look at it (not as bad if it is from my own team)
4) Get comments for often trivial things (depends a lot on the changes)
5) Get asked to refactor some related functionality because the fix is a bit messy without it (workaround) or to address the root cause of the issue (this is usually a big deal)
6) Possibly several rounds of reviews
7) Someone break my fix next time anyone makes a change to that part of the code
All to get something done that wasn't asked of me, that my manager will probably not see or know about unless I bring it up, that if I do bring it up my manager will probably tell me to not waste time on it since "it is the other team's problem".
So I would either ignore the issue or create a ticket that will probably be ignored. Only if it is a really trivial uncontroversial change would I bother to actually proactively do it.
Example: Why does my kitchen bluetooth, that I connect to the most, and that I am located nearest to, always go to the bottom of my bluetooth list, meaning I can't select from the quick screen and have to unlock and pull up another screen (when my hands are kitchen dirty)? I consume media on bluetooth the most showering and in the kitchen. The devices used should be 1 and 2, but they never are. EVERYTHING on Android is this 'devs must not actually use this' unfriendly. I still can't use the timer function using voice because if I don't wait for my phone to repeat back all the timer info and I touch something it just blanks out my timer, so I've learned I can't trust it after ruining too much food. These are my two most common use cases for my phone and where it ads value to my life, and both are needlessly annoying on Android causing me to hate the platform because in 2025 these little details should work. Someone at Google must cook things that need timers. Someone at Google must listen to music/audiobooks and have enough devices they spill over to the secondary screen. If feels like Android has zero actual world love/care from the devs or these daily annoyances would bubble up instantly.
Well you just know some... not effective or smart folks then, unless they literally enjoy living such life. There is time for some hard work, but if that's one's default modus operandi long term, rest of their lives suck pretty badly, no realistic way to avoid that.
That's failure to manage one of most critical aspects of life. Especially bad fail if employed at some heartless mega corporation, or just usual often amoral FAANGs of these days (unless the goal is to earn enough money in few years and move to saner place in life, but few achieve that even if they plan for it, ie mortgages and kids happen).
Some of us live to work, and the rest work to get some good actual life.
It's reasonable, when a company is looking into buying a new SaaS product, that the legal team review the contract.
It's reasonable for legal to ask for variations in the contract, if there's something in it they can't approve.
It's reasonable for the product to be reviewed for compliance with our privacy laws, before we order employees to start using it.
It's reasonable that the information security team get to be consulted before a new product is adopted, we don't want insecure products sneaking in.
It's reasonable that we want single-sign-on from our vendors, that's good for security. And we want SOC2 compliance if possible, as we're trying to be SOC2 compliant ourselves.
It's reasonable that a vendor have a record in our finance database, so we can pay them and know who we've paid what.
It's reasonable that, before approving a vendor, we get a statement from them that they do not use slave labour in their supply chain.
It's reasonable that every expense be attributed to a project or department within the business.
It's reasonable that the project or department's budget have an owner, who has to approve major expenditures.
It's reasonable that the work above is split across quite a few teams, and that each team have a queue of work where non-emergency requests can take a week or two.
But take those reasonable policies together, and it takes 3-6 months to adopt a new SaaS product - so it's a heck of a lot easier to stick with an under-performing, over-priced vendor than it is to get a new vendor approved.
All he showed was you can an existing thing running with 20% of staff.
If you were in a growing domain, and the TLM stayed engaged with the code it worked really well, but as soon as one of those failed it was a bad roi for the company and a pretty terrible experience for everyone. the juniors were never getting promoted since there was only room for 1 expert on the small domain. The TLM was just chilling getting 5-10% raises a year without going outside of their little kingdom, but making sure their domain worked well.
As their junior got better they coded less but their juniors couldn't grow as long as they were there because the niche didn't need that many people.
I don't think its a coincidence that all these companies eliminated these rolls after 2022. When you have unlimited money and massive headcount growth these roles can exist and give your good but not exceptional people room for career growth. At static headcount, you basically need to do what banks do -- yearly cuts or no one can be promoted or hired.
IMHO, the conditions where a TLM role is appropriate are:
1.) You need to be in the company growth phase where you are still trying to capture share of a competitive market, i.e. it matters that you can execute quickly and correctly.
2.) There needs to be significant ambiguity in the technical projects you take on. TLMs should be determining software architecture, not fitting their teams' work into an existing architecture.
3.) No more than 3 levels of management between engineer and person who has ultimate responsibility for business goals, and no more than 6 reports per manager. The mathematically inclined will note that this caps org size at 6^3 = 216, which perhaps not coincidentally, is not much larger than Dunbar's number.
4.) TLMs need to be carefully chosen for teamwork. They need to think of themselves as servant-leaders that clarify engineering goals for the teammates who work with themselves, not as ladder-climbers who tell others what to do.
Without these, there is a.) not enough scope for the feedback advantages of the TLM structure to matter and b.) too much interference from managers outside the team for the TLM to keep up with their managerial duties. But if these conditions are met, IMHO teams of TLMs are the only way to effectively develop software quickly.
Perhaps not coincidentally, these conditions usually coincide with the growth phase of most startups where much of the value is actually created.
I'd love to say that the answer is "because I'm a good manager", but I think that the real answer is "because there was money=headcount available, the layers of management above me successfully presented our value and inflated our needs enough to convince a VP to give it to us, and my own manager physically did not have enough hours in the day to have 1:1s with all the new incoming headcount without introducing some layers of management under us". If it weren't me, it would've been some other manager. For that matter, I wasn't a manager when I joined the team, but I was interested in managing and of sufficient level that I could pass department policies, so I ended up more than doubling my team size within 6 months of becoming a manager. The team was pretty busy for the first year or two after that - we'd gotten all that headcount by arguing that we were critical to some big strategic initiative, after all - but there were long periods after where we were oversized by a factor of about 2, so I just let everyone work 20 hour weeks and phone it in until the next big project came.
The more time I spend in the corporate world, the more I become convinced that success is a matter of meeting the minimum qualifications, bullshitting, saying yes to opportunities created by people who are themselves bullshitting, and doing the minimum amount of work needed to avoid being called on your bullshit. Businesses don't hire because they actually have work to do. They hire because they have money and money=headcount and headcount is the only way for a manager to get promoted or pad their resume.
I mean there is the obvious part of the answer in that managers are the ones that are given the power to define that growth ladder, but I'm not sure this fully explains things. If people are transferring from technical positions to managerial positions then should they also not be aware that there is a lot of advantages to allowing people to keep climbing the ladder through technical positions? That institutional knowledge can be incredibly valuable. It's often what leads to those people being such wizards. They've been with the code for so long that they know where things will fail and what are the best parts to jump in to make modifications (and where not to!). But every time you transfer one of these people to a non-technical role that knowledge "rots". More in that code just keeps evolving while their knowledge of it remains mostly frozen.
Which what you say sounds like maybe the worse end of that. Taking that person with institutionalized knowledge and hyper focusing their capabilities on one aspect. That doesn't sound like an efficient use of that person. Though the knowledge transfer part sounds important for a company's long term success, but also not helpful if it's narrowly applied.
do they report to the same level? every place I've seen a "technical track" and "management track" it seems the higher level technical people report to someone on the same or even lower level in management. I.E. a manager can have technical reports that are equal level or higher. that obviously doesn't happen in the management track.
not that these are first level managers but if a principal engineer not reporting to a VP, the it doesnt seem like the tracks are equal.
If I'm a jr engineer reporting to a director does that give me more authority then a staff engineer reporting to a manger?
Management is a different job, it would be leveled differently.
Maybe a high level IC needs to work closely with a team for a bit so they just report to the manager of the team.
You can, but it's a dead end ultimately. I've been a distinguished engineer which is about as far as one can go (some companies have Fellows, but it's just a few people so basically impossible). If you have any desire to grow beyond that, management track is the only possibility.
Also, moving to management from a DE level is harder because you're basically around a Sr.Director level (give or take, depending on company) but have no management experience.
If you care about career growth (and I'm not saying you have to, geeking out on the IC ladder is way more fun), I suggest as soon as you are at the equivalent level of a manager on the numeric ladder, switch to management.
Given a fixed headcount, you can't have frequent promotions without either personnel turnover or allowing for employees to be routinely demoted.
If you are in a bad position then change, but if you like the company and role, don’t take it for granted and think carefully.
This advice is consistent with the broad statistic if more than half of the sample is currently in “bad position”.
Does anyone stay in the same position/team for more than two or three years even at the same company?
TLM is an odd role. I understand big tech companies have their own culture but it does seem like a poor management strategy regardless of efficiency.
Of course, this can backfire in many ways. You end up wasting engineering talent, and as the organization grows, managers spend more time on paper-pushing than on creative work. And there's no shortage of engineers who are just bad at reading, talking to, and managing people.
But the huge perk of management is leverage. If you're technically competent and credible, and want something to happen, your team will see it your way. If you're a random "ideas guy" in an IC role, that's not a given.
There are three levers of power in an organization - relationship, expertise and role. Role power is by far the least effective. If you can’t get team buy in for your ideas or they believe you’re an idiot, you won’t get anything done.
A high level trusted IC who builds relationships inside and outside of the team and who is strong technically can work miracles.
At my current 700 person company, I’m pushing through a major initiative that management up to the CTO was at first skeptical about because I convinced them of my vision and I built relationships to get buy in.
I’m a staff engineer.
Even at BigTech I saw L6s and L7s ICs push through major initiatives the same way.
To be frank: it sounds nice, but I don't think that's really true. It's the power of "who's going to decide my promotions", "who is going to advocate for my team and get us more resources", "who approves my expenses", "who is going to protect me if something goes wrong", etc.
This doesn't give the manager a pass if their ideas are objectionable, but if they're credible, it's a huge advantage. Small disagreements disappear and people fall in line behind your vision, get excited about it, and make things happen.
In contrast, in an IC role, you can successfully push for initiatives, but you're always working against that dynamic. The merit of your idea aside, folks might simply feel that you're pushing them in a direction that's less likely to get them rewarded or recognized within their reporting chain. That takes extra effort to overcome.
Being very visibly anointed by some VP helps, but that's tapping into the exec's leverage, not yours. And that approach has downsides; I worked with more than one architect / uber-TL person who were universally disliked and feared. The perception was that they showed up to make your life worse by putting extra work on your plate, without having much skin in the game.
Of course that’s the play. Even a lind manager can’t get major initiatives through without getting the buy in from their manager. When I was working for startups, the director (1st company I had influence at) and the CTO at the second had been convinced of my idea and gave me the authority to pull who I needed to get it done.
Fast forward past BigTech to where I work now - a third party AWS consulting company, after convincing the powers that be of the market, I had it escalated to be one of the companies initiatives for the year.
But more so in BigTech, promotions aren’t completely on your manager. At least at AWS you had to have recommendations by I believe two or three people one level ahead of you and it had to go through a committee.
From talking to a couple of L4s that I mentored when they were interns and when they came back, they were both complaining about the promotion process even though their manager supported them.
But that mean those people have the power, not you. Without that formal power structure you wouldn't do so much work trying to convince these people, the formal power structure forces everyone to try to manipulate and work with it, even you.
So it makes it so much easier to do anything if you are that high up person, imagine that was you, now instead of having to convince these people to do it now you just do it.
Imagine instead of having to convince the Director, VP, or CTO to support your good idea, that instead you had to convince 100 out of 700 people to support it, while at the same time, those 100 people are hearing good-sounding ideas from 99 people who aren’t you.
I’d way rather work in the former than the latter.
Eh, maybe at faangs or at the executive level but at non faangs you might not notice a role having power because most roles with the Manager title are no longer actual managers but supervisors.
I had more agency over where capital was deployed as a teenager deciding how many people were going to be on the shift for closing, then I have making over 200k/yr as a Senior Manager.
Any role that has decision making power over where money goes automatically has a massive amount more power than a role that does not
When I was being hired as a strategic hire for startups - and was being interviewed by the director or CTO - I specifically asked would I be reporting directly to them or another manager. I actually refused one job because I saw that the expectations they had from me and how far I was down in reporting structure was incongruous.
Maybe for faangs. At every company I have worked at with a manger title from 2019 to present, this was expected of people with "director" in their title and below.
You are not a manager if you do not get to decide where capital is deployed, without your boss's approval.
For anyone reading this comment, if you think you are a manager, ask yourself this question
"If I decided tomorrow that the company would be better off if I hired someone to do role {X}, can I open a new req for that role without permission?"
If the answer is no, you are a supervisor with less agency than the a Walmart deli leader circa 2010
Directors direct (including opening hiring reqs without higher-level approval).
Managers manage (which doesn’t include unreviewed role openings).
Both do useful work in a well-functioning company.
I was not joking about the roles having less agency than a Walmart deli supervisor. I had more say in how the work was done in that role, than I have at any software company while I had the word “managers” in my title
There's tons of title inflation out there, especially at smaller firms.
But the value of the capital you had sway over as a 200k manager is significantly higher. You have to accept that you won't ever have total agency over 7+ digits worth of both human and non-human capital if you're not a VP/CEO (or a fintech bro I guess).
As far as I can tell, the main function of an EM is to enforce the company policy. I'm not sure there really is a need at a smaller place.
In a small company (let's say anything under Dunbar's Number), you have a very dense network organically, and EM's aren't necessary. As the company grows larger, the matrix becomes sparser and sparser- until you get to something like Google (180k employees plus maybe that many again contractors) and you have almost all 0's. So an EM's job is to solve the communication problem, because information still needs to flow around the company, in and out, whether it's "do this project" or "another team already solved this problem" or "this project is a never-ending world of pain and should be ended" to "employee 24601 is awesome and should be given more responsibility."
Probably the best description I've heard of the EM role is that "It's a large collection of part-time roles, all with disparate skillsets, that together are responsible for ensuring the success of the project."
Communication is a huge part of that - downwards (telling reports the information they need to be successful), sideway (getting information from cross-functional partners and managerial peers so you align your projects with theirs), and upwards (managing expectations and asking for direction at the appropriate point so upper management doesn't freak out).
But other skillsets involved are: playing therapist (managing anxiety, morale issues, resentment, and misconduct); coaching (both technical and interpersonal); splitting up vague exec mandates into subgoals; prioritizing; hiring; managing performance; serving as a point of contact for whatever random problems your reports bring you; negotiating; setting team structure; developing expertise among your reports; managing their careers so they get promoted; ensuring that they're recognized for their accomplishments; helping people have fun in the office; modeling a culture of respect; selling new product initiatives; and yes, enforcing company policy.
I find that it works well, the TLM keep a foot in the action, so to speak and has a better idea of what's happening with the product being developed, what issues we're facing (also in terms of tools, environments...) and it keeps their knowledge of the product more up to date. Of course with their background, I wouldn't say they are all the greatest at managing, but I don't think they've ever done big mistake on that side of their role. So in short in our case it works, but it could just be a consequence of the local organisation and people working there.
I have a lot of thoughts on this. IMHO, it's appropriate for the state that Google is in now, where it is a large mature conglomerate, basically finance & managerially driven, built around optimizing 10-K reports and exec headcount & control. It's not a particularly good move from the perspective of shipping great software, but Google doesn't really do that anymore.
The reason is because software construction and management is unintuitive, and concrete details of implementation very often bubble up into the architecture, team structure, and project assignments required to build the software. TLM-led teams have a very tight feedback loop between engineering realities and managerial decisions. Your manager is sitting beside you in the trenches, they are writing code, and when something goes wrong, they know exactly what and why and can adopt the plan appropriately. Most importantly, they can feed that knowledge of the codebase into the new plan. So you end up with a team structure that actually reflects how the codebase works, engineers with deep expertise in their area that can quickly make changes, and management that is nimble enough to adopt the organization to engineering realities rather than trying to shoehorn engineering realities into the existing org structure.
Now, as an EM with 10+ reports, I'm too far removed from the technical details to do anything other than rely on what my reports tell me. My job is to take a slide deck from a PM with 10 gripes about our current product, parcel it out into 10 projects for 10 engineers, and then keep them happy and productive while they go implement the mock. It will take them forever because our codebase is complex, and they will heroically reproduce the mock (but only the mock, because there is little room for judgment calls in say resize behavior or interactivity or interactions with other features and nobody's holding them accountable for things that management didn't have time or bandwidth to ask for) with some hideously contorted code that make the codebase even more complex but is the best they can do because the person who actually needed to rewrite their code to make it simple reports up through a different VP. But that's okay, because the level of management above me doesn't have time to check the technical details either, and likewise for the level of management above them, and if it takes forever we can just request more headcount to deal with the lack of velocity. Not our money, and it's really our only means of professional advancement now that product quality is impossible and doesn't matter anyway.
Ultimately the value of the TLM role was in that tight bidirectional feedback between code, engineers, and management. As a TLM, you can make org-structure decisions based on what the code tells you. As an EM, you make org-structure decisions based on what your manager tells you. But at some point in a company's lifetime, the code becomes irrelevant - nobody reads it all anyway - and the only thing that matters is your manager's opinion, and by transitivity, your VP's opinion. A flattened org structure with as many reports per manager as possible is a way for the VP to exert maximal control over the largest possible organization, mathematically, and so once that is all that matters, that is the structure you get.
I really never intended to have a management position, but this has been an incredible opportunity to experience a portion of it without fully committing. Other replies have described this as a transitional role, and I don't think they're wrong. In the long term, especially if the company grows, I can probably be more valuable by committing to one path or the other. However, for the right person and situation, I could see us minting a TLM again, regardless of size.
I thought it was a nice stepping stone for people to learn management without having 10 people dumped on them. But it looked bad on paper.
There’s always a downside to anything, and the merits/demerits are all about the politics of the org.
Once you're late stage though, that's done. TLMs are probably being held to 100% of IC standards and manager standards, people under them are jockeying for "impact" and don't want to compete with their manager, etc.
I totally see why it wouldn't work at today's Google. Honestly maybe it's a positive sign they recognized that.
Simple as that. It’s fine during times of growth but that’s not happening right now.
Without it, nobody on the management side of things actually writes any code, or has first-hand experience with working on the product. The line managers just end up as a go-between between the workers and their directors, because they only know what their reports tell them. They don't know much for themselves.
You can't quantify this sort of loss on an earnings report, but among many other things, it does a great job of diluting ownership of the product away from the teams working on it.
Best in that the TLM generally has complete control over the product execution (and can commonly bulldoze the PM). It's amazing if you have a solid vision of what you want and you want to get it done.
Worst in that the workload can be intense as the team grows.
Being 50/50 makes it hard to advance/develop in either one of them significantly.
The biggest issue is that management requires a lot of "wasted time" paying attention to whats going on around you and IC skills require a lot of "heads down time". It's a big fight between those two modes.
I've done it at a startup but it required doing most of my IC work after hours. Which isn't that sustainable.
Ohhhh this explains so much. My career is pretty much entirely at b tier companies who try to implement what faangs/mag7 type companies do but always fuck it up because they don’t understand the fundamentals or are unwilling to part with any of amount of power or money even if they got more after all was said and done.
Anyways post covid all of a sudden every company was expecting me as part of the Software Engineering Manager roles I was getting, to have 7-10 direct reports, do 30 hours of project management per week, _and_ simultaneously be better versed in every single project my direct reports were working on or at least be the initial architect for the project.
I just ignored it and kept my people productive since that was an impossible ask of me, and for 5ish years that was good enough for companies but I guess if the faangs are wiping that role clean I better switch career niche again
The hybrid role idea has always been ridiculous. It's two different jobs, like being a mechanic and an accountant. Do you need a mechanic? Cool, hire a mechanic. Do you only need a mechanic part-time? Cool, hire a part-time mechanic. But I don't want my mechanic stopping and starting the work on my engine 3 times a day because somebody has tax questions.
The whole point behind the division of labor is to specialize, and get really good at your specialization. Picking up multiple very different jobs and trying to do both is the opposite of efficiency. People knew this 250 years ago.
Overall: this is a good thing. By taking up less room on the technical side, I've replaced one of me with four strong engineers. Previously, I was split between TL work and EM work and as a result, did a half job of each, leaving too much un-done.
The other thing I'll note is that engineers are basically the only role with this distinction. Product Managers, Program Managers, Sales, Marketing, all those roles seem to combine management with seniority. Only on the engineering side do we have both a TL and Manager hierarchy (while typically the TLs for a team report to the same manager that the line manager for the team does, they exert authority differently). This works out okay on the eng side when there is a strong alliance between the TLs and the EMs, but that doesn't always happen.
I've also never really liked the idea of engineering managers who are technical enough to approve/veto tech decisions that team members make, since there's a power imbalance there. Even if your TLM is pushing a bad technology choice, you might not want to push back too hard because they're also responsible for your performance review and comp changes and whatnot.
So, no different from any other dedicate IC or manager at these companies?
>I've also never really liked the idea of engineering managers who are technical enough to approve/veto tech decisions that team members make, since there's a power imbalance there.
How is this different from any other manager or higher up making decisions? If your boss or boss's boss really wants something and you're not in a good market, it's never a good time to poke your head out.
Non-technical managers usually don't have strong opinions about which framework or database to use. Among engineers these decisions are usually made in a meritocratic way (weighted by who is the loudest sadly), but if your manager says "let's use X" it has a different weight than if your peer does.
What I really love about it is the leverage. In a technical domain with a good core team it is almost like running your small company.
It’s part of an effort to have dedicated managers and dedicated engineers instead of hybrid roles.
This is being sold as an efficiency win for the sake of the stock price but it’s really just moved a few people around with the TLMs now 100% focused on programming.