Open In App

Qualcomm Interview Experience For SWE (On-Campus) 2023

Last Updated : 19 Dec, 2023
Improve
Improve
Like Article
Like
Save
Share
Report

Current Status: Postgrad student at IIT Hyderabad

Company: Qualcomm

Work Experience: 1 year of experience working at Oracle Financial Services Software(OFSS)

Position: Software Engineer (SWE) – Full Time

Job Location: Hyderabad/Bangalore, India

Interview Date: 1st December, 2023

Offer Status: Accepted

Selection Process: Online Assessment + 2 Technical Interview + 1 HR Interview

Round 1 – Online Assessment (90mins)

This round was conducted on the HirePro platform on 17th November, 2023. The test had a total of 3 sections and the duration for the test was 90 mins and 60 questions in total.

Section 1 – Aptitude

  • 20 questions, 30 minutes
  • Questions were based on
    • Data Interpretation
    • Time, Distance, Speed, Work
    • Profit & Loss
    • Logical Reasoning
    • Seating Arrangement, etc.

Section 2 – Programming MCQs

  • 20 questions, 30 minutes
  • Questions were primarily based on:
    • struct, union, pointers(v. imp)
    • extern, static keywords
    • C/C++ output-based questions
    • Based on OOPs

Section 3 – Technical Section (Computer Science Fundamentals & OOPS)

  • 20 questions, 30 minutes
  • Questions were primarily based on:
    • Operating system (also focus on threads)
    • Data Structures & Algorithms

All the questions had negative markings. The marking scheme was +1 for the correct answer and -0.25 for the incorrect answer. The section will be switched automatically to the next section when the section timer times out.

Round 2 – Technical Interview (50-55mins)

  • The interview started with a friendly introduction. Then asked me to explain 2 projects which I had mentioned in my Resume. So, I explained to him about those projects for about 10-12 minutes and we had a healthy discussion during my explanation.
  • He was also interested in knowing what work I did when I was doing a job at Oracle. I told him in brief about it and he was satisfied.
  • Then he asked me a question about structure member alignment & padding in C (since one of my projects had some reference to this).
  • Then he asked me a question from “Probability” (YES, you read it right). The question was:
    • Given an 8-bit integer where all bits of this integer are initially 0. You can flip/toggle any two bits of this integer to make it 1. What is the probability that the integer becomes (12)10 after this operation?
    • Answer: There are a total of 8 bits out of which we can flip any 2 bits. So the total ways are 8C2 = 28. Out of all these ways, only one way will lead us to (00001100)2 = (12)10, so the probability is 1/28.
  • Then he asked me a DSA question from bit manipulation, which was as follows:
  • Given a bitstream, reverse the bitstream. e.g. Let’s say the given bitstream is 1011. So the reverse of this bitstream will be 1101. The solution is as follows: (You can try it on your own here)
  • I could tell him the approach easily and explained my code by running through 1-2 testcases.

C++




#include <iostream>
using namespace std;
 
int reverseBitStream(int n)
{
    int res = 0;
    while (n > 0) {
        res <<= 1;
        res |= (n & 1);
        n >>= 1;
    }
    return res;
}
 
int main()
{
    int res = reverseBitStream(11);
    cout << "res = " << res << endl;
    return 0;
}


Output

res = 13

  • Then the interviewer asked me another question which involved concepts from threading, computer architecture & operating systems.
    • Assume there are three functions A, B, and C which are executed in sequence A → B → C to produce the final output. The input arrives at function A every 20ms, and functions A, B, and C take 13ms, 8ms and 5ms to process them respectively. Now, I had to find the optimal number of threads to run the following code along with justification.
    Qualcomm

    Function execution sequence

    • I told him the answer along with my thought process and he seemed to be satisfied with my explanation. (I leave this to you all to think and come up with the solution for this on your own)
  • Then he asked me about the synchronization between processes, and some questions on threading.
  • Finally, the interview ended after 50-55mins and I was happy I answered almost all the questions. Within a few minutes, I was called immediately for Round 2 which was again a Technical Interview.

