Senior Programmer/Architect (C++ / C#)
EFI
We are looking for a Senior Programmer/Architect (C++ / C#) with deep architectural experience in software development for industrial machines and automation systems. The candidate will define the code design guidelines for machine-level software and act as a technical mentor to the team, while remaining hands-on.
This role directly reports to the R&D product leader in their region with a dotted line to the Sr. Director of Software Development based in Spain. Key Responsibilities- Design, develop, and optimize the software architecture for the control, diagnostics, and supervision of complex industrial machines, ensuring efficient coexistence between C++ (real-time/low-level management, drivers, high-performance data processing) and C# (HMI, application logic, connectivity).
- Lead the technology choices of the industrial software development team, define coding standards together with the team to ensure maximum machine stability and safety, and conduct rigorous code reviews.
- Explore new technologies and industrial protocols, creating Proofs of Concept (PoCs) to improve machine performance, efficiency, and connectivity.
- Work closely with the electronic design, automation (PLC), and mechanical teams to translate machine operating specifications into robust software architectures.
- Act as a reference point for less experienced programmers, helping them solve complex software/hardware interface issues.
- Proven experience in developing application or control software for industrial machines, plants, or complex embedded systems.
- Deep knowledge of software-hardware interaction dynamics (input/output management, machine cycles, alarm management, and machine state management).
- Excellent knowledge of modern C++, concurrent/multithreaded programming, memory management, and performance optimization for critical low-level tasks.
- Solid experience with the .NET ecosystem (Framework + Core) for developing advanced human-machine interfaces (HMI), supervision services, and coordination logic.
- Familiarity with the integration of industrial protocols and fieldbuses (e.g., OPC UA, EtherCAT, Modbus, CANopen, TCP/IP).
- Good experience integrating low-level native code with high-level managed code (C++/CLI, P/Invoke).
- Use of profiling and debugging tools in industrial environments, unit testing frameworks, and version control systems (Git).
- Ability to guide and influence the team’s decisions through technical credibility and expertise.
- Strong aptitude for understanding the impact of code on the physical behavior of the machine and on operational safety.
- Ability to analyze complex bugs or abnormal machine behaviors in a structured way, focusing on the long-term stability of the system.
- Direct Product Impact: The opportunity to see your code move, control, and optimize real, state-of-the-art industrial machines.
- Focus & Flow: Protected time for research, development, and architectural design, minimizing corporate bureaucracy.
- Exposure: The candidate will interact with counterparts across the EFI group to develop international projects.
Offerta di lavoro pubblicata 2 mesi fa