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.
- 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:
- 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.
Qualcomm Interview Experience For SWE (On-Campus) 2023
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