Google | MTV| L3 | ML SWE | July 2020 | [Offer]
Anonymous User
3712

Hello to all dear leetcode community.
It is time for me to share my experience. Hope you will find it useful and inspiring.

Current Status of Interview
Got an offer
L3 is the decided level

My Background
CS Master from a top 30 university in USA.
1.5 years of experience as a ML Engineer/data scientist.
2 research internship about ML .

My Story
Last year I had started interview with Google for ML SWE.
I had two phone interviews(coding), and an onsite interview(not virtual!)(All 5 were coding). recruiter told me I got 2 strong accept and 3 accept. And he illustrated to me that for being accepted in Google each candidate needs at least 3 strong accepts. So, they ask me for two more phone interview (mainly ML). Again two more (not strong) accepts! So, the recuiter asked me to do the onsite interview again next 8 month! But I prefered to take more time to be really prepared. I went back after 14 months :)

At that time I just started leecoding! So, I promise to improve my level of programming, because I found that in Google they really test your level of coding!

How I Prepared My Technical Skills

  1. From last year, I spent every day at least 1 to 2 hours in a daily basis on coding in leetcode.
  2. First I try to solve all questions on the two list of "100 liked" and "Top Interview" (very good questions).
  3. Then I activated leetcode premium(highly recommended!) to find questions asked in Google. And try to focuss on them more
  4. At the same time I listened to one of Algorithm and Data Strucutres online(free) classes and took note (more on weekly basis)
  5. Also, spend time on machine learning (Andrew Ng DL specialization in coursera, mainly on last two months ), my ML class notes and review sickit learn based on the cheat sheet https://scikit-learn.org/stable/tutorial/machine_learning_map/index.html (Mainly last two months ).
  6. Taking notes on those classes and prepared them for review on last weeks.

How I used LeetCode

  1. I solved 456 questions , easy (26%) medium(54%) hard(20%).
  2. I very rarely solved the questions by topics. Because I think it is not close to real interview situation.
  3. First tried to solved easy questions, then after a while I mainly focussed on medium and hard(you will find that time by your progress !)
  4. Always had set a timer to solve the question less than 30 mins (more close to interview)
  5. If I could not solve it in first round, I read the hints and try anohter 30 mins (by myself)
  6. Still If I could not solve, I read the solution to get the idea (without reading the code) and again another 30 mins of coding by myself
  7. If still can not solve (which happened to me for some hard questions :) ) Then I tried to read the solutions and the codes. But still spend some time to rewrite the code without any help.
  8. Always tried to pass all the test cases, they teach you lot of things, never dismiss them.
  9. When I found a question very interesting, or asked alot recently (leetcode premium), or.. I added them to a list called to_review. Because I wanted to review those questions on last weeks (very very important).
  10. Believe me or not, in last 3 weeks that I tried to review the questions, sometimes I felt I never solved the questions! That is why review is very very... important. do not trap on doing more code. specially on last weeks before interview. Those reviews will help you to be really prepared for the interview.

How I prepared Myself Mentally

  1. My strategy is that : do small steps but in a persistant and consistant way. And I followed it
  2. But on last two monthes I tried to devote more times.
  3. For being persistant you need to have calm and happy heart. So, thats why I prayed God everyday (again everyday) to help me on my small but consistent steps and on the interview day. If you do not believe in God, do whatevery makes your heart calm , clean and happy! Meditation or ... . Because this is a long way and I promise you will find its importance when you do it.
  4. I tried to look the interview as an opportunity to improve my level of skills, knowledge and passion. I loved to have a very good interview result, but I remind myslef constantly that the goal is to enjoy your way not only the interview ! Because failing would happen to all of us. But the learning is there and its effect would come one day soon or late.

