First I arrived there at 11:00 AM, I had a 2 hours multiple choice technical exam. The exam covered many areas in Embedded Systems, Software Engineering, Micro-controller peripherals, C programming, and advanced C language (Macros, Structures, Unions, Pointers, Pointers to Functions, program and data size on RAM and ROM).
After passing the technical exam, I had a technical interview with one of their Embedded Software Engineers. He asked me to write a C function that would be able to sort integer elements in a variable sized array. I could tell him how I plan to do it (pseudo code), but I took much time to write the C function. So, he told me to write a C function that can take an array of characters, and mirror its element, which I did both pseudo code and C code in a right way.
After the technical interview, I was told to wait for HR interview, but it was late, and the HR were very busy, so they told me to wait for a call to schedule for the interview.