We are looking for resources who can work with
C++,
with experience in the development of
embedded applications.
Below is a 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)