I interviewed for a Fall Co-op position at Qualcomm R&D San Diego with a Principal Engineer in their Deep Learning team. The interviewer was obviously a very smart and knowledgeable guy and I knew that this wouldn’t be just a run of the mill software company interview. I’ll split the interview into 3 phases and put my takeaway in the end.
Phase 1: He picked up my resume and asked about my PhD thesis research. We discussed the current problem I was working on. First I explained things to him in detail (he was a quick learner) and then he asked a few really fundamental questions and we discussed the implications and scalability of my algorithm.
Phase 2: Problem solving.
a) Given an urn with 2 strings in it. In one go, you pick any two random ends and tie them together, so if you pick up with two ends of the same string, you get one loop and one string. If you pick up two ends of different strings, you end up with one long string. In the next step you repeat the process. What is the expected number of loops you end up with ?
Answer: 1.33. The total number of ways to pick 2 ends from 4 possible ends is 6 (2C4). Therefore the probability of ending up with 2 loops is 2/6 since there only two ways to pick ends of same string in step 1 and then in step 2 you end up creating a loop with the other string. Probability of ending up with 1 loop is 4/6 since there are 4 ways of picking two ends of different strings in step 1, and in step 2 you tie up the ends of the long string.
2/6 x 2 + 4/6 x 1 = 1.33
b) How would you verify this ?
Answer: We can simulate this and see what the average converges to. (Must check for bias in random number generator or other biases in the simulation.)
c) What if instead of 2 strings, you are given N = 50 strings and you do the same experiment. How will you calculate the expected number of loops at the end?
Answer: Follow the same concept as the answer a. In the first step you can either end up with 49 strings (where one string is basically two strings joined together) or 49 strings and one loop. Now the expected number of loops is 50C100. In the second step you have 49 strings from which you pick two ends. So either you end up with 48 strings + 2 loops or 48 strings + 1 loop.
Phase 3: Some fundamental concepts,
a) What is the Maximum-Likelihood (ML) Estimator ?
b) What is the Maximum a-Posterioiri (MAP) Estimator ?
c) When are the MAP and ML Estimators same?
1. Study the profile of your interviewer if you know in advance their name.
2. If you claim to have expertise in a certain area, make sure your fundamentals are clear.
3. Be prepared to answer problems posed on the spot that may increase in complexity as you solve the intermediate steps.
4. Practise before hand to increase your speed.
5. Dont panic if you don’t understand the question, ask for time and clarifications.
For systems related positions in qualcomm, you should revise your basics in signal processing.