Note: The job is a remote job and is open to candidates in USA. Mastercam develops software and algorithms that support precision manufacturing and CNC machining. The Senior Software Engineer will join the toolpath systems development team to create and optimize algorithms that improve the efficiency and quality of milling-machine toolpath motion, while applying advanced mathematical and software engineering skills.
Responsibilities
- Strong understanding of the tradeoffs between Object Oriented and Functional Programming
- Experience with Data-Parallel Programming
- Strong handle on Linear Algebra and Computational Geometry
- Strong experience with Mesh and Voxel Mesh generation and optimization
- Familiar with iterative computational techniques, such as the Conjugant Gradient Method
- Comfortable with standard software development practices such as source control, peer reviews, and unit testing
- Able to clearly communicate with both technical and non-technical coworkers
- Demonstrates a collaborative mindset, treating knowledge as a shared, communal resource
- Bachelor’s Degree in Computer Science, Mathematics, or Engineering
- 10-14 years of experience building commercial software in C++
- Worked in an agile (Scrum, Kanban) software development environment before
- Experience with CNC machining
- Experience writing GPGPU or SIMD code
- Familiar with Parallel C++ Design Patterns and the C++ Standard Library
- Experience with Computational Physics algorithms
- Knowledge of 3/5-axis machining algorithms for roughing and finishing
- Experience with Volumetric and Surface Mesh Processing
- Experience with FEM as applied to physics-based machining
- Graduate degree in Computer Science, Mathematics, or Engineering
Skills
- Strong understanding of the tradeoffs between Object Oriented and Functional Programming
- Experience with Data-Parallel Programming
- Strong handle on Linear Algebra and Computational Geometry
- Strong experience with Mesh and Voxel Mesh generation and optimization
- Familiar with iterative computational techniques, such as the Conjugant Gradient Method
- Comfortable with standard software development practices such as source control, peer reviews, and unit testing
- Able to clearly communicate with both technical and non-technical coworkers
- Demonstrates a collaborative mindset, treating knowledge as a shared, communal resource
- Bachelor's Degree in Computer Science, Mathematics, or Engineering
- 10-14 years of experience building commercial software in C++
- Worked in an agile (Scrum, Kanban) software development environment before
- Experience with CNC machining
- Experience writing GPGPU or SIMD code
- Familiar with Parallel C++ Design Patterns and the C++ Standard Library
- Experience with Computational Physics algorithms
- Knowledge of 3/5-axis machining algorithms for roughing and finishing
- Experience with Volumetric and Surface Mesh Processing
- Experience with FEM as applied to physics-based machining
- Graduate degree in Computer Science, Mathematics, or Engineering
Company Overview