Design and develop embedded software components and applications for product development.
Responsibilities
- Design and develop embedded software components using C++11 and template-based architectures.
- Implement object-oriented systems utilizing established design patterns and explicit interfaces.
- Develop multi-threaded and multi-process Linux applications using IPC mechanisms.
- Collaborate with technical architects and product managers on requirements, technical designs, and project plans.
Required Skills
- 8+ years of experience with Embedded Linux and C++.
- Strong proficiency in C++11 and template design.
- Deep understanding of object-oriented methodologies and design patterns.
- Practical experience with Linux IPC mechanisms.
- Experience with multi-threaded and multi-process application development.
- Hands-on experience with publisher-subscriber frameworks.
- Ability to use GDB via command line on embedded Linux platforms.
- Experience working with build systems and Makefiles.
Preferred Skills
- Experience with C++ unit test frameworks.
- Knowledge of CAN protocols.
- Experience working within Agile methodologies.