Hi everyone,
I am currently a software engineering intern in Google. My main goal is to get a return offer after I complete my internship.
Based on my conversation with my intern manager, the high level metrics for success as an intern are definitely technical problem solving, collaboration and feedback etc. This is highly aligned with Alex's videos on the Internship series, where he described that an intern's main performance metric is code volume. I have also learnt that finishing a project drastically increases one's chance for a grad offer based on interns who converted to FTE.
However, I noticed that there are a lot of opportunities for events and mentoring. My current strategy is to focus most of my time in the project while networking mainly in the team to make sure I have a great relationship with them. Occasionally, I meet another employee once a week or so. At the same time, I noticed that most interns are using most of their time to meet with other FTEs from all over the world and other teams.
I personally find that a large codebase with so many contexts and 12 weeks to be the main factors on why I am a bit more conscious of my own time.
Is my current strategy to focus on the project and networking mostly with my current team optimal for a return offer? If not, are there anything else that I should be focused on?
Is my current strategy to focus on the project and networking mostly with my current team optimal for a return offer?
I think this works out just fine! The absolute first priority is to make sure that your project ships on time with high-quality code. You can do this by more or less following all the advice in this course: Level Up Your Code Quality As A Software Engineer
Networking with your current team makes the most sense as well since they're the closest to you. If you have extra time, you can network with other interns as well - I'm sure the vast majority of Google interns go on to do great things.
In terms of internship conversion metrics, I used the following at Meta as an intern manager, and I imagine Google uses them to some extent as well. These are also very important to evaluate the performance of junior engineers (L3s) and even many mid-level engineers (L4) as a lot of their contribution is from code:
That being said, coding power is very subjective, so it's not like we determined an intern's fate purely off of these numbers. We spent a good amount of time discussing in calibration and going through the peer feedback - Code quality in particular is very nuanced and can't be captured with mere metrics. Software engineering is such a complex craft - It's simply unfair to reduce it down to raw math.
On top of coding ability, communication and collaboration are big ones. These can't really be measured, so an intern's strength here is mainly determined through subjective peer feedback around aspects like question quality. If you want to dive deeper on the topics of communication and asking good questions, I recommend these:
Alex hit the nail on the head. If it helps to hear it from a Googler, this advice is spot on. Remember Google's mantra of small code commits; it's not just about the volume though! The quality of your CL (change list) comments is crucial, so ensure everything is addressed before submitting anything for review. Avoid submitting CLs prematurely, and focus on best practices for the programming language you’re using. Google's "Tip of the Day" series in Moma is an excellent resource for this.
Additionally, keep track of your average time to review others' CLs. Aim to make your reviews manageable, ideally within 24 hours. With these practices in place, you’ll be in great shape!
Good luck!