R&D Embedded Software Engineer Stationary Industrial Scanners
Descrizione dell'offerta
Job Description
Research and development Engineer contributes to the design and development of new products, the redesign and maintenance of existing ones, the research and testing on product concepts.
The Software Engineer will participate in the definition of the software architecture under the leadership of his/her supervisor and will autonomously develop and debug some of the software elements.
Key Responsibilities
- Solicit, generate and manage requirements related to SW components;
- Apply internal process for new product development;
- Design and implement complex software subsystems and whole systems within a larger embedded product using software engineering best practices.
- Take design choice autonomously and validate that in a cooperative process and be able to lead deep technical discussion;
- Troubleshoot the design, drive the relation with Validation and Verification team in a fruitful manner;
- Study and benchmark the competitor’s products;
- Prepare reports, manuals and other documentation on the status, operation and maintenance of software;
- Participating in peer-reviews of solution designs and related code.
Requirements
- Education: Software Engineering or Computer Science
- Languages: Italian, English (Fluent)
- Experience: At least 3 years with experience in C++ programming on Linux
Job Details & Specifications
- Strong technical skills including understanding of software development principles
- Good knowledge of programming languages (modern C++)
- Familiar with Linux user space programming and debugging
- Familiar with CI/CD practices (test driven development, automatic testing)
- Knowledge of common development and versioning tools (GIT, Jenkins, CMAKE)
Optional Specifications
- Familiar with embedded systems (cross-compiling)
- Familiar with Linux kernel space programming (device drivers for I2C, SPI, PCI, USB)
- Familiar with Yocto project
Approfondimento sul ruolo
Questa posizione rappresenta un'opportunità significativa nel settore dell'embedded software per chi desidera contribuire allo sviluppo di scanner industriali statici. Il ruolo combina attività di ricerca, progettazione e implementazione di soluzioni software complesse in un contesto di innovazione tecnologica.
Il ruolo
L'R&D Embedded Software Engineer avrà la responsabilità di partecipare alla progettazione e sviluppo di nuovi prodotti, nonché al redesign e manutenzione delle soluzioni esistenti. Sarà coinvolto nella definizione dell'architettura software, nello sviluppo autonomo e nel debug di componenti software, nella gestione dei requisiti e nella validazione delle scelte progettuali. La figura dovrà inoltre collaborare con i team di validazione, preparare documentazione tecnica e partecipare a peer-review delle soluzioni implementate.
Competenze valorizzate
- Ingegneria del software e sviluppo di sistemi embedded
- Progettazione e implementazione di architetture software complesse
- Debugging e troubleshooting di soluzioni embedded
- Gestione e raccolta dei requisiti software
- Documentazione tecnica e comunicazione dei risultati
Il mercato del lavoro a Bologna
Bologna rappresenta un polo importante per l'industria tecnologica e manifatturiera in Italia, con una significativa concentrazione di aziende attive nel settore dell'automazione industriale e delle tecnologie avanzate. La regione Emilia-Romagna mantiene una forte tradizione di eccellenza nell'ingegneria e nell'innovazione, offrendo opportunità di carriera per professionisti specializzati in embedded systems e software development.
Domande frequenti
- Quali sono le responsabilità principali di un R&D Embedded Software Engineer Stationary Industrial Scanners?
- Le responsabilità includono la progettazione e sviluppo di nuovi prodotti, la gestione dei requisiti software, l'implementazione di architetture complesse, il troubleshooting, la preparazione di documentazione tecnica e la partecipazione a sessioni di peer-review del codice e dei design.
- Quali requisiti sono fondamentali?
- Sono fondamentali una solida formazione in Ingegneria del Software o Informatica, esperienza nello sviluppo embedded, capacità di progettazione autonoma e validazione delle scelte tecniche, nonché abilità di collaborazione e comunicazione tecnica.