Controls Software Engineer
Descrizione dell'offerta
Job Title
Controls Firmware Engineer
Department
ATC
About the Role
We are seeking a motivated and technically skilled Controls Firmware Engineer to join our team. You will contribute to the development, integration, and testing of the core software platform powering our industrial control systems. This platform is designed to manage distributed embedded units used in critical thermal systems and infrastructure environments, enabling high-resolution data acquisition, real-time diagnostics, and robust multi-device communication through industrial protocols. You will play a key role in shaping a modular, scalable, and future‑ready software foundation.
Key Responsibilities
- Design and implement software components in C/C++ and Python.
- Develop services and infrastructure on Linux-based embedded platforms.
- Implement and maintain communication layers using protocols such as Modbus RTU/TCP, CANbus, MQTT, and other fieldbus systems.
- Write and maintain automation and deployment tools using Bash and Python.
- Contribute to the definition of the software architecture and apply design patterns for scalability and maintainability.
- Ensure robustness and performance of the system through debugging, profiling, and optimization.
- Produce and maintain high‑quality technical documentation, including module specifications, interface definitions, and integration guidelines.
- Collaborate closely with cross‑functional teams (firmware, hardware, cloud, QA and tech service) throughout the development lifecycle.
- Design, maintain, and improve CI/CD pipelines using tools such as GitLab CI/CD to ensure efficient build, test, and deployment workflows.
- Contribute to the creation and management of containerized environments using Docker, supporting consistent development and deployment across systems.
Requirements
- Degree in a STEM field such as Computer Science, Electronic Engineering, Physics, or Automation.
- Strong programming skills in C/C++ and Python.
- Solid understanding of Linux operating systems and Bash scripting (kernel knowledge is a plus).
- Experience with industrial protocols such as Modbus RTU/TCP, CANbus/CANopen, and MQTT.
- Good knowledge of software engineering principles, version control, and design patterns.
- Demonstrated attention to detail, structured thinking, and commitment to high‑quality results.
- Fluent in English, both spoken and written.
Nice to Have
- Experience with embedded systems or edge computing architectures.
- Familiarity with networking tools, system diagnostics, or performance profiling.
- Knowledge of Qt 5/6 for developing cross‑platform user interfaces.
- Experience working with Yocto Project for building custom Linux distributions (nice to have).
- Prior involvement in writing or maintaining software interface documentation or platform specifications.
Approfondimento sul ruolo
Questa posizione di Controls Software Engineer rappresenta un'opportunità per contribuire allo sviluppo di piattaforme software critiche per sistemi di controllo industriale. Il ruolo combina progettazione, implementazione e testing di componenti firmware su architetture embedded Linux, richiedendo competenze trasversali in linguaggi di programmazione e protocolli industriali.
Il ruolo
Come Controls Software Engineer, progetterete e implementerete componenti software in C/C++ e Python per una piattaforma che gestisce unità embedded distribuite in sistemi termici critici e infrastrutture. Svilupperete servizi e infrastrutture su piattaforme embedded basate su Linux, implementerete layer di comunicazione attraverso protocolli industriali quali Modbus RTU/TCP, CANbus, MQTT e fieldbus, e contribuirete alla definizione dell'architettura software applicando design pattern per scalabilità e manutenibilità. Il vostro contributo sarà essenziale per garantire robustezza, performance e affidabilità del sistema.
Competenze valorizzate
- Programmazione in C/C++ e Python
- Sviluppo su piattaforme embedded Linux
- Protocolli industriali (Modbus RTU/TCP, CANbus, MQTT, fieldbus)
- Scripting Bash e automation tools
- Architettura software e design patterns
Il mercato del lavoro a Piove di Sacco
Piove di Sacco, situato nel Veneto, rappresenta un'area con significativa tradizione manifatturiera e industriale, dove la domanda di professionisti nel settore dell'automazione e dei controlli industriali rimane solida. La regione vanta una consolidata base di imprese nel comparto della meccanica avanzata e dei sistemi di controllo, creando opportunità per ingegneri specializzati in software embedded e firmware development.
Domande frequenti
- Quali sono le responsabilità principali di un Controls Software Engineer?
- Progettare e implementare componenti firmware, sviluppare servizi su piattaforme embedded Linux, implementare layer di comunicazione con protocolli industriali, scrivere tool di automazione e deployment, e contribuire alla definizione dell'architettura software per garantire scalabilità e manutenibilità.
- Quali requisiti sono fondamentali?
- Competenze solide in C/C++ e Python, esperienza con piattaforme embedded Linux, conoscenza dei protocolli industriali (Modbus, CANbus, MQTT), capacità di scripting Bash e comprensione dei principi di architettura software e design patterns.