I was interviewed for 2 separate positions to be located in San Diego, once in late March 2020, and the other in late April 2020.
The first interview for the first position (an Audio DSP Software Engineer role) was a technical phone interview with one of their engineers. First of all, my interviewer was late to the call by 40 minutes. He at least let me know that he'd be about 15 mins late over an email, but then he still didn't call me for another 25 minutes. That was already a red flag for me. In the interview, he asked me really detailed questions on C, such as what sizeof() would return when used on a struct that he gave me the definition for (I had to keep in mind the rules of byte padding in structs, which I did not remember clearly at the time). He then proceeded to ask me questions regarding multi-threading and critical sections. I thought the interview had gone alright, and he had at least promised me that I'd hear back soon. That did not happen.
I ended up having to ping my HR contact for this position a few weeks later, and still no response. A month after that first interview, I ping my HR contact again, and instead of getting yes/no on whether I'd be moving forward, she asks if I'd be interested in interviewing for a separate position (Computer Vision Software Engineer), also in San Diego. I agree, thinking the first step would be a phone interview like the first position, and give her my availability for the following few days. However, instead of a phone screen, they wanted to schedule a full-on virtual on-site interview with 3 separate panels. WITH ONLY 24 HOURS' NOTICE. I ask if I can push the interview back to the following week, but they refused, and so I begrudgingly went through the virtual interview the next day.
The first 2 rounds of interviews were fine, and the interviewers were pretty friendly. Despite the role being a Computer Vision one, there were surprisingly few questions on CV concepts, which worked in my favor since I have little experience in that area. Most of the questions were about embedded software engineering concepts or OS concepts. However, my last interviewer, who was only supposed to ask me questions for 45 mins, ended up taking OVER 2 HOURS, and just kept asking me such a wide range of questions from fundamentl C concepts to algorithms to OS multi-threading concepts. One question he asked was how to detect a loop within a Linked-List; luckily, I had encountered that same question before in a previous interview years ago, so I knew to suggest using Floyd's cycle detection algorithm, and how to implement it. However, strangely, he asked what other solutions I could use that may not be as optimal. I suppose he was trying to gauge how I think about a problem, but it was still strange for him to ask for a non-optimal solution.
After the interview, I felt I had done pretty good for just 24 hours' notice and almost no time to prepare (since I still had to work), and was told that I would hear back in 2 weeks. Of course that was also not the case, and I kept pinging my HR contact. They finally got back to me almost a month after that interview, just sending me what looked like an automated rejection letter.
This was a very messy and unorganized process, and my overall interview experience with them was pretty negative. I won't be applying to Qualcomm again for at least a few years after this.