Google Internship Application Tips
I’m currently a software engineer at Google Sydney. I was an intern over the 2022/23 summer and joined full-time soon after graduating from university.
Here are some answers to frequently asked questions about Google’s application process. I wrote this post for students applying to the SWE or STEP internship in Sydney. The process might vary slightly year-to-year.
Disclaimer: This is not official Google advice. I don’t speak for my employer. I’m not a recruiter. This info may not be up-to-date. Use at your own risk :)
STEP vs SWE internship
Google has two main internship programs for software engineers: the STEP internship (Student Training in Engineering Program) and the SWE internship (Software Engineering).
What’s the difference?
- target audience: the STEP internship is for (roughly) second-year university students. It’s designed to provide development opportunities for students from groups historically underrepresented in tech. The SWE internship is for students about to graduate (in their penultimate year).
- the actual internship: STEP interns work on a project with another intern. SWE interns work on a project on their own. Beyond that, there’s no real difference between the two. Both internships involve learning, meeting people, talks, events, and fun. And the interns all socialise with each other :)
- future opportunities at Google: SWE interns can be considered for “conversion” to full-time roles at Google based on their internship feedback. STEP interns - who are usually earlier in their university career - can be considered for another internship at Google (the SWE internship), but generally not full-time roles.
Is it easier to get into the STEP internship or the SWE internship?
Both programs are extremely competitive.
The STEP program is aimed at students earlier in their university career. This might mean fewer applicants, but there are also fewer positions open.
How do I know which one to apply to?
- If you’re about to graduate (in your penultimate year), then the SWE internship.
- If you’re early in your university career (second year, maybe third year if you’re in a double degree), then the STEP internship.
the application process
- submit your resume: a job ad should pop up on careers.google.com in march/april. a recruiter reviews your resume, and decides whether or not to proceed.
- online assessment (OA): be prepared to complete two online coding questions in ~1 hour.
- technical interviews: a recruiter will reach out to schedule two virtual 45-minute interviews. for each interview, you’ll be randomly assigned a Googler who will ask you a coding question and take notes during the interview based on a rubric.
- hiring committee: you don’t have to do anything here, but after your interviews, your “packet” (resume + interview feedback) gets sent to a hiring committee, who decides whether or not you pass the hiring bar.
-
host match: you’ll be sent a Google Form to specify your interests. this form, along with your resume and interview feedback, will be reviewed by hiring managers who are looking to host an intern. if an intern host is interested in your profile, they’ll request a call, where they’ll tell you more about the team, ask you questions about your interests, and you get the opportunity to ask questions about the team.
- there are usually more applicants than positions, so try to be open to different teams when specifying your interests, and go into host matching calls with questions for the team.
- you can ask your recruiter for more tips if you get to this stage!
- offer stage: if there’s a match on both sides (you’re interested in the team and the team is interested in you), a recruiter should reach out with some good news 🤞 good luck!!
the resume stage: maximising your chances
Sometimes, external factors can influence the hiring process — like, the economy is bad so they decided not to hire as many interns this year. Don’t be discouraged and continue to back yourself :)
Having said that, here are some ways to increase your chances of landing an internship 👀
- Recruiters host talks on university campuses every so often about what they’re looking for in a resume. Go to one of these talks if you can for the most up-to-date info.
- Alternatively, watch this video about preparing your resume. TL;DR: keep the formatting simple and try to contextualise what you’ve done as much as possible.
- With what to put in your resume, check out this article on CSESoc’s blog. I found it to be comprehensive and relevant for undergraduate students.
- Also, double check you’ve written down the right graduation date (especially the graduation year).
- Referrals can be valuable, especially if they come from someone you’ve worked with before (e.g. classmates, tutors, co-workers, or fellow volunteers from conferences, student societies, or outreach programs).
technical interviews: some tips
If you get past the resume round, you should get an email from a recruiter asking to schedule 2x technical interviews.
- Each interview is 45 minutes long and scheduled on the same day.
- For intern/grad positions, you will be asked leetcode-style algorithm problems. Know your data structures and algorithms.
- You’ll get a call from a Google engineer at the specified time, along with a link to a collaborative code editor. The experience is similar to calling on Zoom and sharing your screen, except you’re less likely to drop out because of bad wifi when calling on a phone.
- You won’t be able to compile and run your code. The code editor is more like a Google doc with the ability to press tab to indent. You will have to walk through and test your code manually!
I practiced by doing lots of leetcode questions and 1-2 mock interviews with friends. I had also spent lots of time teaching programming as a tutor throughout university, which helped a lot with practicing programming and talking at the same time.
Think about the interviews like pair programming with a fellow Google engineer. The interviewer wants to see you succeed! They are equally interested in how you communicate and problem-solve as they are in whether you end up with the most optimal solution.
What this means is:
- Ask 1-2 clarifying questions about the problem they give you.
- the problem is often ambiguous on purpose. ask questions and state your assumptions.
- e.g. “can I assume the input will always be ___”
- Come up with 1-2 test examples to run through to check your understanding (and so you can test your code later).
- “so as an example, if I have as an input __, then what I’m expecting is ___”
- Think about how you might solve the problem and communicate this out loud.
- try come up with multiple approaches. start with the brute force method and work towards a more optimal solution.
- you can ask the interviewer for a minute of quiet time to think about it!!
- mention the time/space complexity of your solution.
- I like to write notes down as code comments to help the interviewer follow along.
- Write clean, functional code.
- break your code down into functions, use meaningful variable names, and get to a working solution.
- I recommend using “top-down” programming. write the function signatures as an outline/scaffold for the code, and then implement the functions.
- Test your code using your example and some edge cases.
- “ok, now let me run it through with an example”
other resources
- Google Security Jobs: A Guide to Improving Your Chances
- Getting That Grad/Intern Role
- Google’s Official Internship FAQs and Student Events
That’s all from me for now. Thanks for reading and good luck with your application!! 💪