Round 3 – Technical Interview (~1 hour)

  • This round again started with an introduction. This time the interviewer also introduced himself to me. He ensured that I was settled properly and in a calm state. (Since I had interviews with other companies going on in parallel, I had to run to come to this interview).
  • Then he asked me about my favourite subjects. I mentioned Operating Systems, Computer Networks, Data Structures & Algorithms. Then he asked me about what new thing I recently learnt from the subjects I mentioned. (I did not expect such a question, though after patiently thinking about it for a couple of minutes, I answered him).
  • Then he gave me a C program which was based on pointers (see how important pointer is in life, be it the pointer required (CGPA) for being eligible to sit for a company or be it from C language needed to crack interviews ????). So the question was very simple and as follows: (Answer: 28 17 28 17 28)
    • I gave him the correct answer by explaining what code does line by line & drawing diagrams

C




#include <stdio.h>
 
int main()
{
    int a = 5, b = 6;
    int *p = &a, *q = &b, **pp = &p;
    *p += *q;
    *q += *p;
    **pp += *q;
    printf("%d %d %d %d %d", a, b, *p, *q, **pp);
    return 0;
}


Output

28 17 28 17 28
  • Now, he started with OS questions like what is mutex and semaphore, what is the difference between them, when to use mutex and when to use semaphore. What is a Race condition, mutual exclusion, strategies to handle deadlock, what is the context switch, some questions on threads, what is inode, what is paging & virtual memory, etc? I answered all of them very confidently by quoting proper examples wherever possible.
  • Then 2-3 questions came from Computer Networks, like what is TCP & UDP, how error detection and correction works.
  • Subsequently, he asked one of the very challenging & interesting questions which was as follows:
    • Let’s assume we have elections in our state, as of now we don’t have a mechanism to count the votes cast for a particular party in real life. Currently, the vote counting is done 4-5 days after the election is completed. Now, he presented me with the following constraint. As of today, EVMs do not store which user cast votes for which party (since this is fundamentally incorrect). So, assume any EVM stores only party name and its votes cast for it. You cannot modify the way EVM stores the count. Now, he gave 3 conditions which need to be satisfied by this system:
      • Any user should be able to see the vote count for a party in real-time.
      • A particular user should be able to verify that the vote he gave is cast to that party.
      • Any other user should not be able to see the vote cast by another user.
    • This was a nice question, and with 1-2 hints from the interviewer during the discussion, I was able to design such a system (He just wanted the idea and approach, this was not some LLD or HLD question). The discussion on this went for like 15-20 minutes.
  • The interviewer was kind and helpful during the interview. I just kept calm and could answer most of the questions along with a few hints from the interviewer.

Round 4 – HR Interview (10 mins)

  • This round was hardly 10 minutes and some standard HR questions on willingness to relocate or not, willingness to work in any team, and any specific preferences for job location.
  • Also, since my 2nd round’s interviewer had given feedback about me that “I am a very strong hire”, this round was sort of formality. At the end, he asked me whether I had any questions for him and I asked him about choosing a team/domain of my liking when I joined Qualcomm and told him about my job location preference.
  • In the end, he told me that you were selected(I felt so relaxed hearing that ????) and said you would soon receive an official email about your selection.

Verdict: I was selected for the Software Engineer role at Qualcomm along with 7 other people. It was a proud moment for me as I got placed on campus on the 1st slot of the 1st day.

TIP: Study Operating Systems, Threading, C/C++, Pointers, Structures & Unions and of course your Resume very thoroughly. Be confident during the interview and think out loud, your interviewer should know how you approach the problem. This not only helps him understand your thought process but eventually helps you in case you proceed in the wrong direction, as he may give you hints and may correct you.



Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads