Status: 10 years experience, BS Mechatronics Eng. MSc. IT
Position: Software Engineering Manager at Google
Date: September 2019
Phone screen 1 (1/2 hour): - Behavioral questions -
Phone screen 2 (1/2 hour): - Behavioral questions
Onsite (5 rounds): 2 Coding, 2 Design, 1 Behavioural
Result: Rejected
I am an embedded software engineer with 10 years of total experience. I have been doing management related activities for the last 3.5 years. 2 months ago I was contacted (i.e. I was not looking for a job) to apply for a leadership role. I was very hesitant as my experience is far from what is required in this type of company in regards to software.
Those of you who are familiar with embedded will know that this area is in a lot of cases related to functional safety which means a lot of the fun stuff that we can do in programming is a ‘no no’ in most cases (i.g. no recursion, no complex data structures, no dynamic allocation of memory, etc). The strengths in my field are a clear, concise, simplified process for software development that is aimed to reduce the risk of defects and thus increase the reliability of the system as lives could be at risk.
Even with my hesitation, I figured it would be a good change of industry, I could learn new things as well as be proud of working at one of the FAANG giants so I proceeded with interviews. I had 2 brief conversations on the phone without any coding. I then scheduled onsite interviews. The material was extensive and more so for me as I did not remember and had not used data structures in years. I prepared for 6 weeks studying from scratch, preparing for system, coding and behavioral interviews. I put many hours, I did everything that could be done in 6 weeks to the point that I regretted accepting the opportunity for interviews but I continued relentlessly. The day of onsite interviews came and I failed.
First problem I had seen it during preparation but did not remember the solution. I lost track of time, my approach would work but not elegant enough to allow a time complexity optimization. The interviewer had little patience to let me think on my own. Needless to say, the interview went with an excessive amount of ‘hints’ to the point I felt I did not even had a chance to think. After solving the problem on the white board, I did not even manage to finish the code for the obvious brute force solution.
Second interviewer knows on the door and it’s time to forget about everything and start again. I tried to put the first round aside but it kept creeping in my mind every few minutes. This problem was lower difficulty but was not a clear problem. The question was very disguised. After understanding the question and what was required, I suggested a solution but after 30 minutes of discussion the interviewer showed me use cases were my data structure selected was flawed. I found these use cases are hard to see when the problem is disguised as an application rather than a clear statement with a clear function signature. Time was up, no coding at all. At this point I knew I had no chance but I still wanted to do my best in the remaining rounds.
I went through 1 round of area of expertise system design was good and 1 round of leadership/management was good too. A system design on distributed systems was the biggest stretch due to my experience. This rounds also went on discussion without reaching the point the interviewer wanted to discuss in detail. This system design round was a fail too.
After that day I received the rejection call about 2 days later. It took a couple of weeks to shake it off. No one likes to be rejected, this goes beyond of whether you are looking for a job or not, whether you like the place or not, whether you are good or not. Finally, I took the experience as an eye opener and a good practice for the future. I searched online for options to improve and I found leetcode. I have been practicing since then with small improvements, I know I am far from an even small chance of getting a job at FAANG and I know I might never get in any of those companies as I struggle with medium difficulty questions and take way too much to answer in mock interviews and contests. I am years behind and I might never recover. However, I find this community a great motivation and I do it for the fun. I had forgotten that I like programming to the point where it feels like a game. I will continue to grow a little every day, just like the grass does, and next time I will be better prepared. They say that failure teaches more than success and in this case I tend to agree as this was my very first experience at interviewing with FAANG. I will share later the type of question I was asked. All the best for your goals and have fun.