CNC Software is looking for a Software Engineer to join our machine systems team. This team is responsible for providing a flexible foundation to define different machines and controls for CNC machines, and to handle post processing for the toolpath data.
As a member of our machine systems 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:
- Design, develop, and test software to resolve defects and implement user stories
- Propose and implement designs for large-scale projects within the scrum team
- Coordinate with other developers to ensure the success of large-scale team projects
- Communicate project status regularly with all necessary stakeholders
- Assist in writing, sizing, and breaking down user stories and defects
- Conduct peer reviews
- Evaluate and recommend tools, technologies, and processes for software development
Who You Are:
- You have a Bachelor’s Degree in Computer Science, Mathematics, or Engineering or equivalent experience
- You have 6-9 years’ experience in developing commercial applications in C++; C# experience a plus
- You have experience with agile software development & strong understanding of object-oriented development
- You have previous experience developing for Microsoft Windows using Visual Studio
- You have experience with standard software development practices such as source control, peer reviews & unit testing
- You have a strong ability to design and implement large-scale software projects
It’s a Plus If:
- You have experience in software development with CAM software, especially with post processing
- You’re familiar with parsing engines or interpreters
- You have experience with CNC machining, especially dealing with NC code and machine environments
- You have knowledge of kinematics and 3D transformations
- You are familiar with design patterns and the C++ standard library
- 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 age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances.
EOE/M/F/Vet/Disabled are encouraged to apply.
We are an E-Verify Employer.