Congrats on getting the opportunity!
What's your thought process when deciding when to switch teams?
- Have I been miserable everyday for like, the past 3 months? I'm leaving, even if the work is "important" and/or there's opportunity to grow. You can be miserable for many reasons (bad manager, teammates you don't get along with, or you just hate the work), but the exact reasons aren't important. Whenever you recognize that something is truly making you miserable and you don't see it changing soon, leave.
- Am I growing in ways I want? If not, I'm looking for a new challenge. Unless stability is what you are looking for (e.g. when you have other big changes going on in your life), having the same challenge day in day out probably isn't good.
What's your thought process to decide which team to switch to?
I would say, there's ~ 3 type of team switches:
A. To a different team within the same org / in-org transfer
- Pro: allows you to leverage your existing reputation in the organization to acquire a new position and continue using your skills/knowledge. The better your own reputation, the higher chance of landing a role as orgs generally tries hard to keep their best contributors. This option is surprisingly effective especially if internal headcount is hard to come by, like it sort of is now. Your old work likely transfers better as well and your onboarding is going to be minimal since there's a lot of shared context. I've done this three times in my career (including twice in G) and this option is not talked about much but is better than most people think. Do this if you like the tech/product, but don't, say, have a problem with your manager or your specific team.
- Cons: hard to try completely new things. Hard to know whether opportunity actually exist. Needs people to sponsor you. Same pay. Maybe, same cultural problems.
B. To a different org within the same company / internal transfer
- Pro: depends on the company, but at G, no formal interviews are needed so you don't need to grind leetcode. Most big tech teams also preferential hire from internal candidates vs external candidates. Can interview your potential new teammates to get a sense of their team culture and how much they like their manager, which is critical to your future success. In G, you used to be able to ask for a manager's GoogleGeist ratings in the past to get an "objective" rating on how good they are. TLDR: you are able to pretty reliably assess how good your opportunity is if you put in effort to investigate for an internal transfer.
- Cons: Same pay. Usually new context and technology, so you have to learn a decent amount when onboarding. Need to build new relationships. At the same time, they also know a lot about you. So if you've gotten a bad rating in the past, your new prospective manager can ask about that.
C. Switching companies
- Pro: Allows you to negotiate comp. Maybe even a level jump. Ultimately, experience a different culture and definitely a different group of people.
- Cons: Actually have to interview. Getting a good team is more of crap shoot, since you don't have access to internal info that will help you make a reliable decision. External candidates also typically gets hired to the worst teams (because these teams have a hard time attracting good internal candidates). I think notably Meta's bootcamp helps avoid some of this problem but that has its own set of issues.
I'm guessing you are about to switch internally at G. I recommend you search up "Demystifying Transfers" on Moma, it's got a lot of helpful tips.
What lessons have you learned from when you've previously switched teams?
- In-org transfers are underrated.
- You can never ask enough questions about your prospective team. Even when you don't have multiple options, invest time and effort figuring out where you are going. Team switches are expensive so take advantage of any intel you can find.
- Quality of your manager is probably the most important factor for an IC. Everything else - tech stack, work load, probably makes a smaller difference than most people think.
Good luck!