Around Dec 2018 - I got call from an unknown number.
It was from Google’s recruiter!
I was having a great time back then at home during vacations. Had two full time job offers in hand, but the opportunity of working at Google — my dream company seemed very exciting. I resumed coding after a gap of 4–5 months again.
Started with LC Hard questions. I got 2 weeks to prepare for interview & used to take 3–4 hours for just one LC Hard. Could only do 3–4 such questions before interview.
So the interview day came. I got a medium-hard implementation problem.
Since I had stopped coding few months ago, it took me a while to get comfortable (that too when you are expected to write indented code in Google docs!)
I messed it up due to my bad implementation & time management skills.
Needless to say, it was clear reject. Assuming, since the recruiter never replied :)
I was waiting at the airport for my early morning flight. An email popped up saying -
Enough to give anyone butterflies in stomach. That mail made my day! I knew it was the time when I should start preparing seriously, because it is Google.
I can’t miss it again!
So I had a conversation with the recruiter and the interview was scheduled 2 months later. She gave me feedback about my last phone interview — I had to increase my coding speed. I needed enough time to prepare, which I couldn’t get earlier.
My preparation was going well but things happen, and I was not in a good state due to some issues. I needed to switch faster, and so I preponed my interview — a really stupid mistake to do specially when you are unwell.
I was asked a tricky string + implementation problem. This was available on leetcode, which I checked later on.
I got nervous and froze during the interview. My mind had stopped working. I was writing code but I didn’t exactly know what was I even doing.
It was a clearer reject than last year’s interview rejection.
It was painful. But this time, it happened on call and I was given proper feedback. The recruiter was really amazing :)
Hello From Google - Again in 2021 :)
One year later around March 2021, another recruiter approached. This time, the mail made me a little anxious.
“Cracking Google is not my cup of tea” — that’s what I thought.
Since I never actually focused on why did it happen — I just didn’t prepare well enough.
So I talked to the recruiter. I asked her to give me lots of time to prepare, but she wanted me to give all the interviews by March ‘21 or April ‘21.
I was excited but I told her since it has just been 9 months at my current company Zynga, it would be difficult to switch (an excuse I was making so that I don’t hurt myself through the process of interviewing and getting rejected by my dream company for the third time).
She replied-
“If you change your mind in next 4–5 days, message me back again.”
I told a friend about it. He was approached by some recruiter too and was giving the interviews. He encouraged me to give the interviews too.
“What’s the worst thing that could happen? I might get rejected. Already have another job, so why do I care?”
And with lots of things still going on in my mind —
“If I say yes, I will have to start preparing, doing Leetcode problems once again. I don’t want to go through the exhausting process of interview preparation again. What should I do?”
Nevertheless, I mailed her.
Next day we synced up and I agreed that I can prepare for the interviews in the next 3 to 4 weeks.
And so, the phone interview was scheduled!
Phone Interview
It was a bad day. Some issue came up at work about which no one had any idea about. I was really frustrated, but then again - I had a phone interview round with Google today.
I joined the interview and saw the interviewer sitting there with a smiling face. We quickly started — it was a graph related question.
We discussed the approach & started coding it. Few edge cases were pointed out which I fixed in no time.
Had a really friendly chat with him about Google at the end of interview. In spite of having a bad day, the interview made me happy ! :)
Later on I thought about the problem — It could have been better optimized using dynamic programming, I guess. I thought it might go either way.
So I resumed my work and was not expecting any mail from Google. On the next weekend, a mail popped up saying-
“Your phone-interview feedback is positive. We’ll be scheduling the onsite rounds!”
Damn. How did it happen?
“I am going to the on-sites. Yay!!!”
That was itself an achievement for me — considering previous year’s rejections.
I needed a lot more time. 20 days aren’t enough for preparing, I thought.
First Google On-site
Recruiter reached out to me a week later asking for the dates. We agreed upon having on-sites in mid of April since it couldn’t be delayed further.
I thought of having a strategy — doing lots of hard LC Mediums and few LC Hard problems. And if possible, few topcoder or codeforces problems.
I started leetcoding again but got really anxious while doing Google tagged problems. Few of the google tagged LC hards took lots of time without any hint. What if I fail miserably?
There were some areas I thought I hadn’t prepared enough for. It had been more than 10 months now since I left coding and interview preparation. Everything was blurry.
And my first onsite interview with Google is in 15 days. Why didn’t I prepare before the phone interview itself? Lots of things were going in my mind.
I blamed my friend for “tricking” me into the interview since it was tough situation for me — I thought I’d be kicked out in the phone interview itself and that’s why I didn’t prepare hard enough.
But now that I’ve on-sites before me, I have to do my best.
So I took 2 days off from work. It was already a week full of holidays plus 2 days off would mean whole week off. That’s the time I started preparing.
Random practise sessions
Next week, some new responsibilities were given to me. There was no chance I could take any more leaves. I had to pause my preparation at that point. Even if I worked really hard, all I had left was one week.
I had to rely on luck & last year’s interview preparation at that point.
On-site rounds
While preparing for my onsite interviews, I was in the midst of a major release at my job. After the release was successfully completed, I decided to take a week off to ensure I approached the interviews with a fresh and focused mindset.
My determination to join Google was so intense that I was even willing to put my promotion at risk. However, in hindsight, I realize that this may not have been the best approach.
So, the day came. Onsite round one!
I was really nervous. And then, the interviewer pasted the problem.
It was a bizarre problem. Just by looking at the problem I could tell I was going to fail this round miserably.
"Why did I say yes to the onsite rounds? I am never going to make it. Interviewer might think I am really dumb.."
A problem which was really difficult for me. Had never seen a problem like this one. How do I approach? I got really really nervous. It was my first G-onsite.
I gave a brute-force approach as usual - but wasn't able to think of anything other than that.
I decided to ask for a hint.
Interviewer asked me to solve a different problem first and use the solution of that problem to solve the main problem. This new problem was related to monotonic stack.
Picked up a hint, and was able to provide solution for the main problem and code optimally using dynamic programming and monotonic stack. We went a bit over the time.
After the interview, I googled the problem.
It was a Codeforces D problem.
Why would you do that. It should be punishable to ask a Codeforces D problem in an interview which lasts for 45 minutes.
No way!
I was kind of surprised but a bit proud of myself at the same time. During the Codeforces contests, it’s usually quite hard to solve a D problem.
That itself, was an achievement for me!
I still wasn’t satisfied. I thought I got really nervous while explaining my approach and used a hint — which means my feedback might be impacted.
My recruiter called me in the evening and asked me how the interview went. I told that it didn’t went as well as I wanted it to go.
He seemed surprised and told me that the feedback is good - the only point which needed a bit improvement was communication.
I was happy!
Onsite Round Two
Got the basic solution just by looking at the problem. It involved — graph traversal. Damn, this round went really well — did it without any hints!
After the interview, the excitement was at its peak.
“I am going to clear the google interview!”
My lost confidence was restored again :)
The pressure and excitement, both were at peak by this point.
Excitement — that two of my interviews went well.
Pressure — have to nail the third round as well because now I am really close. And I can’t lose it. Not again.
So, Onsite Round three begins!
My interviewer was a senior level manager — and I panicked again. Usually higher level people with whom I interviewed with previously at other companies had been extremely strict — with code being modular, overall code quality, speed and stuffs like that.
Even if you make a minor mistake, it’s high probability that you may get rejected. And this was going to be true in today’s case too.
So he started describing the problem, and it turned out to be my worst nightmare — a problem which seemed mixture of hard implementation & constructive algorithms. It’s either a hit or a miss if you get ad-hoc problem — you either get it or you don’t.
I thought about it and discussed my approach.
It wasn’t optimal.
I tried various different approaches but my interviewer was always up with counter examples. I fumbled during this interview. He gave me some hint at the end. I picked it up and got the solution.
But, it was too late. No time left to code :)
And the interview ended 2 minutes before. I wished I was given more time.
I was pretty sure, this was going to be a “No Hire”. All my dreams shattered again. Damn, it wasn’t that hard question. Why couldn’t I think of it during the interview.
And worse, I found a similar but harder version of the same problem on leetcode. Why didn’t I do it earlier? I cursed myself.
It was a tough day.
What next?
One good interview. One great interview. One bad interview. Clear rejection.
My recruiter called me two days later. I picked it up — was ready for rejection. He asked me how my interviews went and I told him — two good, one bad.
He laughed, since it was exactly what the feedback was.
He told me that they would take one more technical round — just to be sure since one of my interviews had not-so-good feedback.
The best thing about interviewing at Google is that you are given chances, it's not like if you do bad in one round you get rejected.
Now, Googleyness round was scheduled.
Googleyness Round
I started looking for questions which are usually asked in the Googleyness round. Made list of challenges I faced and conflicts at work. Had good examples of those.
None of those were asked in the Googleyness round.
Infact, I was underestimating this round. Very tough hypothetical situation based questions were asked — but luckily, I had faced similar situations at work in both the companies I had worked for, so I answered according to my experience.
After the round, I replayed the interview many times in my head and thought how better I could have answered each question. I had many other experiences at work related to the questions asked — which I had forgotten during interview.
No matter how well a round goes, when you get ample amount of time to think about the questions asked — you always have the better answers.
And then 2 hours later, the last technical round was scheduled.
Just one day before the interview, my recruiter called me to wish me all the best!
He assured me that I had done good till now, and there’s nothing to be nervous about. (One of the many reasons I crave for job at Google so much is that everyone is genuinely nice there!)
The Last Technical Round - Or not?
Day started off late. The interview was in the evening so I tried my best not to exhaust myself. All day my sister kept on reminding me about the interview and wishing me all the best.
As if the pressure was not already high since the recruiter’s call before!
Pressure was really high. I had to do really really well in this one particular technical round to get selected. And I was really close. What if I don’t get the opportunity next year? What if I don’t even clear the phone interview next year?
Stakes were really high. I had to do everything to clear this one with flying colors.
Just an hour before the interview, I got anxious. What if interviewer asks a Seg-Tree problem? Thought about all the worst possible things interviewer could’ve asked.
But then, there’s no option left. I have to give the interview — and not care about whatever happens, atleast not right now.
Practise sessions
Somehow I accepted the fact that — No matter how many questions I solve, I can never be prepared enough for a Google interview :)
7th May 2021
Interviewer joins and asks me a medium level implementation + data structures + binary search problem and different ways of solving it. Time complexity of each of the solution. I gave around 3 different ways of solving the problem. Which solution would be better in which case. Lots of edge cases discussed. It was good interview.
Finished 10 minutes earlier. Had a feeling that I nailed it!
Post Onsite Documents
My recruiter asked me to send list of documents including - my updated resume, latest transcripts, address, competing offer letter (if any) and a list of achievements, internal referrals so that my packet can be sent to the hiring committee.
He told me not to worry since I had done good till now and he was very hopeful that the decision would be positive!
The Hiring Committee Decision
After one week, my recruiter called me back. I knew it was about results and was very nervous.
Two. More. Additional. Rounds.
I knew deep down this was going to happen because of the third round. It was a “no hire”. There was one more thing - my phone interview and one onsite round problem were from similar topics - graphs + dp.
Therefore, two additional rounds were asked by HC.
But the process had been going for so long that I was really frustrated at this point.
I researched about additional rounds for the next few days on Blind and Quora.
It’s going to be tough to clear these - success rate is very low in these rounds, and I could only hope not to be in this situation again!
The rounds were scheduled the very next week. By this time I was super exhausted and could feel the offer slipping out of my hands.
Nevertheless, I gave the interviews.
Additional round one
The moment I read the problem, I knew it was backtracking + dynamic programming + combinatorics problem. I told my interviewer the same but I don’t know why - maybe because of the nervousness and exhaustion of giving so many rounds before, I couldn’t write the appropriate code.
With dynamic programming, usually I start with recursive brute force and try to optimize it. I told my interviewer the same but for some reason I was shaky and my mind started going blank.
Within 35 minutes, the interview was over.
I had completely bombed a medium-hard dp round.
Additional round two
I hadn’t recovered from my last round failure and this round was just after that. My interview was with an experienced engineer and he asked me about the most challenging project I worked upon.
I told him about the most recent project I worked upon. It was a bad choice of project — I felt I should’ve picked up a more impactful and technically challenging project. My interviewer just noded and pasted a problem.
I read the question. It was a weird question. I thought it could be solved using quad tree like approach — and mentioned the same. I told my interviewer that this is the most optimal approach I can think of.
My interviewer wasn’t responding much. I asked many questions but wasn’t getting answers — only after asking multiple times I got — “You can assume anything.”
I felt my interviewer was quite unresponsive, and it was a done deal. Nevertheless, I wrote the code — which I wasn’t confident about.
Usually in my past onsite experiences, we have a discussion about the problem, we arrive at the most optimal solution and then, I start coding it.
Here — I didn’t know if I was doing right or wrong. I couldn’t get any signal from interviewer.
The interview ended 10 minutes earlier. I was very disappointed by the interviewer’s unresponsiveness.
The Final Verdict - After 7 insane technical rounds!
When I thought about it later, I realized that it might be because the project I choose to explain about wasn’t a good one. And my interviewer might already have made the decision in his mind.
I got call from my recruiter where he mentioned that even if you explain how you are going to solve a problem, you have to code it.
So in the first additional round I wasn’t able to come up with proper code even when I had the right idea, and in second interview my implementation had edge-case handling issues even though the solution was right.
So, they won’t be moving forward since feedback was overall negative in additional rounds.
And the cool-down period would be of 9 months for interviewing with Google again.
I sighed.
One year later
I got message from a recruiter on LinkedIn by the mid of October 2022.
It was about career opportunity at Google.
Although I was disheartened with what had happened last year, I was already looking for a new job (as always) and the opportunity seemed quite exciting to me.
It was for L4 SWE position .
Recruiter scheduled an initial screening round — they asked about my experiences, job switches and other stuff. After the call, my recruiter asked me to send my updated resume with clear descriptions of the work I did. I sent her the resume.
She then asked me for the dates to schedule the telephonic round. Since I haven’t been practising for last year, I asked her for some time to prepare.
I could only get 25 days, and so I started leetcoding.
Since I had given Google interviews last year, I had proper idea about the topics they usually ask from and my focus area for the next 3 weeks.
I knew that telephonic would mostly focus on my implementation skills, or it would be a good strings related question.
For the on-sites, I was expecting medium-hard level graphs question or a good dynamic programming question or a hard implementation problem.
Prep Strategy
Now since I had very less time in hand, I decided to practice 2–3 questions from each topic — data structures, graphs, strings etc.
Practising dp would require a lot of time so I decided to leave it (bad idea) since it’s always a hit or miss for me. I either see it, get the recursive formula or I just don’t.
I also knew that I haven’t practised many problems related to binary search — but since I wasn’t asked a hard binary search problem last year so I decided to skip that topic (again, a bad idea).
During the last week, I started doing mock google on-site assessments on leetcode to calculate the total time I was taking for implementing three good problems with accuracy.
It really helped me with the speed - which is very important for G interviews.
Phone Interview
The phone interview was scheduled in first week of November. My interviewer was from Google Meets team and was doing some cool stuff in his team.
He asked about my experience a little bit which involved video chat integration in the game. Then he pasted a question.
So it was a strings + implementation + brute force + data structures based question. I started with a basic approach and then talked about improving it using data structures. I could also see that we can improve the solution using Trie.
Discussed two-three approaches, time complexity for each approach and trade-offs between them. The interviewer finally asked me to use the brute force approach and then gradually improve it.
I coded my solution and then discussed the Trie approach and time complexity for the most optimal solution using the same.
It went well according to me, but I felt that I should’ve coded the most optimal approach too — only that the interviewer didn’t ask me to.
So it could again go both the ways.
Next day my recruiter messaged me and congratulated on clearing the phone interview.
I was relieved but I knew what comes next — the onsite rounds!
On-sites - Again!
I asked for some time to prepare but the recruiter said that since I’ve already taken 20–25 days, they need to schedule the on-sites asap. I knew I wasn’t fully prepared but said yes.
What’s the worse that could happen? I’d already been rejected by Google so many times that it didn’t matter anymore.
I wasn’t very nervous this time and had stopped giving so much importance to the interviews.
The only way to crack a company is to stop putting it on a pedestal — and avoid getting super nervous in interviews. I decided to just give it and not worry about the results.
Random practise sessions on codeforces
So, it was Onsite round one.
The interviewer pasted a question which was very similar to a LC Hard implementation problem I hadn’t seen in very long time.
I gathered the requirements, discussed the edge cases and started implementing.
I would be lying if I say I wasn’t nervous.
After implementing I started dry running few cases and found out that for some cases, it won’t work. I did some modifications to my code.
I felt that I took a bit more time than expected, and didn’t write the correct code in one go. Only after taking more cases, I kept on modifying the code.
Next, the interviewer added a follow up.
I tried to find a solution but it seemed hard to me and I originally thought it would be solved by dynamic programming.
My interviewer gave me hints and kept on nudging me in the right direction — we have to maximize or minimize a particular value.
It was a modified binary search problem.
We had just few minutes left, and I discussed my solution but was already given a hint and there was no time left to code the follow-up.
I knew that it went moderate — not very good but not bad either. I felt I could’ve done much better in this round - I had solved similar modified binary search problems on codeforces few years back.
My recruiter called me in the evening to discuss the feedback and said while I have scored good in some areas - asking clarification question and covering edge cases, some areas are weak and thus the interview feedback was borderline.
This was because I couldn’t code the follow up - no time left!
I knew I would need to prepare harder and do much better in next rounds since the interview needs to be almost perfect to get L4. (Strong Hire in most of the rounds)
Onsite Round 2.
Interviewer gave a question which initially seemed to me like a normal medium level implementation question.
I discussed my approach and coded it quickly.
Now, he started adding constraints and asked me to modify the code accordingly to optimize the time complexity. He kept on adding more constraints and I kept on discussing my approach for solving it in more efficient manner.
It eventually boiled down to a recursive problem.
I was explaining each and every change while coding - if I was adding a minor change, considering a new test case, dry running my solution.
I had practised this before while solving the problems. It’s very important for an interview. Talk while you code.
I felt that the round went quite well. My recruiter messaged me on LinkedIn that I cleared the round and feedback is very positive.
It really boosted my confidence and I was ready for the last round!
Onsite Round 3
Interviewer went through my resume and asked some questions related to my backend experience. He then pasted a question. It seemed like a data structure and implementation based problem to me.
I initially thought it can be solved using X data structure and immediately mentioned the same. On going through the problem again, I felt it won’t be the most optimal. Rather, Y can be used.
My interviewer grilled me on why X wouldn’t work and Y would.
After that, I discussed my approach and soon started coding it.
My interviewer in this round was asking lots of questions regarding my choice of the data structure, internals of how the STL which I used is internally implemented in C++, time complexities and how other data structure might not work.
We had a really good discussion revolving around it and then another follow up question.
I felt like I had conveyed my approach in a good way and it went well. Overall, I was quite hopeful to get an offer after this round.
My recruiter called me just after the round and was happy that I cleared the round.
Googleyness round
Next, was going to be the Googleyness round.
I went through Jeff’s video on Youtube and prepared some work related answers for this round.
It’s a straightforward behavioral round and the usual advice is — don’t be a jerk.
It’s quite easy round to clear this round - you just need to communicate how well do you work in a team, how you handle conflicts, how you work and the decisions you make.
After this round, I got e-mail from recruiter to submit additional info. I knew my packet is going to hiring committee. Fingers crossed!
I talked to my recruiter and asked her if there will be additional rounds — since my feedback for round one was borderline.
I asked her upfront what chances do I have - since my last year experience had not been great with the additional rounds.
She felt that I had good chances to clear HC for L4 and I won’t have any additional rounds. That made me really happy — no more rounds and and an L4 offer finally!
But deep down I knew anything could happen.
Google HC is quite strict and usually has a very high bar. And I was in no mood to give additional rounds this time since it is very frustrating and tough to clear!
Hiring Committee Verdict
Recruiter called me on Tuesday asking for details about the projects which I worked upon. This would be helpful in team matching.
She told me that I’ll be getting an offer in 2–3 weeks after all the approvals — compensation committee, svp approval etc.
My recruiter informed me half an hour before that my packet is going to HC and she’s hoping everything will go fine.
I waited for few hours.
My recruiter came back with the hiring committee decision.
“It’s on hold since the first interview had borderline feedback, we need one more round to replace that.”
Ah. This hurts!
I had so much hope this time. And everything would solely depend on just this round. Either I make it or break it.
Why Google Why. I literally felt like HC dislikes me for some reason.
But I had no other option. I knew it could go either way and I have to be okay with it. I was totally prepared for a rejection and was low on confidence.
By this time, I had totally given up.
The Last Onsite Round - Hopefully!
So, came the Onsite Round 5th. The additional round.
It seemed to me like a familiar problem — related to knapsack dynamic programming. I was quite out of touch but discussed my approach.
I was quite nervous since my laptop had few issues related to audio and my interviewer was having bit trouble hearing me initially.
I coded the solution. We discussed few cases and then I modified my solution and code. I wrote a recursive solution first, and then memoized it.
Overall, I felt that I did a good job explaining my solution and interviewer was happy with the approach. But I certainly missed an edge case and my implementation could’ve been better.
Additional rounds have to be a “Strong Hire” in order to get the appropriate level, and this was not going to be the case today. I felt it might again be a borderline, and that might cause a rejection.
I thought I lost the opportunity of working at Google. Again.
My recruiter called me next day asking how it went, and I told her it didn’t go as well as I had expected. I had the right solution in my mind but not exactly sure if my code was perfect.
She said she’ll go through my feedback and call me back.
Rejection or a Down-Level?
After one week, my recruiter came and said that there’s a 20% chance that I’ll be down-levelled to L3 (internal SDE1) and asked for my transcripts.
She didn’t tell me what exactly the feedback for the last round was.
I was a bit confused now, since it meant that there’s still 80% chance that I can get L4! This meant that I didn’t bomb the last round.
Google HC looks for strong signals in atleast few of the interviews which means a packet with SH, LNH, H, LH is considered better than LH, LH, LH, LH. Had read this somewhere.
There are overall 6 ratings in Google Interviews -
SH - Strong Hire, H - Hire, LH - Lean Hire LNH - Lean No Hire NH - No Hire SNH - Strong No Hire
Now that I think about it, two of my on-site interviews had gone very well. Phone interview had gone well too (HC considers the entire packet to make a decision).
So there still was the possibility of getting a hire call - the one borderline on-site interview which was replaced later on - may not have much impact.
I had lost all hope by this time - specially due to my 2021 onsite experience and told my family that I was not going to get the offer.
I told my recruiter I didn’t have the perfect grades so not sure if it would be a good idea to give transcripts.
Nevertheless, I sent it to her. I thought it is going to be a hiring committee reject anyways, so doesn’t matter.
Around 24th December ‘22, I received a phone call from my recruiter.
I was prepared for rejection.
She told me that my profile is approved for L3.
I asked her again.
“Is it approved?” I asked again.
“Yes! But it’s a down-level.” she didn’t sound very happy.
I sighed. Finally!
Atleast it is not a rejection which I was expecting. My mom and dad were there with me when I received the phone call and they were elated by the news!
My recruiter conveyed it to me that since it is a down-level, my compensation wouldn’t be that of L4. She asked my expectations and told me she’ll get back to me soon.
I was super happy after the call.
Expecting a clear rejection and then getting an offer — I was happy that I finally made it!
I knew taking L3 would be accepting a down-level offer and might take quite some time to be promoted to L4.
But I felt I had been quite unstable in last few years, took some job hop decisions which I am not proud of and this could be a good opportunity.
With all that’s going on, Google would be my best bet.
And so, I decided to take it.
Team matching phase - Jan 2023
Since I was initially being considered for L4 role, a hiring manager was interested in my profile before HC made the decision.
Since they wanted the candidate to be at a senior level, my recruiter had to put my profile back in team matching again - this time for L3.
I was pretty sure that I'd get a team in 2-3 weeks. After 2 weeks, I sent a mail to my recruiter.
She told me that she had sent my profile to all the hiring managers and is trying her best. But she's not able to get response from any of the hiring managers.
From what I had heard - it is very much possible to get rejection if none of the team is interested in hiring you after HC decision.
After a month, I decided to go with another offer I had at that time which was based out of India.
Hiring freeze at Google - Feb 2023
My recruiter called me during first week of February 2023, and told me that there's complete hiring freeze in Google.
Shortly after her call, I came to know that Google is laying off employees.
I knew I had missed my chance.
Few Months Later - June 2023
Fast forward to June 2023, I messaged my recruiter again asking if the positions are up. Reason being, I was returning to India and was actively looking out for a job.
She replied - "Yes!"
She called me the same day. I asked her if we can start the team matching again.
"You will have to give the entire loop again - for L4. Last time it was a down-level. You can take one month to prepare and give your best."
"But HC decision is valid for one year - my feedback should be valid right?" I asked.
"Since there was a complete hiring freeze, I had closed your last application" she replied.
I was anxious at this point of time since I needed a new job asap.
Should I re-interview for L4?
Giving all the rounds again didn't sound like a good idea to me. I knew my compensation would almost double if I somehow clear L4. But in my experience -Google interviews, or any interview is very much luck based.
What if I get too hard questions this time and won't even get L3? No matter how good you are, this is very much possible.
I was actively looking out - and got approved for L3 by HC already. Even in case I want L4, I didn't want to give more than 2 additional interviews.
But now my recruiter says I'll have to go through the entire process - again!
I started applying to other companies. After a month, I messaged her again. I wasn't getting a quick response since hiring wasn’t going aggressively at that point.
2 months later, she reached out to me again and told me that she is trying to reopen my application which was earlier approved for L3.
But, the compensation would be low.
I was okay with that. It had already been 2 months since my job hunt had started.
Team Matching Begins
My recruiter matched me with a team hiring for SWE-SRE position and told me that only 10% would be ops work. I was fine with it initially - I would be working as SWE in SRE team.
Google SRE is quite respected role - from what I had heard. Plus, the work involved some low-level C++ stuff which was interesting to me. Lots of learning involved in the SWE-SRE role.
Recruiter called me back after a week. Since it was a mixed role, the hiring manager of the team wanted me to give one extra system design round - NALSD (Non Abstract Large Scale System Design) round.
One. More. Round. And that too for L3 itself!
This was something which I wasn't expecting.
It's not like a normal system design round - it's very domain specific, if you don't have any experience in SRE related stuff - you're gonna bomb this round pretty bad.
The famous Google SRE book
I gave it a thought and took advice from my sister.
She asked me not to give any more additional rounds since I already had given 2 full loops in the last two years, along with a few additional ones.
And then, I refused.
SRE Round - cancelled
My reasoning was simple - I had no experience in SRE related stuff. And giving a 45 minute interview where I’m quite likely to fail - would waste both my time and the interviewer's time.
I made it very clear that I am interested in the SWE role only.
My feedback and HC validation would soon expire since it’s only valid till one year.
I was getting anxious with each passing second - I wasn’t working since last few months.
Re-interview for L4 SWE or accept L3 SWE?
If I wait for my L3 approval to expire and re-interview for L4, I'd have to wait till December 2023 - since HC decision is valid till one year.
In the worst case - promotion would take 2 years and I would be L4 after 6 years of experience. I felt it is much better than interviewing for L5 at 6 years and then being downlevelled to L4 (Assuming L5 interviews are extremely hard to clear).
And it will take 7-8 months more to get in. That too if everything goes perfect.
I was losing all the hope of getting an offer from Google at this point in time. My sister kept on pushing me to make some effort and get help from the people already working there.
I took her advice.
Soon, I messaged few of the hiring managers working at Google on LinkedIn - in a hope to get a team match.
I messaged few of my seniors in college asking if they can help me with the team match. One of my seniors helped me and was very quick with her replies.
It gave me some hope!
New Recruiter In-Mail
Meanwhile, another Google recruiter reached out to me on LinkedIn.
I decided to move ahead with a new recruiter since I wasn't moving ahead in the direction I wanted to with the old one.
As soon as I got a new recruiter, a team fit call for SWE L3 role was scheduled.
The call went well. The only thing was - I was a bit more inclined towards doing low level stuff in C++ (call me crazy, but yes) and this particular team required Java.
Meanwhile I interviewed with another company which was a mature startup based in Singapore. I was pretty sure that their compensation would be more than what Google might give.
Should I take it - or try other companies?
I was in dilemma for sometime and wasn’t sure what to do. I had reached till the offer stage with the startup which was offering me SSE position - with a possibility of getting a good salary too. I really liked their interview questions and overall process.
My G recruiter told me that in case I didn’t like the work in my team, I can switch internally within one year.
By that time, my family was also pushing me to accept it since it’s Google.
They didn’t want me to work for a startup again since my experience hasn’t been great there (job instability, work life balance, overall work culture).
Team Match - Finally!
I got call from my recruiter. The team match was successful!
I gave it some thought. I had been quite unstable for some time. And during some of the recruiter calls I felt that a lot of weightage was given to the big company names on my resume in order to shortlist me.
I got calls from some really cool gaming companies (LILA games, SYBO) just because of Zynga on my resume!
Even when I clearly worked on better projects in some of the startups I worked at, they cared more about my work experience in the big companies.
This was a harsh truth. Brand matters. A lot more than I thought.
Google will definitely open more doors for me in future. And it might provide me some stability.
So I decided to accept the offer!
Compensation Approval
After the team match was successful, my recruiter asked my compensation expectations. This was where I knew L3 was going to hurt the most since they can’t pay more than a specific amount at that level.
I was expecting a good base salary - atleast equivalent to the last salary I got in the company I worked in India.
I couldn’t use my last salary to negotiate since it was in Dirhams and that compensation wasn’t being considered by Google India.
Recruiter came back with the numbers after discussion with the compensation committee. The total compensation exceeded my expectations.
I immediately accepted.
25th August 2023 - I received the offer letter finally!
Best way to prepare
In my experience interviewing at Google all these years, the main topics to focus were strings, dynamic programming and implementation. Graph problems are also very common in on-sites specifically.
Phone interview is very likely to be some medium-hard implementation or string based problem - and you are only judged on basic stuff like being able to write good quality bug-free implementation of the problem with a follow up requiring some optimization.
You might not always need to code the most optimal approach in the phone interview round - but the code has to be accurate and cover all the edge cases.
Best thing about Google interviews which I felt is quite different from other companies is that they focus a lot on your thought process.
You might write the whole code - but if you do not communicate - be ready for rejection. If you are not able to write the most optimal code fully, but your thought process is good then also your feedback might be good.
The first hurdle is clearing the Phone Interview. It's a single point of failure. You can get a hard question and fail miserably. This is entirely luck-based in my opinion - it has nothing to do with your preparation.
Second and the hardest one to clear is the Hiring Committee. They'll evaluate based upon - your code quality, interviewer's feedback, communication skills etc. They read the entire detailed feedback of the interviewer - not only the ratings they provide.
They can outright reject even if you have "Hire". Or even approve you with "Lean Hire". HC can be quite unpredictable.
If they feel they lack data points or need more signals to make a decision, they'll give you additional rounds - which happened twice in my case. Prepare well enough so that it doesn’t come down to additional rounds - they are usually hard to ace.
Third hurdle is Team Matching phase. You might be HC approved, but if no hiring manager is willing to hire you, all that may go in waste and you won’t get an offer. My advice is not being too picky - unless you have another offer in hand.
Dynamic programming is also something Google is obsessed with. In 2021, I had around 3 rounds where dp was asked. In 2022, dp was asked in additional rounds again.
I feel anyone with a good grasp over strings and dp can perform well in G interviews.
The only regret I have is not spending more time solving challenging coding problems when I was in college. It’s quite hard to take time out from work and prepare for the interviews.
One weird thing about Google interviews is the variance between each rounds. In some rounds you would be like - "Oh, that looks easy!" and be done in 15-20 minutes.
While in some rounds, you would think - "Why would you ask this question in a 45 minute interview - it's just too much!"
This might be the case when you get some hard DP/implementation/mathematical/ad-hoc problem. There would be atleast one round where you encounter such hard problem.
And yes, luck matters. A lot more than you think.