Quest for domain change (after 15 years of experience) ended with an offer from Google
Anonymous User
1302

Note1: This post is a thank you note for leetcode community, which enabled me to change my career path and also to remind you that it is never too late to do anything.
Note2: I am not going to mention any of the exact question as I am allowed to do so. Also, it don’t matter what the questions are, as long as you are good on the basics. It is better to go without any exectations on what questions you will be asked.
Note 3: Pardon my English. It is long time since I wrote anything but code.

I am a software professional with 15 years of experience and have worked mostly in C language in data-center networking domain working on switch/router software. Around 2 years back, I felt I can't take this no more. I was fed up with knowing only C language and working on various ASICs. I had completely lost motivation to work in that domain. I felt like being pigeon holed in this one domain. I felt a serious urge to move to application side. With only C language in my arsenal, with no experience in any of the modern cloud or server side technologies, it seemed nearly impossible. But still, I decided to give it a try.

Given that I lacked proper domain knowledge for the move, I decided to try companies which follow Google type of interview pattern. Prepare myself for some DS & A, some system design and some leadership/behavioral rounds. Main issue at that point was, I can’t do DS & A in C. C language lacked proper libraries for even completing simple leetcode questions. So, I learnt C++. But afterwards, I felt that C++ is too cumbersome to solve leetcode problems. Too many angular brackets. Too much code to write (May be I lacked proper knowledge to write dense code). I then moved to python and loved it.

Reading about FAANG interview experiences online led me to leetcode. There were other websites that I tried, but I loved leetcode the most, and sticked with it everafter. In the companies in my domain, the interview will mostly contain only linked-lists and some BSTs. Most of the rounds will be on domain knowledge. But now, I had to learn Graphs, DP and more. I was in fact hearing DP for the first time at that point. The initial learning of all the basic DS & A along with learning C++ and then Python and then finally solving some basic questions on leetcode took more than an year for me. I also took some time to learn about system design, going through some blogs and YouTube videos. Then I decided to start applying to companies and see whether they will select me for interview.
Being in this networking domain for long years, I lacked any good friends who could refer me to any of the top companies. So I started connecting to recruiters on LinkedIn. Even there, the response was cold. So finally I started applying directly in company career websites. I applied in Microsoft (they never got back), Amazon(Got interview call yesterday, but decided not to go) and Google. A recruiter from Google responded after a month asking for a video call to know more about me. The recruiter was very nice and was genuinely interested in gauging me. Somehow I was able to convince him that I am capable working at Google. Given that I lacked back ground he suggested me to take the telephonic interview after a month.

In that one month, I prepared using leetcode and reached around 200 questions marks. Since telephonic interview uses a shared document, I din’t expect any hard problems as it will be difficult for interviewer to write examples for explaining hard questions. The question was kind of straight-forward, like doing a DFS traversal in a matrix, with some twists and I was able to do it. I was under the impression that all the questions will have a brute force method of doing it, after which I have to optimize it. But this question had only a single way of solving it. There was one follow up question. Not much time left for doing any coding, so interviewer asked to write the algorithm in plain English and I did so.

Exactly after a week, recruiter got back to me and informed that I am cleared for the onsite interviews. I was assigned to a new recruiter for onsite interview process. After going through my profile, this new recruiter suggested that I try for more specialized embedded software engineer as I stand more chance in clearing that interview rather than a general software engineer. I initially agreed as it is still Google and I could later change team. Had a chat with another recruiter handing embedded team. Even there my domain is not matching and also for that position, interview have to be taken in C++. So, I refused, came back to general SWE interview. Recruiter scheduled only 3 rounds initially, all DS & A. Exactly 45 minutes for each round. If I cleared this, then there will be two more rounds. I felt this split interview was because recruiter’s lack of confidence in my profile. By the time of this interview, I had completed around 350+ questions.

On onsite interview, I had choice of coding on Chromebook or whiteboard and I chose Chromebook. First round was a graph question and it went fine. Second was tougher, similar to trapping rain-water question, but harder and I dint properly complete it to my satisfaction. In third round, the interviewer was doing a work-from-home and hence was on video call. This is a bit demanding for me as the interviewer was not able to see the whiteboard. I had to type the examples and explanations in the Chromebook. The question was a DP one and I was able to complete coding, but with some hints. According to my own assessment, I will score myself 3.2 in first round, 2.2 in second and 2.8 in third out of a total of 4 marks.

Recruiter got back after a week and said I can appear for next round. The overall feedback is that I am good in coming up with ideas, but my code lacked efficacy. So, I needed to do better in next two rounds. One of the round will be behavioral, and another one I can choose between system design or DS & A. Since I needed to do the best in this round and as I lacked experience in system design, I chose DS & A. I prepared more, reached about 450 questions mark on leetcode before this interview.

In this round, the question was a graph question which required me to find shortest path passing through a given set of nodes. With one hint, I was able to find an efficient solution. In my own assessment, 3.4 out of 4 for this round. Behavioral interview contained standard questions that you see online. I guess they will be evaluating based on your approach in answering and your confidence level.

Again the recruiter got back after exactly a week. Last two rounds went fine and I was delighted to know that I am not an outright reject. Now my feedbacks will be sent to hiring committees (HC), one in APJC and then to MTV. But to increase my chances, team-matching was done before hiring committee. I had discussion with two teams and I was accepted in one of it. It took almost 2 weeks after this and finally got HC approval couple of weeks back. With my 15 years experience, I could have been an L5. But given that my current field was different, I was given only L4. Maybe, if I had chosen system design interview round and aced it, I might have got an L5. But who knows if I would have cleared it. There was nothing to negotiate the salary with. I had no other offer. Even my current salary is very low. So I accepted the offer as is with only a bit of negotiation on joining bonus.

I am a little disappointed with my grade, but then again I can’t complain as it is dream come true. I am able to change my domain, and will get a great brand name in my resume.

For my preparation, I used mostly various online blogs and tutorials. I had cracking the coding interview book, but I never followed it.

We tend to forget the ideas that we use for leetcode problem solving. So, if you have solved a leetcode problem after consulting the discussion forum, bookmark it and revisit after a couple of week and see if you can still solve it. Revisit it again one or two days before the interview and read through the code.
One mistake I did is that I never practiced for interviews. I never attended any other interviews (not even mock interviews). If you are tense, you may not be able to think clearly. It is something that happened in my first set of interviews.

From my experience, interviews at Google happens at a tight schedule. By the time a round is over, the next interviewer will already be standing outside the room. So, before interview, use restroom. Also, get a bottle or a glass of water to the interview room. It is good to take a paper and pen to the interview room. In my first set of interview, there was no paper in the room. It would have helped me to write examples on a paper and show it to the camera in my 3rd round where my interviewer was sitting remotely.

Thank you for reading and wish you good luck.

Comments (4)