Initially got a call from recruiter with a set of questions on C, resume, general behavioral questions. At the end I was given a coding program which we are supposed to code within 30min and send it back to the recruiter.
The second interview took almost 1.5 weeks after the first. The team interviewed me. Questions were asked about myself, what my expectations were from the role and company, questions on resume, C, C++, data structures. It was easy and answerable.
After the second round, they called me for an on-site interview at Pullman, WA. You are supposed to give a 30 min presentation on a topic related to embedded/firmware. It can be either one of your previous projects or any important related paper. At first they give you a tour of the manufacturing facility, then the presentation takes place followed by questions on the presentation by the members attending it. Then the first technical round takes place, which was majorly on data structures and its applications. Second round is about C, embedded programming, debugging and errors. Lunch is after this round. After lunch a 30 min meeting with the director, just casual talk about your goals, experience and general behavioral questions. The third round was about system design, bit manipulation and C programming. The last technical round was about Operating systems, mutexes, semaphores, some C coding. Each technical round lasts for about 30 min. After the four technical rounds, the team leads discuss about the organization structure and if you have any questions you can ask now. Then the HR comes in to discuss about benefits and other matters. Lastly, the HR and the team lead are open to any questions which you have.