Responsibilities
1. Works with the project manager, team leader and software team to plan and manage delivery schedules
2. Acts as the single point of contact for all issues related to a particular software module development, high-level design and delivery, and as such works with all other engineering disciplines.
3. Evaluates and schedules all changes in the scope of the module design and delivery
4. Performs modules maintenance, modifications, and enhancements to new/existing systems through programming, testing, and documenting.
5. Works on developing services and applications, working as part of embedded firmware for custom hardware
6. Follows, recommends, and implements software processes
7. Provides technical directions to others as necessary
8. Analyze and resolve technical and application problems
Minimum Job Requirements
Education & Experience
9. University degree in Computer Science, Engineering, Electronics, or a related field.
10. 3+ years of professional experience in C++ development, with a focus on embedded development for Linux.
11. Overall software development experience of at least 8 years.
12. Experience in software development process implementation.
13. Experience with software development tools (containers, configuration management, design, emulation, debugging, compilers, test, etc.)
14. Experience with GNSS and/or Optical Survey will be a plus
Knowledge, Skills & Attributes
15. Strong understanding of object-oriented programming and software design principles.
16. Knowledge of algorithms, data structures, multithreading, and real-time development concepts.
17. Expert knowledge in C++, Standard Library, Boost
18. Experience with Yocto, Buildroot, or other Linux build systems.
19. Knowledge of Networking protocols, including REST, TCP/IP, TLS, VPN, and firewall implementations.
20. Understanding of CI/CD pipelines and automated testing
21. Knowledge of bug tracking systems ( JIRA) and version control systems.
22. Ability to read digital schematics.
23. Knowledge of Docker
24. Knowledge of Python and bash will be a plus
25. A good command (both written and speaking) of the ENGLISH language is required for the job
Working Conditions
We offer a balanced work setup that combines in-person collaboration with flexibility
26. Office presence: at our Bologna office ( full time)
27. On-site activities: Regular visits to our Test Site in Concordia sulla Secchia (MO) for demonstrations and testing
28. Remote work options (Smart Working) are available to support focus and flexibility
We’d love to hear from you! Please send us your application and the earliest date you could join our team.