Qualcomm FTE Interview Experience for Software Engineer | On-Campus
“Qualcomm visited our campus on 14th Aug 2021 for hiring Full-Time Employees for Software Engineer role”. It was open only for circuit branches (CSE, ECE, EEE) both B.Tech and M.Tech with a minimum CGPA cutoff of 6.9. More than 250 students have applied for this role.
NOTE: The entire process was virtual as colleges are closed.
Online Test: It was an MCQ based test that was divided into 3 sections. It was completely on C/C++ code outputs, data structures, debugging, Operating Systems, OOPs and a few questions on combinatorics. Difficulty level was medium-hard. It was conducted on HirePro platform – video proctored. 45 students were selected for technical rounds.
Number of technical rounds varies from student to student with a minimum of 2 rounds to a maximum of 4 rounds based on our performance. I had only 2 technical rounds. Some of my friends had 3 and some had 4.
Round 1(Technical): This round was on Microsoft Teams. The interviewer shared with me a HackerRank codepair link.
This round lasted for around 1 hour 10 minutes. The interviewer was very good.
He asked me to introduce myself and then asked about my internship project which was done as part of a summer internship at Samsung. After a good discussion on it he then started some questions on operating systems, and I have answered them. The questions were:-
- Why Disk Scheduling is needed and what are different types of Disk Scheduling algorithms.
- As a follow-up question I was asked to implement the best disk scheduling algorithm and a discussion on its efficiency
- He asked me about different types of memories present in a Computer system ? (My answer was cache memory, RAM, Secondary Memory and Register Memory) He asked another follow up question about the working of a cache, about different types of caches and about data structures used in implementation of LRU Cache.
Then he asked what my favorite programming language is!! I told them it is C++. Then he asked some in-depth questions on it. The questions were:-
- What are different types of pointers?
- Volatile Keyword
- Memory allocation of a c++ program
- Create a Singleton Class (Done using Private destructor and static object creation).
- new and delete keywords (Dynamic Memory Allocation)
As I have mentioned Data Structures and algorithms as my favorite subject, he asked few questions on it. (Must run all the codes in the HackerRank code-pair link provided).
- Given a sentence in the form of a string, reverse the words in it and print the sentence (https://practice.geeksforgeeks.org/problems/reverse-words-in-a-given-string5459/1)
- Create a linked list and sort the list containing integers. Discussed various sorting techniques and finally proceeded with merge sort as it will be the best choice to sort linked lists than the quick sort. (https://practice.geeksforgeeks.org/problems/sort-a-linked-list/1) (https://www.geeksforgeeks.org/why-quick-sort-preferred-for-arrays-and-merge-sort-for-linked-lists/)
- Discussion about recursion and memory allocation done during recursion (call STACK memory) and about Dynamic Programming.
The interviewer asked me if I have any questions. I have asked about my work as a software engineer at Qualcomm and also asked about SnapDragon. I have also asked how Qualcomm was able to head the wireless communication revolution and about developing 4G and 5G which was the best thing last decade. This round ended with a thank you note.
Round 2(Technical): This was also on Microsoft Teams. This was one the toughest technical interviews I have ever given if not the toughest. This round lasted for approximately 1 hour 50 minutes. The interviewer was good. This interview was all about what I have studied as a computer science student. Although it was lengthy, it was an amazing experience.
The interviewer introduced himself and asked me to do the same. Then he thoroughly asked about my resume. He asked about my leadership skills and few more formal questions.
Then he started the actual technical interview with some questions on computer networks. The questions were:-
- OSI Model and about all the 7 layers with examples.
- TCP/IP Model and many follow-up questions on it.
- What are a switch, hub, and router? What layer of the TCP/IP model are they related to?
- What is Port addressing?
- Difference between IP Address and MAC Addresses, how they help in communication between 2 different networks.
- Inter Process Communication and follow-up questions like pipes, fifos, message queues, semaphores, and some codes on them about creation and working.
(I told him that I have done a lot of work on IPC and Socket Programming. So, he asked about IPC and was very impressed and appreciated me as i have explained him how to create a chating system using IPC).
Then he asked questions in Operating Systems. The questions were:-
- What are Deadlocks, Spinlocks, and their differences?
- Difference between Mutex locks and Semaphores.
- Threads and asked to write pseudocode to implement deadlocks on threads.
- Difference between a process and program
- Thread memory allocation in a multi-threaded process
- Memory Management and why paging was needed (I have explained about problems like fragmentation in continuous memory allocation)
Then he asked few questions in Computer Architechture:-
- What are different Endians in a computer system? Write a c++ code to show if our system’s endianness is big or little. (https://www.geeksforgeeks.org/little-and-big-endian-mystery/)
- What are buses and their types in a computer system?
I was asked questions on data structures and c++:- (Should be coded in the codepair link provided. We need to write a proper working code for some questions and pseudo-codes for some)
- Allocate memory dynamically (Heap memory) and then differences between stack memory and heap memory.
- write a C++ code to implement stack overflow and heap memory overflow.
- What is pass-by value and pass-by reference? Write a code to implement it and explain the memory level working of it.
- Given a string remove the extra spaces and reverse the odd positioned words in the string.
- Given a linked list for example 1->2->3->4->——>n change the last node to first node and then return the list. i.e return n->1->2->3->—->n-1.
- Given a linked list of names represented in the form of names and is arranged in dictionary order, insert a new name at the correct position in the list of names.
- Given a encoded string in the binary form convert it into decimal form. For example if the string is “a10101b001c11” then the output should be “a21b1c3” as 10101 = 21, 001 = 1 and 11 = 3 in decimal forms.
- Given a Preorder array of a Binary Search Tree how many other permutations of the given bst will form the same BST as the given preorder. (This was a brilliant question that requires a good knowledge about BST concepts and a bit of mathematical work. The answer would be choosing those permutations whose values are less than the root of the tree i.e pre and then arranging them all to the immediate right to the pre, all elements that are greater than pre and arranging them all after the smaller elements chosen before. For example 4, 1, 3, 2, 5, 7,6, 8, 11, 10 is the preorder therefore in a preorder of bst as discussed all the smaller elements less than root i.e 4 will occur first and then the elements greater than root. Therefore arranging 1, 3, 2, 5, 7, 6, 8, 11, 10 in such a way that all small elements form a group and then all large elements. Therefore answer (n-1)p(elements < pre). In this example it would be 10-1p3 = 9p3 where p is the permutation symbol p).
The last question asked was a puzzle which is about 3 bulbs and 3 switches and find the correct pair (https://www.geeksforgeeks.org/puzzle-7-3-bulbs-and-3-switches/)
I have asked some simple questions as I was very tired. I have answered almost every single question asked to me correctly and the interviewers were also very helpful. They gave ideas if we get stuck somewhere.
HR Call:- After an hour of waiting I got a call from HR and was told that I have done excellently well in the 2 technical rounds and I won’t be having any other rounds. The call ended after some formal HR questions.
After an hour I was informed that I am selected. Overall 12 students got selected.
- Confidence is the key.
- I had very less time to prepare for the interviews as i was doing my internship.
- So, I used my time efficiently and worked hard to thoroughly revise all the concepts and practiced coding.
- Talking to the interviewers helps a lot. Also don’t bluff in the interviews, it won’t help. Be thorough with the resume.
- Also, discuss with your friends while preparing that will help a lot.
Special thanks to my DSA Professor K. Ramesh sir for making me understand the beauty of coding and also my friends. Thank you GfG for playing a key role in my success.