Job Summary:
The Senior Embedded Software Engineer is responsible for designing, developing, and maintaining embedded software solutions for hardware systems and devices. This role involves working closely with hardware engineers and cross-functional teams to build reliable, high-performance firmware and embedded applications.
Key Responsibilities:
-
Design, develop, and maintain embedded software and firmware for hardware platforms.
-
Write efficient, reliable, and maintainable code in C/C++ for embedded systems.
-
Work with hardware teams to integrate software with microcontrollers, processors, and peripherals.
-
Debug and troubleshoot system-level issues related to firmware, hardware, and drivers.
-
Develop and optimize real-time embedded systems and low-level software components.
-
Participate in system architecture design and technical decision-making.
-
Conduct code reviews, testing, and validation to ensure high-quality software.
-
Support product development lifecycle from concept through deployment and maintenance.
-
Document software design, processes, and technical specifications.
Required Skills & Qualifications:
-
Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, or a related field.
-
5+ years of experience in embedded software or firmware development.
-
Strong programming skills in C and C++.
-
Experience with embedded operating systems such as RTOS or Linux.
-
Knowledge of microcontrollers, device drivers, and hardware interfaces (SPI, I2C, UART, CAN).
-
Experience with debugging tools, version control systems (Git), and embedded development environments.
-
Strong problem-solving and analytical skills.
Preferred Qualifications:
-
Experience with ARM-based processors and embedded Linux development.
-
Familiarity with communication protocols and networking in embedded systems.
-
Experience with IoT devices, hardware bring-up, and performance optimization.
-
Knowledge of software development lifecycle and Agile methodologies.