NXP Semiconductors | Intern + Full Time( PBC) | Bengaluru (India) | sept 2024 [Offer]
Online Assignment
Questions:
- Profile: Embedded
- Number of Questions: 35
- Type: All MCQs (C & OS output-based with a specific focus on pointer arithmetic)( +3,-1)
- Time: 1 hour
- Note: The questions were based on the chosen profile (Digital, Analog, or Embedded).
- Mode: In Campus Labs
Interview R1 (Type: Elimination) (Approx 1 hr)
Questions:
- The interview started with an introduction followed by a discussion about my resume. I explained all my projects briefly. The interviewer was particularly interested in one of my projects that involved graph algorithms like BFS, DFS, IDDFS, A*, and IDA*. He asked me to explain each algorithm one by one and write pseudocode for them. Since the project involved low-level design, he also asked why I used abstract classes, focusing on basic OOP concepts and how they were helpful in the project. (Approx 25 min)
C Language Questions:
- Difference between structures, unions, and classes (both in C and C++).
- Pointers and pointer arithmetic, along with complex functions involving pointers.
- Detailed explanation of storage classes.
- Compilation to execution program flow.
- Macros vs. inline functions.
- Dynamic memory allocation (calloc, malloc, realloc) - brief explanation of all three.
Operating System (OS) Questions:
- What is context switching? How does it happen?
- Process states (new, ready, etc.).
- Scheduling algorithms and the difference between preemptive and non-preemptive scheduling.
- Deadlock: Explained the four necessary conditions.
- Paging: Explained how it works, with an extrapolation to thrashing.
- Swap area: Explained using the example of GTA Vice City.
- Inter-process communication (IPC): Semaphore vs. mutex and their use cases.
Coding Questions (Easy DSA):
- Swap two variables without using a third variable (gave all three approaches).
- Bitwise operations: Set, flip, unset, and count bits.
- Given all elements appear twice except for two elements that appear once, find the two unique elements.
- Palindrome: Provided both recursive and non-recursive approaches.
- Implement a singly linked list (SLL): Created a basic SLL and added a menu-based system for inserting and deleting elements.
Microcontroller, Microprocessor, and COA Questions:
- RISC vs. CISC.
- DMA (Direct Memory Access).
- Architecture of ARM Cortex M4.
- Parallelism vs. concurrency.
- Communication protocols (SPI, I2C, CAN).
- Polling vs. interrupt.
At the end, the interviewer was running out of time, so he concluded the interview and asked if I had any questions. I asked about the technologies they were working on, which led to a discussion about cryptography and networks.
Candidate's Approach
The candidate explained their projects and algorithms clearly, demonstrating a solid understanding of both theoretical concepts and practical applications. They provided pseudocode for graph algorithms and engaged in a detailed discussion about OOP concepts. The candidate also showcased their coding skills effectively by implementing a singly linked list with additional functionalities.
Interviewer's Feedback
The interviewer was impressed with the candidate's ability to explain complex concepts and their proactive approach in coding tasks. They appreciated the candidate's depth of knowledge in algorithms and data structures.
Interview R2 (Team Allocation Round) (Approx 30 mins)
Questions:
- Rate yourself in C/C++ and Python on a scale of 10.
- How are you with data structures? Explained from arrays to graphs.
- More pointer questions and bitwise operations.
- Malloc: Discussed fragmentation techniques and memory allocation.
Microcontroller and Processor (MPMC) Questions:
- Communication protocols with block diagrams.
- USART & UART basics.
- Architecture and peripherals of microcontrollers.
- ADC, DAC & Timers in microcontrollers.
Signal Processing Questions:
- Discrete vs. continuous signals.
- Z-transform and S-transform.
- FFT and DFT.
Role Discussion & Final call (off-topic discussion):
- Discussed the technology the candidate will be working on.
- Talked about preparation needed and shared experiences.
Candidate's Approach
The candidate demonstrated a good understanding of core subjects and was able to explain complex topics, even when they were not fully prepared. They engaged in discussions about memory allocation and communication protocols effectively.
Interviewer's Feedback
The interviewer found the candidate's explanations satisfactory and appreciated their willingness to discuss topics even when they were not fully prepared. They noted the candidate's potential fit for the role.
Finally, he said "see you in the office" [Accepted]. There was no HR round. This was the easiest interview I’ve given so far.
Key:
Be confident even if you don’t know the answer. But don’t waste the interviewer’s time.
Bloopers: Every time I prepared extensively for an interview, I faced rejection from top-tier software companies. This time, I left it to fate, and it worked out.
Luck Factor: There were four interviewers. I was fortunate that I got an interviewer who focused on my resume.
Compensation details: Compensation Discussion
Philosophy: Stay consistent in your preparation. Life is a marathon, and we have miles to go.