Accedi per un accesso più rapido alle ultime offerte di lavoro. Clicca qui se non hai un account.

Embedded Software Engineer (R&D93) Full-time Job

1 settimana fa Engineering Calderara di Reno
Dettagli del lavoro

Embedded Software Engineer

Platforms Embedded Software Engineers are part of a team dedicated to research and development of state‑of‑the-art edge-computing platforms and application-level SW components, both intended to become trusted building blocks on which most of the new generation Datalogic products will be based.

Main duties and responsibilities of a Platforms Embedded SW Engineer are:

  • Research and develop new edge-computing platforms and application-level SW components for products dedicated to 1D/2D code‑reading and/or other computer-vision applications, in accordance with predefined project requirements and in collaboration with other R&D engineers skilled in embedded SW, image‑processing algorithms, electronics or optics
  • Contribute to define detailed requirements of new software components, starting from higher level requirements provided by involved systems engineers
  • Contribute to develop the software architecture of Linux-based embedded devices dedicated to 1D/2D code-reading and/or other computer-vision applications. The architecture has to be future-proof and very scalable because the software is intended to run on a multitude of devices which differ from each other by image-sensors' resolution, data processing power, type of communication interfaces, etc.
  • Design, develop and validate new pieces of software, following well-established Software Quality Assurance (SQA) principles and best-practices. The required coding languages are C++ for Linux user-space programming and C for any Linux Kernel and Bootloader changes.
  • Porting existing pieces of software from a device to another one, taking care of all the possible hardware differences related to image-sensors, processor, memories, peripherals, etc.
  • Contribute to maintain already released pieces of software by debugging any open defects and implementing new added-value features.
  • Support program managers to estimate effort required to carry out assigned tasks and to keep updated project plans, facilitating monitoring of own task progress.
  • Contribute to spread SQA principles and best-practices throughout the team, for example by establishing design and development guidelines, mentoring less experienced teammates, and promoting systematic code reviews.


Requirements:

  • Education: Master’s Degree in Computer or Electronic Engineering or Computer Science
  • Languages: fluent English (mandatory), Italian (preferred)
  • Experience: more than one year of hands-on experience in SW engineering for Linux-based embedded-systems, object-oriented design, and C++ programming


Specific Knowledge and Experience:

  • Good command of C++ programming, object-oriented design, and design patterns
  • Good command of well‑established Software-Quality-Assurance principles and best-practices
  • Good command of most common debugging, profiling, and code analysis tools
  • Good knowledge of DevOps tools (Git, Docker, and Jenkins) and CI/CD principles and best-practices
  • Knowledge of Yocto build system is highly preferred


Soft Skills: ability to work both in team and autonomously, capability to work in a dynamic international team and in a complex environment, ownership and commitment, problem solving attitude, open mindset.