How Long Do You Have to Wait to Apply at Google Again
What I Learned on My Way to a Google Offer
A story of my job search as told through facts, figures, and lessons learned
I spent the last eight months of my life interviewing and looking for my next job. Along the way, I kept detailed records. I have combed through the data and found some interesting information. If you are about to embark on your own employment quest, you should take a look at the data to know what you are getting into. I even have some tips that I hope will be of some help.
When I started my job hunt, I was halfway done with my Master of Software Engineering program at Carnegie Mellon University. It was May 2020, so COVID-19 was at its peak. Some companies had entered a hiring freeze and it was looking like it would be difficult to find a job. I was graduating in December, so I did not have the luxury to wait for a better job market.
My Background
To set the context for the rest of the article, I will briefly explain my background. If you are curious, you can look me up on LinkedIn. I maintain a detailed profile.
At the time of my job search, I was a master's student at Carnegie Mellon University. Prior to graduate school, I worked for over six years at Liberty Mutual Insurance in Massachusetts and New Hampshire. I primarily worked on a DevOps team responsible for the API management platform. I specialized in RESTful APIs. I was a bit of a jack-of-all-trades, but I predominantly worked with Node.js microservices. By the time I left the company, I was a senior software engineer.
Besides my work at Liberty Mutual, I had experience co-founding a startup. The startup was born out of a successful hackathon. It failed to get traction in the market, so we closed up shop after three years.
Prior to Liberty Mutual, I graduated from Bentley University with a Computer Information Systems degree.
My Timeline
My job search started in May and lasted until the end of December. Eight months is longer than average, but I could afford the time since I was not going to graduate until December. I imagine it would have been very difficult to complete the entire process in any less than four months. If you are starting the process, you should expect it to take 4-6 months.
I started the process by figuring out how I was going to prepare. I spent most of my preparation time organizing an interview study group to help my classmates. The members of the group solved problems, discussed solutions, and interviewed each other. We improved our problem-solving and got comfortable with the interview format.
I also used Algo Monster and LeetCode to practice technical interview problems. By mid-August, I was comfortable doing three mock interviews back to back to back. Then it was time to start applying.
I started applying by searching through LinkedIn job postings and companies' career pages. This was a tedious process. I made it more manageable by spending a little time each day applying.
The first weeks of applying were disheartening due to the number of instant rejections. I did not know why my resume was being passed over. Eventually, recruiters started getting back to me. It was easier to handle the 1-3 rejections per day once I had several interviews booked.
From October to early December, I was in the full swing of things. I applied and interviewed. I received rejections and offers. My first offers came in early November. They continued to trickle in throughout the middle of December. All in all, I ended up with six offers out of 185 applications.
After I finished interviewing, it took me two more weeks to negotiate my compensation. Then the process was over. It was champagne and smiles as I signed an offer from Google.
How Did I Spend My Time?
In total, I spent 350 hours on my job search. During the process, I used Toggle to track how I spent my time:
Here is what each activity entailed:
- Preparing — I spent this time gathering resources and figuring out how to practice interviewing. The most time-consuming activity was organizing an interview study group with my classmates.
- Practicing —I spent extra time practicing for coding interviews because I had never taken a data structures or algorithms class. I practiced by solving problems and doing mock interviews.
- Applying — I read job postings on LinkedIn and career pages. I also contacted friends in the industry to see if their companies were hiring. I applied for a wide variety of roles at various companies. It felt like I spent more than 43 hours applying to openings, so it is likely that I am missing some data.
- Interviewing — This was the time spent on phone screens, online assessments, technical phone interviews, virtual on-site interviews, and offer negotiations. This also includes the time I spent coordinating these activities. It surprised me how much time I spent scheduling interviews. If you are starting to interview, you will spend more time sending emails than you think.
Throughout the interview process, the amount of time I spent on each activity varied, as depicted in the chart below:
At the start, I spent most of my time preparing and practicing. Following my practicing peak, I started applying. It took a little while for companies to start responding. Once they did, I spent most of my time interviewing. I continued applying for another month but stopped when I started to receive offers. Finally, after 34 weeks and countless interviews, I signed an offer and rested.
What Roles Did I Apply For?
I was looking for a senior software engineering position. I enjoyed my Software Engineering for Artificial Intelligence class, so I was looking to work on AI-enabled systems. If possible, I also wanted to put my distributed systems knowledge to use by building scalable systems.
The following charts provide some analysis of the roles that I applied for:
I primarily applied to senior software roles. I also applied to many machine learning positions. The radial chart shows that I received fewer responses for the ML positions. I believe this was because all of my AI/ML experience was academic.
What Type of Companies Did I Apply To?
I applied to many different companies — from early-stage startups to massive enterprises. The following chart provides some summary-level information about those companies:
I noticed that medium-sized companies were the most likely to have unique interviewing practices. I am defining medium-sized as 150-500 employees or a valuation of $1-5B. Most companies use the traditional technical interview process. This consists of an HR phone screen, an algorithm phone interview, and a final round of technical, design, and culture interviews.
However, the medium-sized companies were more likely to stray from the norm. The most common derivation I saw was a take-home problem with a set of requirements. Often, the problem was directly related to the business or role. Sometimes, the requirements were intentionally vague. In all honesty, I preferred those types of questions. I felt that my solutions demonstrated actual engineering skills, unlike with traditional algorithm questions.
How Difficult Were the Interviews?
Over the course of my job search, I applied to 185 positions. As one might expect, the hardest step of the process was getting an initial response. Only one in five companies expressed interest upon receiving my resume. It's hard to know whether my resume was rejected by a human, AI, or because the company was in a hiring freeze. Many companies never responded.
From there, I had much more success. I had a >50% pass-through rate for each remaining stage of the interview process. This means that for any given application, I had a 3.3% chance of receiving an offer.
To collect this data, I categorized the stages of the interview process:
- Applied — Submitted my resume.
- Recruiter — Either someone from HR or a hiring manager reached out to schedule a 30-minute phone screen.
- Phone interview — A one-hour technical phone interview and/or a take-home online assessment.
- Onsite — A 2-6-hour set of technical, design, and culture-fit interviews. Since I interviewed during COVID-19, these interviews were done virtually.
- Offer — I passed!
It surprised me that my pass-through rate was constant throughout the later stages. I expected each round of interviews to be harder than the last. This was usually not the case. With a few exceptions, the difficulty of the interview did not increase between the phone interview and the on-site interview. I think the goal of the on-site was to make sure the phone interview was not an anomaly.
Lessons Learned
1. Practice, practice, practice
The most important part of my job search was the time I spent practicing for the technical interviews. I eclipsed 100 hours of practice. According to an interviewing.io survey, this amount of preparation is common.
To be good at interviewing, you need to be good at solving technical questions. You need a basic understanding of data structures and algorithms and lots of practice problems. I thought Algo Monster was the best resource to learn the algorithms and LeetCode was the best place to find practice problems.
The other aspect of interviewing is being comfortable with the interview format. An interview is more performance than programming. In an interview, you must talk through your code as you write it, which does not come naturally to most engineers. The best thing I did to prepare was to create a study group. I highly recommend reaching out to engineer friends and creating your own group.
Like many performances, you should do a low-stakes practice run before the big show. People don't go from singing in the shower to performing at the Apollo. They often start with a couple of open mic nights. If you practice interviewing with your peers, then the performance aspect of interviewing will become second nature. If you cannot find people to practice with, there are online resources that provide mock interviews, such as interviewing.io.
2. Don't get discouraged
I know you already know this. I knew this during my job search, but I still ended up discouraged in the middle of September. Remember that companies are much more concerned about false positives (bad candidates who receive offers) than false negatives (good candidates who get rejected). You will get rejected for jobs that you are perfect for. Their loss. Keep on applying and interviewing.
3. Apply to many opportunities
Since you are going to be rejected for positions that you deserve, you need to cast a wide net. This isn't a bad thing. Job descriptions aren't perfect. You may find out that a role is more interesting than you originally thought. You may also find out that your preferred job is less exciting than its description.
The other reason to apply to many opportunities is for practice. Early on, you want some interviews that you do not mind bombing. This will help you to prepare for the companies that excite you. I also ran into a situation where I needed a practice company at the end of my interview process. I had a two-week period without any technical interviews. I had become a little rusty, so I used one company to warm up for a different interview.
4. Plan when to apply to large companies
One advantage of large companies is that they have a well-defined recruiting process. They have so many applicants going through the system that it is easy to know how long the process will take. The downside is that the number of candidates interviewing makes the process less flexible.
For example, if you have an expiring offer and need to expedite the process, this will be much harder at a large company. Small companies are more flexible about expediting the process or extending deadlines.
I ran into a situation where I applied to a FAANG (Facebook, Amazon, Apple, Netflix, Google) company late in the process and had to ask to expedite the interviews. They did as much as they could, but it still took a month. You should expect the interview process for FAANG companies to take 4-6 weeks. A good time to apply would be 2-3 weeks before you expect to get your first offer.
5. Use your contacts
Look through LinkedIn to see if you know anyone at the company. I will admit that I am not great at doing this. It can be uncomfortable to ask for a favor, but it pays off.
During my job search, I reached out to everyone from close friends to friends of friends. No one refused to help me. The biggest benefit of the referral is that you get noticed more often. 57% (4/7) of my referrals resulted in a call from a recruiter. This is a big improvement from the 18% callback without a referral. I even had a friend of a friend follow up with HR multiple times to check on the status of my application. I'm sure HR would have forgotten about my application, but I ended up with an interview.
I imagine referrals had less of an impact on the later stages of the process. But if they only improved the odds at the first stage, my chances of getting an offer from any given application still jumped from 3% to 10%. In actuality, I saw an offer rate of 28% (2/7) from referrals.
If you feel uncomfortable asking for a referral, remember that most companies have a generous referral policy. Therefore, you are helping an acquaintance get a nice bonus and they are helping you get a job. You both win.
Conclusion
Since each job search is unique, I expect my experience will differ from yours. No matter who you are, the process will be challenging. I struggled at points along the way, but I ended up with a new job.
I hope the information and tips I have provided help you along your journey. Happy hunting!
Source: https://betterprogramming.pub/what-i-learned-on-my-way-to-a-google-offer-d98a0b8db3e1
0 Response to "How Long Do You Have to Wait to Apply at Google Again"
Post a Comment