We are looking for resources who can work with C++, with experience in the development of embedded applications.
List of the main tasks and responsibilities of the embedded systems developer :
To develop the code following the standards defined with the architecture team and to work for the reduction of the technical debt
To participate to the design and development of critical parts of the project, together with the architecture team
To end-to-end manage the software lifecycle for embedded systems, including build and test automation, continuous integration, and secure deployment on devices
To manage the Unit Test for the functionalities developed, trying to automate the execution of the tests when possible
To be responsible for the deployment and for the relating tool chain for one's own projects
To guarantee the compliance of the code developed with the company SDLC (Coding Standard, Unit Test, Versioning)
To store the software produced following the versioning policies
To actively collaborate with the colleagues of the team, with particular care towards the junior resources or recently hired colleagues
To be responsible for the compliance with the company ISO standard
To draw and develop the documentation for the projects assigned
Required qualifications:
C++ (>= C++11), with at least 3 years experience in embedded applications
Object oriented design and development
Embedded Linux mainly in user space
Git/GitHub for version control
DevOps practices for embedded systems: CI/CD, build and hardware test automation, firmware pipeline management, containerization, and secure deployment on embedded devices
Scripting languages (bash, python preferred)
Unit tests experience
Capable of writing software documentation according to given standards
CMake, Conan will be given extra chances
Knowledge of CAN will be given extra chances (J1939, ISO-TP 15765, ISO11783, UDS, CANOpen)