Most companies will have a "team matching" phase where they try to pair you with an appropriate team. Some companies have stages where you fill out a team matching survey before you get an offer.
Picking teams is exciting! But it is also stressful - there are many unknowns. People tend to focus heavily on company names and culture, but ultimately the team you work on is going to play a huge role on your day to day satisfaction! You could easily learn more working on a good team at a small startup than at a bad team at a popular big company. I was given tips by a coworker of mine, and below is basically me copying his advice. He encouraged me to focus on two things: the nature of the work, and the nature of the team.
- Is the work code user facing or internal?
- Is the work analytics focused or product focused?
- What is the tech "stack"? What languages / frameworks do they use?
- How challenging is the work?
- What is the hardest aspect of the work? (Design, Debugging, Building Great UI, Tricky Algorithms?)
- What impact does it have on customers?
- What impact does it have on the company?
What are the teams operations and dynamics like?
- When was the team created? Has it been around for years or was it just created?
- How big is the team? 5 people working closely together is different than 50!
- Remote works?
- Are there senior engineers on the team that would enjoy mentoring you?
- What is the team's "on call" like, if they have one?
- Do they do a good job of executing projects?
- Do they have sprints?
- Do they have a manager? If they do, do you like the manager?
- Is there a PM, how do decisions get made, etc
It is a good idea to decide which of these things listed above are important to you. Once you have a sense of what you do and do not care about, you can spend time investigating the things you do care about.
For some companies, you might be given a form where you can literally type what is important to you. Other companies, you might get the chance to actually talk to teams and discuss. If you know what is important to you, it will make this process a lot easier.
There might be a lot of different options on a survey and you do not know what to pick. This is honestly up to you. Do you want to do front end development on a UI? Do you want to do backend development? Do you have no idea (that is normal!)? Ask yourself, do you want to further improve skills that you might already have, or learn something completely new?
Learning new technologies is always great and I usually would recommend exploring this option! Especially as an intern, the point is to learn!
In some cases, if you are super stressed about getting a return offer, it might be easier for you to join a team that uses a tech stack that you are already confident with. However, I would not worry too much about this. It will be the job of your team to train you in whatever you need to know and if you received an offer, you will have the talent to succeed on any engineering team you join at the company!
For Google internships specifically you have to fill out a "team matching" form before you get an offer. This form is important because if you do not fill it out properly you might not get matched with a team that is a good fit for you!
I think the best advice here is show a little personality, be specific with your accomplishments, and be specific in what you want. You can also email your recruiter to help you find specific teams that are a good fit for you. You can view some example Google host matching surveys here and here!
If you have questions about your team matching I would love to help. You can reach me at firstname.lastname@example.org.