Common interview questions for embedded software developer

Let’s see some of the common interview questions asked during an embedded C developer interview.


1. What changes are to be done on software if the embedded software is ported from a 32 bit architecture to a 64 bit architecture.

2. Can you call a static function which belongs to a different file, if possible How?

3. Volatile qualifier and its use in embedded software.

4. How interrupts are working in embedded software.

5. Explain how you will implement an Ethernet receiver driver using interrupt.

6. Explain about ADCs

7. Explain interrupt latency.

8. Difference between ARM and PowerPC architecture.

9. Explain how stack is working.

10. Memory layout of an executable.

11. Explain the protocols I2C, SPI and CAN.

12. What is the mechanism which determines the baud rate of a CAN network.


1. Priority inversion, priority inheritance, priority ceiling.

2. What is deadlock and livelock.

3. Difference between Semaphore and Mutex.

4. Explain a situation where you have used Semaphore and Mutex in you past projects.

5. Process synchronization methods in RTOS.


1. Why are you looking for a change?

2. What is your expectation from the new job, if offered?


1. Explain your recent project.

2. Draw the software architecture of your recent project.

3. Challenges you faced during your project.


1. How to find the Nth node from the end in a singly linked list.

2. Code to modify the even indexed members in an array.

3. Implement XOR without using the operator.

4. Reverse a string.

5. Convert little endian to big endian.

6. Write a C code to print a string without using a semicolon in the program.

7. Write a program to find a merge in a singly linked list.

C code to Reverse words in a string

When it comes to C programming, the saying “Practice make perfect” is very much valid.
So here I am sharing a sample code to reverse words within a sample string.
Since this program does not belong specifically to the “Embedded C” category, this post is not marked under the category.

Working of this program is pretty simple 🙂

The pseudo-code is as follows…

I. Read-in each character within the string to an array until a ‘space’ character is found

II. When a ‘space’ character is found; print the earlier read string in reverse order

III. Repeat step I and II until the entire string is scanned

Note: The “flag” variable is used to mark whether the scan is presently within a word or outside of a word.

The output of the above program: