Principal Software Engineer- Machine Automation
IPG Photonics · Fridley, MN · 1 mo ago
On-siteEngineeringFull-time
About the role
The Principal Software Engineer will contribute to the development of advanced laser-based manufacturing systems for IPG’s Material Processing Systems Group. This role involves designing, implementing, and supporting software solutions for IPG’s laser processing equipment, while also providing technical leadership and mentoring.
Responsibilities
- Analyze machine requirements, customer requests, and engineering specifications to develop software solutions for laser-based material processing systems.
- Design, implement, test, and maintain software features within established machine control architectures.
- Serve as a technical leader and subject matter expert within assigned projects and areas of responsibility, providing technical guidance and collaborating with other principal engineers to align engineering standards and implementation approaches.
- Mentor junior and mid-level engineers through design reviews, code reviews, troubleshooting, and technical guidance.
- Collaborate with electrical, mechanical, controls, and applications engineers to deliver integrated machine solutions.
- Support machine integration, testing, validation, and commissioning activities during machine builds.
- Provide technical leadership for assigned projects and coordination during machine build, integration, commissioning, and acceptance activities, ensuring software deliverables are executed according to project objectives and engineering standards.
- Diagnose and resolve complex system-level issues involving software, motion control, machine vision, communications, and hardware integration.
- Drive software quality through adherence to coding standards, testing practices, and maintainability guidelines.
- Evaluate and implement improvements to existing machine architectures, software frameworks, and development processes.
- Support field service teams and customers in resolving advanced software and machine performance issues.
- Participate in customer visits and occasional domestic or international travel to support installations and project execution.
Requirements
- 15+ years professional software engineering experience.
- Demonstrated experience leading technical projects and mentoring engineers.
- Bachelor's degree in Computer Science, Electrical Engineering, or a related field. Master's degree, a plus.
- Demonstrated history of solving complex technical challenges in industrial automation, CNC, robotics, or manufacturing systems.
- Expert proficiency in Microsoft C#/.NET development.
- Experience developing industrial automation, CNC, robotics, or precision automation equipment software.
- Strong understanding of multithreaded and distributed systems.
- Experience integrating motion control systems, machine vision systems, and industrial hardware.
- Ability to manage multiple projects and priorities in a fast-paced manufacturing environment.
- Experience with Application Lifecycle Management (ALM) tools such as Microsoft Azure DevOps and Git.
- Strong understanding of object-oriented design principles and software development best practices.
- Strong troubleshooting skills at an overall system level (software, electrical and mechanical).
- Strong professional organization and task priority skills.
- Experience with advanced software testing technologies in .NET.
- Experience using a PC to interface with external sensors and control peripheral devices via vendor SDK, serial or TCP/IP communications.
- Experience with web services and APIs including ASP.NET, JSON, and RESTful interfaces.
- Experience developing automated manufacturing equipment, particularly factory-connected systems and Industry 4.0 solutions.
- Experience with databases (Microsoft SQL Server).
- Experience with motion control systems (Aerotech A3200, Aerotech Automation 1, ACS).
- Experience with machine vision (Dalsa/Sapera/Sherlock, Cognex, Matrox).
Pay
The pay range on this posting applies to the role in the primary location specified. If the candidate would ultimately work outside of the primary location posted, the applicable range could differ. Actual starting pay is determined by a number of factors including relevant skills, qualifications, and experience.