How I prepared Myself Couple of Weeks Before the Interview

  1. Review , review, ... review my notes and questions. And I am so so happy about that.
  2. Pray, pray, pray... to prepare my soul for interview and result. No matter what would be the result.
  3. Some time if I felt bored about my review, I just tried to read the discussions about recent Google interview (very helpful)
  4. Started rest 2 days before interview.
  5. I booked a hotel for my interview day (My house is very busy and noisy :) I used to that for my study but not for the interview day:) apple air pod noise canceller helped a lot ;) )

The Interview Questions
I'd like to share with you all details of the questions but because of the policy of keeping questions unreaveled (which I signed) I can not go to more details. Hope, the following detail and illustration would be helpful.

  1. Machine Learnig:
    2. Briefly Tell me about your current role

    1. Warm up question : definition of supervise learning and unsupervised learnig.
    2. Desing a deep learning network for a defined problem(without label)
    3. what is the lost function for each parts.
    4. If we have label how we can make whole networks more powerfule.
      (Andrew NG DL specialization really helped me on this round)
  2. Behavioral:

    1. tell me about your experience about dealing with a difficult team member.
    2. How did you handle it?
    3. What did you learn from that situation?
    4. Have you ever solved a really complex problem in work? illustrate the problem.
    5. How did you approach it?
    6. Have you ever solved a problem beyond initial expectation?
    7. How did you get to that level?
    8. Lets suppose you are joined a group of senior members about a project? how do you work with them?
    9. Let's say, one of your team members claims all credit of team work project? how do you handle the situation?
    10. If that team member continue the claiming every time, how would you handle it?
    11. How do you motivate your team members or other teams about a joined project?
    12. Tell me about one of your goals that you set for yourself and why?
      (I prepared all my experience stories. That was really helpful. Also, I tried to solve all hypothetical questions that I found on web. That was also good)
  3. Coding:

    1. A warm up mathematical question about changing base of number representation.
    2. A medium level question about checking all permutation of an arary of numbers on certain number of groups to satisfy some conditions.
    3. DFS based question (but it was not obvious at the first look, took me a couple of min to realize it )
    4. Another mathematical question about number of bits required for a range of numbers.
      (Without any doubt leetcode helped me a lot in this round. And also, the review that I mentioned. For this question I needed to combine couple of ideas of different questions because I had the ideas ready in my mind I could do that very easily)
  4. Coding:
    1. Find the lenght of largest contagious subarray in a given array of numbers that satisfy a given property.
    2. Medium level question based on idea of sliding window.
    3. I had some difficulty on some part but I could figured it out fast without any help
    4. Again leetcode is the tool for this round and again the review.

  5. Machine Learnig:

    1. This round was mainly about my current job.
    2. The interviewer asked me lot of detailed questions about my current task in my current company to see if my work experience worth enough for the position in Google. Some of the questions were like:
    3. Tell me about your current position?
    4. Which kind of ML models mainly you use in your system and why? explain in detail?
    5. Why you do not use ??? model? it seems it better fits to your work!
    6. What are the source of truth that you use?
    7. How frequently you get the source of truth? And how did you evaluate the timming of the source of truth in your current model?
    8. Tell me about one of technical challenges that you faced recently? Why you used X and not Y?!!
    9. Why do you have batch and online fasion for processing data? why you do not only use online or batch?
    10. How do you relearn your model and when do you decide to relearn your models?
    11. Did covid-19 period have any impact on your system? How do you know that? Explain in detail!
      (To be honnest, I did not expect this round of interview! And really my current work experience helped me on this round. So, do not underestimate your current role :) )

    My Final Words

  • Do not understimate small but consitent steps.
  • If I (an unknown person) could pass Google interview well, then definitely you can.
  • Never ever give up your dreams, use those dreams to move you up.
  • Consider interview on dream companies as an opportunity to improve your level of skills and knowledge.
  • Interview will end some days but learning will never ended.
  • Keep your body and soul along with your mind strong. Because this is a long journy you will need all of them.
  • Be possitive to world, then world shows its possitive side to you soon or late :)

*Wish you all success, happiness. Keep doing your daily portions :). Thank you for your patient till last words :) *

Comments (9)