Disclaimer: This article is based on my personal experiences and those of my peers and seniors. In no way does it reflect the views of any company or organisation. The post is skewed towards my area (NLP and ML).
I recently (July 2021) started as a Pre-Doctoral Researcher at Google Research, India (Bangalore), working with the NLU team. In the past few days, I have been asked multiple questions about the role and the hiring process. So I have compiled the answers and my experience in this blog.
Update 2: Re-iterating that the EXACT TIMELINES and Process of application such as deadlines or number of interviews CAN VARY every year.
Update 1: Lot of people have recently asked me this question, and hence updating the blogpost with the answer. The question: Should I apply if I am not sure if I want to do research/PhD? What are other options after the program?
About the role:
The “Pre-Doctoral Researcher” role is a two-year fixed-term, full-time research role at Google Research, India, designed to give recent undergraduates and masters students exposure and experience in high-quality research. As the name — ‘pre’ ‘doctoral’ —suggests, it is meant to be a stepping stone to doctoral programs, and most of the people go on to amazing graduate school (MS/PhD) programs from here. However, going for a PhD after this is not necessary, and one is free to opt for alternate career options at the end of these two years. Also, note: Google in no way funds further education nor promises any re-hiring/extensions or anything like that after this program. It is a two-year program, and after that, one is free to pursue any career paths they deem fit.
Other similar roles:
The Research Fellow (RF) program at Microsoft Research, India, is analogous to this program. Most of the points covered here apply to the RF program, except they have a slightly different and longer interview process.
In India, apart from Google and Microsoft, the labs (that I am aware of) that offer similar programs or hire undergrads for research include Wadhwani AI, Adobe Research, IBM Research (rare), TCS Research, Mercedes R&D, Samsung Research (BLR), and NVIDIA AI Research. However, I do not know details about their hiring processes. This is a great repo to other AI residency programs you can apply for (not all maybe open to Indian candidates). You can also apply for similar roles which are usually called as “Research Assistantships” under professors at Universities in India and abroad.
Should I apply if I am not sure if I want to do research/PhD? What are other options after the program?
If you are interested in research but unsure whether you want to go for a PhD/research career in the longer run, this (and similar programs) are the best way to explore. You will get exposure to what research looks like and will get to work on cutting edge problems with amazing peers and mentors. Based on the experience you can take a much more informed decision on whether you want to do a PhD. If you ultimately decide not to go for a PhD, a lot of roads still remain open. Previous RFs from the MSR program have gone on to successfully work at companies and startups after the program instead of going for a PhD. Some have even founded successful startups (The founder of Ola was an RF at MSR). The research experience would be a great plus while applying to any applied research fields like ML engineering, Research SWEs, Data science roles, ML based startups, and so on. Even if you decide to chuck research altogether and want to take up a SDE role, it is still possible. At Google, and other places, along with research you would have also done a lot of coding for implementing research work and at times, even deploying your research work into the company’s products at small and large scales. Granted that this is different from software development, but the experience along with the reputation of the company attached would only enhance your CV. So I recommend, if you have even the slightest predilection towards research, apply to such programs, try out serious research, and then make a decision of whether you like it enough to continue making your career into it. This and similar programs do not close any roads, if anything they just open many more.
How to apply?
Around November (Nov 2020) last year, Google Research, India released an opening for this role on their page. I found the link to it on LinkedIn. It gets widely shared on social media platforms, so keep a lookout. You can apply via their careers page opening like you apply for any role at any company. They ask for your research interest, CV, statement of purpose (SOP) and other basic information during this application.
What do they look for in candidates?
They look for a good research fit and potential, i.e. prior experience and strong interest in a research area. Previous experience can be shown by projects, past internships, courses, etc. Publications are always a plus. Potential is judged via your application materials and interviews.
How are projects/teams allotted?
You are asked to indicate your research interest(s) during the applications and before the interviews. Based on your response, you will be matched to one (or more) relevant team(s). Interviews are also focused on your research area(s), and hiring is based on research interest and team fit. For details about the research areas and projects at Google Research, India, visit their website.
What if I don’t know my areas of interest?
Ideally, based on your prior experiences, you should have some idea about your areas of interest. However, even if you are not a hundred per cent sure, you can indicate your *potential* areas of interest. You would get a chance to explore more once you join as Google is very open and collaborative internally (based on what I have judged from my limited time here).
What to write in the SOP? How to write a good SOP?
Some key questions that your SOP should answer are (albeit not in a QA format):
- What motivates you to do research?
- What field(s) do you want to work in and why?
- Why did you apply to this position, or how can you contribute?
- What specific problems/areas would you like to explore while at Google?
- What are the past experiences that make you qualified/ready for this role?
- What are your future plans or expected outcomes after this program?
In the application itself there were some questions/prompts that were expected to be covered in your SOP. I do not exactly remember them, but they were roughly along these same lines.
There is a lot of advice on how to write great SOPs available online, so I will not go into too much detail about this here. My SOP was very similar to the SOPs written during applications to MS/PhD programs. Some of my favourite advice is: How to write a (Good) SOP, Inside PhD Admissions: What readers look for in a SOP, How to write a Statement of Purpose for grad school. Resources on applying for the Google AI Residency program are also helpful such as this blog post on writing an SOP and this example cover letter. There are many more blogs/examples/pieces of advice available online (and also on Twitter). You can follow what works best for you. [Update: I started maintaining this github repo to curate helpful advice related to grad admissions and research, it has a section on SOP which can be helpful].
What is the process after applications?
After the applications, (presumably) shortlisting of candidates is done based on the application materials. Shortlisted candidates are invited for interviews. There was a pre-connect call with the director and other researchers of Google Research, India. They briefed us about this role, the research areas and current ongoing work in the lab, and the timeline of the interview process.
How many interview rounds happen? What does the timeline look like?
There was one coding round, one research round, and one round with one’s potential manager to assess team and research interest fit. After each round, you are informed whether or not you will be moving forward to the next round. The timeline of the interviews was between January to March 2021. I was told of my shortlist in mid-Jan. This was followed by a coding round towards the end of Jan. I had my research round in roughly mid-Feb (2–3 weeks after the coding round). The final round with the hiring manager happened around the first week of March, and I was extended an offer roughly 2–3 weeks later. This timeline can vary for each candidate.
What is asked in the coding round? How to prepare for it?
The coding round is the same as typical data structures and algorithms rounds that happen for SDE roles at Google (and at other company placements). It is a 45 minute round where the interviewer asks 1–2 DSA based questions which you are expected to solve and code. The questions are not super hard. The difficulty level could be considered similar to medium level questions of LeetCode. If you are already preparing for SDE roles, I believe that would cover this round more or less. Again, there is a lot of advice on preparing for coding rounds (even specific to Google) online, so I won’t dive into details of how and what to prepare. I recommend InterviewBit for starting and LeetCode medium to hard questions for rigorous practice. Looking up previous Google (SDE) interview questions can also help. Remember, this is not a coding test. It is a round with an interviewer, so practising for the interview is as crucial as practising coding questions. This blog I wrote last year covers technical interview preparation in a lot of detail.
What is asked in research rounds? How to prepare for it?
Research rounds are, well, research-based. This round also lasted for about 45–50 mins. Broadly there are two categories of questions that can be asked in these rounds. The first is questions based on your past work or area of interest. And the second is general theoretical/conceptual/mathematical questions related to the field. Sometimes these two questions can overlap if the interviewer asks you theoretical details of your past work.
For me, the entire round was focused on the first type of questions. These questions tend to be generally open-ended, and in my case, it turned into a discussion about my work and ideas rather than a typical question-answer interview. To prepare for this, it is absolutely necessary that you know everything that is written in your CV very well. Know each and every detail of every research project you have worked on in the past in depth. You would most likely be asked to talk about one (or more) of your (research) projects in detail. So be prepared with crisp talking points. Typically, the interviewer will first listen to what you say and then probe into the depth of the project. Expect questions like — Why did you do something in a certain way, why did you not do something in a certain way, what were the different approaches you tried, what were the limitations, how can you overcome it, why do you think some particular approach works, how will you change your method if something specific in the research problem changes (and other hypothetical/situational questions), what methods other people working on this research problem are exploring, what can be some interesting future directions etc.
I recommend being well versed with recent literature on that and related topics. You don’t have to know every paper by heart or every method and architecture in detail, but have a bird’s eye view of what’s going in the field. Since these questions are mostly open-ended and critical analysis based, there is maybe no correct answer necessarily, and that is okay. They want to see how you think, how well you can defend your ideas and methods, and how ‘research-y’ (for the lack of a more descriptive word) you can be.
While I was not asked the second type of questions, some seniors I talked to while I was preparing recommended that I go through basic ML, Deep Learning, and NLP concepts as they can be specifically asked or might just come up in a discussion. While I did not face any such questions, I was also told to prepare some basic theory and mathematics related to ML. (Note: my field was NLP hence I am mentioning these topics, if you work in a different area, the topics would vary accordingly). Some great blogs on sites like analytics-vidya and medium/towards-data-science list (and answer) some of the most commonly asked questions and must know concepts for typical ML interviews. Some links I referred to (courtesy to a senior): 10 basic ML interview questions, ML interview questions, and this quora thread on how to prepare for interviews for AI residency at Google. Just googling ‘ML/data science interview questions’ and ‘preparing for the AI residency at Google’ would also yield great results.
What happens in the round with the potential manager?
This round ended up being very similar to the research round. It was not an interview per se but more of a discussion to assess how well my research interests would fit with that of the team, what past experience I have and how it would be relevant, what kind of problems I wish to explore if I join, and my expectations from the program. I was also told a bit about the team’s ongoing work and potential research directions to ensure that I am interested in those themes. This conversation lasted 30 mins.
Yeah that’s it!
- Apply! Even if you think you are not good enough, or you don’t know if you want to get into research for sure, take a shot at it. The experience itself can teach a lot.
- Be confident and respectful in your interviews.
- Don’t get intimidated by the questions you don’t know answers to. After all, that is what research is all about.
- Try to defend your methods and ideas, but don’t hesitate to improvise or correct your course if you see flaws.
- Don’t hesitate in asking for clarifications or additional questions if you are stuck or unclear on how to approach the problem. It’s okay to say “I don’t know”.
- Never lie on your resume or in the interview.
- Be very specific on the kinds of problems that you would want to explore while at Google. Take some time to look at recent publications and work from Google relevant to your research area to get ideas.
- Try to create a portfolio — either a website or GitHub profile — that showcases code from your research projects, publications, etc.
- Prepare for the application in advance — keep your CV and SOP ready, and apply at the earliest once the opening comes.
- Reach out to predocs working in your area of interest (or otherwise) and get to know about their work as well as interview experiences.
- Start preparing for interviews in advance, don’t wait for getting shortlist confirmation. You wouldn’t get a lot of time between getting a shortlist confirmation and the commencement of the interviews.
- Practice talking about your research in front of a mirror or with a friend.
- Ensure that you maintain a good balance between technical details/specifics as well as background, context, and abstract ideas when you talk about your work. Anyone with an overview of the field but not familiar with the sub-field or research problem should understand you. The same applies to describing your projects/experiences in SOP.
- I can’t emphasise enough on being well versed with themes and literature in your domain. My interview was amazing (and fun) because my interviewer and I ended up having a great discussion. I was only able to do that because I had read up recent literature. So we talked even beyond the limited scope of my previous project and discussed interesting problems, potential research directions, solutions, and ideas.
- At the end of each interview, you are given a chance to ask questions. This is your chance to know more about Google, so ASK!!
I hope this blog answers most of the questions you might have about this role, the application, and hiring process. Feel free to reach out if you have additional questions.