A technology company in Malaysia is seeking an Embedded Software Developer to design and maintain software for resource-constrained systems. Responsibilities include debugging, developing device drivers, and optimizing performance across platforms. The ideal candidate holds a Bachelor's degree in Computer Engineering and has 2-5 years of experience in embedded software development. Strong skills in Embedded C programming and ARM microcontrollers are essential for this role.
Qualifications
Bachelor’s degree in Computer Engineering, Electrical/Electronics Engineering, Computer Science or related discipline.
2–5 years of experience in embedded software development.
Proficiency in Embedded C programming with debugging and optimization skills.
Responsibilities
Design and maintain embedded software for resource-constrained systems.
Perform system-level debugging across hardware–firmware–software boundaries.
Develop device drivers and communication protocols for embedded platforms.
Skills
Embedded C programming
ARM microcontroller experience
Debugging and testing tools
Communication protocols
Analytical thinking
Problem-solving skills
Effective teamwork
Education
Bachelor’s Degree in Computer Engineering
Tools
JTAG
Oscilloscope
Logic Analyzer
Job description
Design, develop, and maintain embedded software for real-time, resource-constrained systems.
Perform system-level debugging and troubleshooting across hardware–firmware–software boundaries.
Work closely with hardware engineers to define interface requirements, system specifications, and ensure seamless hardware-software integration.
Develop device drivers, board support packages (BSP), and implement communication protocols for embedded platforms.
Optimize software for performance, memory usage, and power efficiency.
Conduct unit testing, integration testing, and assist in system validation and verification.
Prepare and maintain detailed technical documentation for designs, processes, and test results.
Participate in code reviews, design reviews, and contribute to process improvements.
Support continuous integration/continuous deployment (CI/CD) processes and version control best practices.
Qualifications
Bachelor’s Degree in Computer Engineering, Electrical/Electronics Engineering, Computer Science or a related discipline.
Required Skills
2–5 years of professional, hands-on experience in embedded software development.
Proficiency in Embedded C programming with strong debugging and optimization skills.
Experience with ARM-based microcontrollers (Cortex-M series or similar).
Solid understanding of RTOS, interrupt handling, memory management, and device driver development.
Proficient with debugging and testing tools (JTAG, oscilloscopes, logic analyzers, etc.).
Familiar with communication protocols: SPI, I2C, UART, CAN, One-wire, Ethernet.
Strong analytical thinking, structured problem-solving skills, and attention to detail.
Effective communication and teamwork skills, able to work in a fast-paced and collaborative environment.
Must-Have Checklist
Embedded C programming with strong debugging and optimization skills
ARM microcontroller experience (Cortex-M or similar)
RTOS knowledge, including interrupt handling and memory management
Familiarity with debugging/testing tools (JTAG, oscilloscope, logic analyzer)
Communication protocols: SPI, I2C, UART, CAN, One-wire, Ethernet
Strong analytical thinking, structured problem-solving, attention to detail, and effective teamwork