Taro Logo

Middleware Developer Interview Experience - San Diego, California

October 1, 2012
Neutral ExperienceNo Offer

Process

I received an email after applying online through the Careers Website. My first phone interview was scheduled, followed by an onsite invitation.

Phone Interview:

  1. How to write a remote service?
  2. How do you pass data between threads?
  3. What is a deadlock?
  4. Why do you need synchronization?
  5. What is virtual?
  6. Questions about my resume regarding design patterns I have used.
  7. How do clients bind to a service?
  8. How do clients know when they have disconnected from a service?
  9. Activity Lifecycle.
  10. What triggers onPause() and onDestroy()? Give examples.
  11. Service lifecycle.
  12. Short code to explain how JNI works.

There were a couple more interview questions, but I do not remember them precisely.

Onsite Interview:

First Round:

  1. Write an atoi function. (I coded it but messed up by multiplying the character by 10 before doing *input - '0'. I am not a C++ programmer, but that's no excuse for messing it up.)
  2. Reverse a linked list. (It's better to use two pointers than three; I used three.)
  3. There was an encrypted image file, and there were C++ libraries to decrypt it. Write code to return the path of the decrypted file back to the Java layer from C++. (It was pretty easy since I did JNI.)
  4. Write code to demonstrate a remote service.
  5. How to pass complex user data in IPC from one process to another? (AIDL, Messenger)
  6. Difference between Set and List. (I said list elements have "some" link to each other, whereas that's not the case with a set, which is true. However, I should have used the right keywords: List is ordered, Set is NOT, and List allows duplicates.)
  7. How is ArrayList implemented in Java? (I said it's by allocating an array and resizing as needed. ArrayList is not implemented by LinkedList in Java, since ArrayList allows fast indexed access to data.)
  8. What is a weak reference? (I messed up; I said it's a ref to ref. It appeared the interviewer wanted to know why it is used.)
  9. Interfaces in the collection framework. (I said List, Set, Map. I left out Deque. The interviewer kept asking what else, and I couldn't recall. JavaDocs suggested I was indeed right that it's only List, Set, Map, and Deque; I only missed Deque.)
  10. How to pass a User Object using Messenger in IPC.

Second Round:

  1. Reverse a string. (I did it using recursion: java if (inputString == null) return null; if (inputString.length() == 1) return inputString; return (reverse(inputString.substring(n/2, n-1)) + reverse(inputString.substring(0, n/2)));

    )

  2. Reverse "I am a boy" to "boy a am I". (This was easy. I used my already coded reverse routine to explain my algorithm for this one, and the interviewer was pleased.)

  3. Encode routine for a string of the types shown below:

    • Example 1: aaabbccd => a3b2c2d1
    • Example 2: aabccaaa => a2b1c2a3 (This was an easy one.)
  4. A tree question: Return all nodes in each level as a list inside a larger list. For example:

           1
      2         3
    

    4 5 6 7

    Result: { {1}, {2,3}, {4,5,6,7} } (You just have to do a BFS traversal and keep track of the level, create sub-lists, and in the end, just return the final list with all the lists of each level.)

Third Round:

  1. Explain my JNI project. (Easy one.)
  2. Code a similar JNI routine with changed requirements the interviewer gave me. (Too big to mention here; easy one.)
  3. Make a user dictionary with: a) Add b) Find c) Edit (Basically, approach and specifics you will perform in each routine.) I coded the problem but the mistake I made was I didn't consider what my default action would be when the dictionary is empty. I know it's easy to say, "Oh, I can accommodate that," but as a developer, they probably anticipate you to already consider it when you code.
  4. Difficulties in JNI.

Fourth Round:

Lunch with Director.

All range of experience-related questions, trying to gauge your depth and technical insights in varying topics. Discussed difficulties faced, the hardest bug and how it was solved, views on improving JNI, what I would change, and why they should select me, among other things.

Fifth Round:

Interview with Software Lead.

Again, probing on your skill set and what you can bring to the team. Difficulties in particular scenarios. General chat.

Was this helpful?

Interview Statistics

The following metrics were computed from 1 interview experience for the Qualcomm Middleware Developer role in San Diego, California.

Success Rate

0%
Pass Rate

Qualcomm's interview process for their Middleware Developer roles in San Diego, California is extremely selective, failing the vast majority of engineers.

Experience Rating

Positive0%
Neutral100%
Negative0%

Candidates reported having mixed feelings for Qualcomm's Middleware Developer interview process in San Diego, California.

Qualcomm Work Experiences