Our client is an innovative machinery manufacturing company pioneering advancements in 3D metal printing technology. By creating high-volume and environmentally sustainable manufacturing solutions, they are transforming how industrial parts are produced. Working with contract manufacturers, they specialize in printing large-scale, high-precision parts. Their engineering team, consisting of software, mechanical, optical, and controls engineers, is expanding, and they are seeking a Principal Software Engineer to drive the development of their cutting-edge products.
Our client is looking for a Principal Software Engineer to join their team and play a pivotal role in the development of embedded software for next-generation 3D metal printing machinery. The ideal candidate will bring advanced experience in C++ development, especially in deterministic real-time (hard RTOS) systems, and have proven expertise in motion control systems. As the Principal Software Engineer, you will also mentor and lead engineers, contributing to the system architecture while collaborating with other engineering disciplines to ensure optimal product integration and functionality.
Responsibilities:
Design, develop, and optimize embedded software systems for high-performance 3D metal printing machinery. Lead the design and development of deterministic, real-time C++ software for motion control and embedded systems. Utilize advanced Object-Oriented Design (OOD) and Object-Oriented Analysis (OOA) principles to ensure scalable and maintainable software architectures. Work closely with cross-functional teams, including mechanical, optical, and controls engineers, to ensure software meets hardware requirements and integrates seamlessly. Mentor and guide junior and senior engineers in best practices for software development, ensuring strong adherence to development processes and clean, reusable code. Manage software development efforts across the full Software Development Life Cycle (SDLC), ensuring the delivery of high-quality software on time. Foster a psychologically safe environment where team members feel encouraged to share ideas and collaborate openly. Collaborate with stakeholders to assess risks, make trade-offs, and align on long-term development plans. Develop and program multi-axis motion controllers (e.g., Galil, ACS) with a focus on EtherCAT motion controller systems. Maintain a strong commitment to developing software that is reusable, clean, and well-documented.Requirements:
4-year degree in Computer Science, Electrical Engineering, Mechanical Engineering, or a relevant technical field. 7+ years of relevant experience in embedded software development, specifically with real-time systems and motion control. Advanced C++ development experience, particularly with deterministic (hard) real-time systems. Strong knowledge of Object-Oriented Design (OOD) and Object-Oriented Analysis (OOA). Experience with the Software Development Life Cycle (SDLC), from design through deployment. Proven track record of successfully mentoring and developing both junior and senior-level software engineers. Experience working cross-functionally with stakeholders to manage risks, make trade-offs, and align on long-term product development plans. Ability to foster a psychologically safe environment where team members feel comfortable sharing creative ideas and collaborating effectively. Commitment to producing clean, well-defined, and reusable code. Experience programming multi-axis motion controllers (e.g., Galil, ACS, or similar) with EtherCAT being a significant advantage.Preferred Qualifications:
Experience in Additive Manufacturing or 3D printing technologies. Master’s degree in Computer Science, Mechanical Engineering, Electrical Engineering, or a related technical field. Familiarity with PLC programming (e.g., structured text, ladder logic). Experience in high-precision, micron-scale motion control software development.