A total of 5 rounds were scheduled within approximately a week. Another 2 weeks were allocated for offer release. After the completion of all interview rounds, I received a call from HR regarding my selection. The final offer release took 2 weeks.
Hiring manager will share the job requirements of the role and skill sets. Questions were asked about past projects.
a) Write a C program to detect the I2C slave address of a sensor (without using i2c-detect).
b) Reserve 1 Mbyte of kernel memory for your driver (similar to pstore).
c) Reverse bits in a number.
d) Check if a bit is set, set a bit, reset a bit.
e) What are the major and minor numbers required to implement an I2C slave driver for three sensors connected on the same bus?
a) What happens when an I2C driver uses the same interrupt request line and an interrupt is received from only one slave device? b) Implement a driver and HAL (in user space) to get sensor data from two different sensor drivers asynchronously. c) Difference between spinlock and mutex. d) What happens when an I2C sensor generates sensor data with a 10Hz frequency, but the client speed is not the same from the user's perspective? e) Implement a driver that accumulates sensor data as per the set sampling time and shares the latest data with user space upon request. f) Which is better: level-triggered or edge-triggered? g) Explain the Linux kernel for the input/output subsystem. h) Write a macro to set all bits for a given number.
a) Explain work-queues. b) Explain interrupts. c) Explain watchdog. d) Kernel memory allocation techniques. e) How can you reserve kernel memory? f) Why is cache invalidation needed? g) What is an IOMMU? h) Types of DMA memory allocation techniques - with cache and without. i) How do you debug kernel memory leaks? j) Kernel configuration macro used to detect memory leaks. k) Remove a given pointer in a singly linked list (head not given). l) Detect a loop in a singly linked list.
a) C program and find the error (You cannot change the base address of an array).
b) Why use volatile?
c) What happens to the system when it boots and the first instructions are executed (from a TLB miss perspective)?
d) What is the job of the memory management hardware unit?
e) What are different ways to optimize memory usage?
f) Linux power optimization techniques.
g) Boot time optimization.
h) Memory usage optimization techniques.
The following metrics were computed from 7 interview experiences for the Qualcomm Staff Engineer role in Bengaluru, Karnataka.
Qualcomm's interview process for their Staff Engineer roles in Bengaluru, Karnataka is incredibly easy as the vast majority of engineers get an offer after going through it.
Candidates reported having very good feelings for Qualcomm's Staff Engineer interview process in Bengaluru, Karnataka.