
LSI Firmware Engineer Interview Questions
& Process
Real candidates share what happened, how many rounds they had,
and how the experience turned out.
Based on 6 interview experiences · FREE TO READ
Candidate interview experiences
First-hand accounts from people who interviewed at LSI.
Firmware Engineer
The process kicked off with a recruiter scheduling a phone interview. This interview involved questions about C programming and coding tasks done through screen sharing, with a focus on linked lists. Since I wasn't familiar with storage, the interview heavily emphasized my C programming skills because they were looking for someone with strong C foundations. After that, there was an onsite interview, and I must say the arrangements were wonderful. It included four 1:1 interviews with different levels of Software Engineers and a lunch interview with the Manager. It was surprising how they could test you solely on C with such a variety of questions, but it was a good experience overall.
- Can you explain how memory non-alignment might impact memory operations and what solutions exist?
- Could you provide programs for adding a node to a linked list?
- Could you provide programs for subtracting a node from a linked list?
Firmware Engineer
I applied online for a firmware engineer role in their RAID controller division, and they got back to me in about 2-3 weeks. The initial phone interview was quite easy and straightforward, covering my current job, some C concepts like volatile and interrupts, and cache management details (write-through/write-back, non-cacheable memory). The interviewer felt I was a good fit and invited me for an onsite interview in Milpitas. The onsite lasted from 10 am to 4:30 pm and involved meeting about 6 people, all of whom seemed to be of Indian descent. Most of them showed minimal interest in my work experience, focusing instead on C coding and algorithms. The questions were broad and sometimes very specific to their work, covering pointers (function pointers, callback pointers, pointer to const, volatile pointer, wild pointer), data structures (linked lists operations and tree concepts), dynamic memory management (malloc/free prototypes), sorting algorithms, the compilation process (linker, assembler, compiler), RTOS concepts (scheduling, interrupts, cooperative/preemptive multitasking), and string manipulation functions (sprintf, strcmp). Easier questions touched on bit operations, bit fields, storage classes, SAS protocol (which I know), inline functions vs. macros, enums, and development tools like emulators and analyzers. I answered many of these, but I suspect they needed someone with deeper coding experience than the job description indicated. I felt I had a tough panel and maybe got unlucky. My advice is to study these areas thoroughly. My impression of the company wasn't great; the office and cubicles seemed dated, suggesting potential financial issues affecting employee morale. This observation is limited to the site I visited; other locations might be better. The hiring manager, also of Indian descent, jokingly acknowledged the high proportion of Indian employees, which is common in the Bay Area.
- Could you explain the prototypes for dynamic memory management functions such as malloc and free in C, and discuss potential issues like fragmentation and memory leaks?
- Can you explain the use of static and auto variables in the context of dynamic memory management?
Firmware Engineer
First, there was a phone interview. I got contacted two weeks after the first interview for an onsite. The phone interview had questions from C. Pointers, arrays, structures, and bit manipulation were covered. After that, I had an onsite interview. It was a very long process, from 9:30 am to 5:30 pm. It was much more detailed. Pointers, arrays, structures, unions, bit manipulation, assembly language, and embedded and real-time systems were part of the interview.
- How would you handle passing a variable number of arguments in C?
LSI Firmware Engineer Interview Questions
Quoted word for word from LSI interview reports.
“What does 'volatile' mean in C programming?”
Read reports →“What is firmware?”
Read reports →“What is the difference between static and non-static objects?”
Read reports →“What are device drivers?”
Read reports →“Could you provide programs for finding the nth node from the end of a linked list?”
Read report →“Could you provide programs for subtracting a node from a linked list?”
Read report →“What are the considerations for registering and time-stamping memory as nodes for memory management?”
Read report →“Could you provide programs for adding a node to a linked list?”
Read report →“Explain stack and heap allocation.”
Read report →Formats, difficulty and experience
Across all 6 LSI interview reports.