We are seeking a highly experienced Senior Software Engineer to drive the development of our next‑generation machine control software. In this role, you will leverage your 7 to 10 years of experience in embedded Linux, C/C++, and advanced control theory to architect systems that combine real‑time motion control, industrial EtherCAT communication, and intuitive operator interfaces.
This position is ideal for a seasoned engineer who thrives at the intersection of software and hardware, enjoys solving complex control and kinematic problems, and has a proven track record of building highly deterministic, proprietary systems for demanding industrial CNC environments.
Key Responsibilities
- System Architecture & Implementation: Design, implement, and maintain scalable C/C++ software architectures for real-time motion control, machine coordination, and core system services.
- Embedded Linux Development: Develop and optimize custom hardware abstraction layers, real‑time modules, and deterministic software components within an embedded Linux/RTOS environment.
- Motion Control & Control Theory: Implement and refine advanced servo control loops, kinematics, trajectory planning, and complex motion algorithms.
- EtherCAT Integration: Architect and optimize reliable EtherCAT communication networks for drives, remote I/O modules, sensors, and distributed control systems (integrating commercial or proprietary EtherCAT master solutions).
- UI/UX Integration: Develop and maintain Qt‑based applications (Qt Widgets or QML) for seamless operator interfaces, advanced diagnostic tools, and configuration utilities.
- Cross-Functional Collaboration: Partner closely with mechanical, electrical, and controls engineering teams to define rigorous system requirements and ensure flawless hardware/software integration.
- Performance Optimization: Analyze and dramatically improve system determinism, latency, and reliability in strict real‑time environments.
- Full-Stack Debugging: Troubleshoot and resolve highly complex issues across the entire stack - from real‑time kernel threads and custom drivers to EtherCAT networks and UI layers.
- Technical Leadership: Support architecture design, mentor junior engineers, and produce highly detailed technical documentation.
Required Qualifications
- Bachelor's degree in Computer Science, Electrical Engineering, Robotics, or a closely related field.
- 7 to 10 years of professional, hands-on experience in C/C++ software development.
- Extensive experience with Embedded Linux, multithreading, and real‑time programming (e.g., PREEMPT_RT, Xenomai, or custom RTOS).
- Deep understanding of CNC architectures, control theory, and motion control systems.
- Proven, practical experience integrating and optimizing EtherCAT networks in a high-performance industrial setting.
- Proficiency with Qt (or similar frameworks) for UI/UX development.
- Advanced debugging and profiling skills using tools such as gdb, perf, Wireshark, or hardware logic analyzers.
- Demonstrated ability to translate highly complex mechanical and electrical requirements into robust, maintainable software architectures.
Preferred Qualifications
- Advanced degree (Master's or Ph.D.) in an engineering discipline focused on robotics or control theory.
- Subject matter expertise in multi-axis machine tool behavior, advanced kinematics, and high-speed trajectory generation.
- Experience configuring and deploying custom embedded Linux distributions (e.g., Yocto, Buildroot).
- Experience with modern build systems and CI/CD pipelines (CMake, Meson, Jenkins, etc.).
- Strong understanding of industrial machine safety concepts and functional safety standards.
Personal Attributes
- Exceptional analytical and problem‑solving skills with a systems-level mindset.
- Highly comfortable leading technical initiatives within multidisciplinary engineering teams.
- Self‑motivated and detail‑oriented, with the capacity to take full ownership of complex, mission-critical projects.
- Clear, definitive communicator who can articulate architectural decisions to both technical and non-technical stakeholders.
Requirements added by the job poster
- Bachelor's Degree or higher
- Working in an onsite setting
- 7+ years of work experience with C/C++
- 7+ years of Software Development experience in an embedded or real-time environment