Job PurposeThe Senior Embedded Software Engineer is responsible for designing, developing, and maintaining high-performance, reliable, and scalable embedded software solutions for advanced hardware systems. This role focuses on leveraging C++, embedded Linux, and Yocto Project to deliver robust software for power and communication applications. The engineer will collaborate closely with cross-functional teams to integrate software with complex hardware, contributing to innovative product development. This position is ideal for a self-motivated professional who thrives in a dynamic environment and is passionate about building cutting-edge embedded system
Essential Duties and Responsibilities• Design, develop, test, and debug embedded software using C++ for a variety of embedded platforms.
• Work with Yocto Project to build custom Linux distributions tailored to embedded systems.
• Collaborate closely with hardware engineers to integrate software with electronics hardware, including power systems.
• Write and maintain high-quality, modular, and maintainable code following best practices and coding standards.
• Optimize software for performance, reliability, and power efficiency.
• Participate in system architecture discussions and contribute to the selection of hardware and software platforms.
• Work with cross-functional teams to ensure seamless integration between hardware, firmware, and software.
QualificationsRequired- 8+ years of experience in embedded software development.
- Proven track record of developing software for embedded devices and systems.
- Strong problem-solving skills and ability to work in a fast-paced, collaborative environment.
Preferred- Proficient in C++ (11/14/17/20) with deep understanding of embedded systems and real-time programming concepts.Strong experience with embedded Linux and the Yocto Project for custom Linux distributions.
- Familiarity with debugging tools such as GDB, JTAG, and logic analyzers.
- Experience with communication protocols such as CANBus, I2C, SPI, UART, etc.
- Experience working with power systems, and knowledge of three-phase power systems is a plus.
- Knowledge of JavaScript and/or Python for scripting and tooling is a plus.
- Solid understanding of electronics and hardware interfaces, including schematics and PCBA Experience with CMake for building and managing software projects.
- Experience with software version control systems (e.g., Git).