CNC Software, publishers of Mastercam, is looking for a Software Engineer to join our Turning team. This team is responsible for ongoing development of systems which generate toolpath motion for a wide range of turning, mill-turn, and swiss style machines. These systems include job setup, tool loading, and workflow strategies. The team works closely with other teams, especially those providing machine tool kinematics, NC code generation engines, and virtual machine simulation environments. Project work is varied and focused on building new capabilities for Mastercam, the world’s most popular CAD/CAM system. New development is proven in our in-house Machine lab, which features many state-of-the-art machine tools, so there is the opportunity to see your work used in a real-world environment. Good teamwork is key to our team’s success.
As a member of our turning toolpath team, you will be responsible for taking ownership of user stories and defects prioritized by the team’s Product Owner. You will participate in planning meetings related to your areas of expertise. You will work with your team to correctly size and accurately detail stories and defects. You will use modern development practices to tackle complex projects in large codebases.
To succeed in this role, you will need to have a strong understanding of software engineering best practices, including design patterns and the SOLID and DRY principles. You will need to be comfortable diving into a large, legacy codebase and making changes to streamline, improve, and to add on existing processes.
Essential Duties & Responsibilities:
- Act as lead on large-scale projects within the team, ensuring clean and correct integration, driving to completion.
- Design, develop, and test software to resolve defects and implement user stories prioritized by the team’s Product Owner.
- Work with team in writing, correctly sizing, and accurately detailing and breaking down stories and defects.
- Maintain and update existing codebase.
- Communicate project status regularly with all necessary stakeholders.
- Actively participate in planning meetings related to assigned areas.
- Coordinate with other developers to decide how best to implement changes requested by the team’s Product Owner.
- Conduct peer reviews.
- Utilize modern development practices to solve complex problems related to the team’s domain.
- Continuously work to develop and maintain a deep expertise in your team’s area of responsibility.
- Mentor other developers to help build their software engineering expertise.
Minimum Requirements & Qualifications:
- 6-9 years’ experience in developing commercial applications in C++.
- Bachelor’s Degree or higher in Computer Science, Mathematics, or Engineering, or equivalent experience.
- Strong math skills related to computational geometry.
- Strong understanding of object-oriented development.
- Experience developing for Microsoft Windows using Visual Studio.
- Experience with standard software development practices such as source control, peer reviews, and unit testing.
- Experience with agile software development.
- Team player who can clearly communicate with both technical and non-technical co-workers.
- Strong ability to design and implement large-scale software projects.
- Familiar with design patterns and the C++ standard library.
It’s a Plus If:
- You have experience in software development with CAM software, especially with toolpath generation.
- You have experience with CNC machining.
- You have experience writing multithreaded applications.
CNC Software, Inc. is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, religion, creed, color, national origin, alienage or citizenship status, sex, sexual orientation, gender identity or expression, transgendered status, partnership status, caregiver status, age, ancestry, physical, intellectual, learning or mental disability, pregnancy, childbirth or related condition, genetic information, medical condition including medical characteristics, marital or civil union status, familial status, veteran or military status , use of tobacco or other lawful products off premises and during non-working hours, or any other classification protected by applicable local, state or federal laws.
EOE/M/F/Vet/Disabled are encouraged to apply.
We are an E-Verify Employer.