Senior Embedded Software Engineer
Descrizione dell'offerta
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)