Embedded_C++ Developer_EBH
About the Role
Tasks / Responsibilities:Develop and maintain middle-layer and application software for Linux-based embedded solutions Design and implement object-oriented C++ applications adhering to defined architecture and design standardsPerform software design and component-level implementation using appropriate design patterns and principles Create and maintain UML artifacts (Class, Sequence, Use Case, Dependency, and Component diagrams)Develop applications on Linux platforms, including usage of system calls, shell scripting, and IPC mechanisms such as D-Bus Implement multi-threaded applications with proper synchronization and concurrency handlingParticipate in requirements analysis and requirement engineering activities Develop and execute unit tests and support static code analysis to ensure code qualityDebug, analyze, and resolve software issues using standard Linux debugging and analysis tools Collaborate within Agile development teams and actively participate in sprint ceremonies Integrate code into CI/CD pipelines and follow defined development and quality processesMandatory: Strong proficiency in Modern C++ programming (C++11 and above)Solid experience in software design, including: Design patterns and design principles Architecture patterns UML modeling and design toolsHands-on development experience on Linux platformsExperience with Linux IPC mechanisms (e.g., D-Bus) and system callsStrong experience in multi-threaded programming and synchronization mechanismsExperience in requirement engineering Testing experience including: Unit testing using GTest / GMockStatic code analysis Proficiency with software development tools, including: Debugging and analysis tools: gdb, strace, valgrind Build tools: make, cmake, conan Version control: git CI/CD tools: Jenkins or Bamboo Experience working in an Agile software development environmentGood to Have Skills: Experience in connectivity domains such as: BLE Wi-Fi Exposure to database integration Working knowledge of Python for scripting or tooling supportBachelor's/Master’s degree in Electronics Engineering, or related field.5 to 8 years