Siemens PLM Software, Inc. Software Engineer in Troy, Michigan
JOB DUTIES: Design, develop, modify, and maintain NX CAM Toolpath generation software used to drive CNC (Computer Numerical Control) milling machines using C++ programming language and object-oriented design. Ensure overall functional quality of the NX CAM software before release to customers. Develop complex algorithms used to generate gouge-free toolpath from input geometry and other supplied parameters. Provide solutions to software techniques like multi-threading to ensure competitive performance. Create, document, and execute software designs involving complicated workflows using UMLs and interaction between new and existing modules. Responsible for all aspects of the development including coordinating work, interacting with testers, Product management, business owners, stakeholders, and others as required. Ensure software quality through development of automated testing. Demonstrate the software functionality through working test increments and provide improvements.