Sr. Software Architect - Machine Systems
- North America
CNC Software, Inc. is looking for a Sr. Software Architect 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 Senior Software Architect, you will split your time between developing software on your team and working with cross-team groups to address product- wide issues and practices. Most of your time will be spent as a senior developer on your team, tackling complex, high-impact projects that drive your team’s work forward.
You will be responsible for developing solutions to significant, product-wide challenges. You will work across teams to implement these solutions. You will stay up to date with the latest developments in software engineering and with the changes in C++, C#, or both.
In addition to the work on your team, you will work as a member of the Architecture Team to identify and prioritize issues that need to be addressed across teams. These issues include the development of libraries used company- wide, the creation of patterns for implementing features, and the development of best practices. After these issues are identified, you will serve on a cross-team working group that is tasked with designing a solution, receiving buy-in from the larger architecture team, and then implementing that solution.
Essential Duties & Responsibilities:
- Design, develop, and test software to resolve critical defects and implement complex user stories
- Meet weekly with the Architect Team to identify and prioritize cross-team issues and approve proposed solutions
- Chair or contribute to a working group charged with developing a solution to large-scale, cross-team issues
- Identify projects within your team that should be brought to the Architecture Team for wider review issue
- 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
- Mentor other developers to help build their software engineering expertise
Minimum Requirements & Qualifications:
- Bachelor’s Degree or higher in Computer Science, Mathematics, or Engineering or equivalent experience
- 10-14 years’ experience in developing commercial applications in C# or C++ and working with large codebases
- Experience developing for Microsoft Windows using Visual Studio
- Experience with standard software development practices such as source control, peer reviews & unit testing
- Experience with agile software development and strong understanding of object-oriented development
- Strong knowledge of software development concepts such as design patterns and code smells
- Team player who can clearly communicate with both technical and non-technical co-workers
- Strong ability to design and implement large-scale software projects and drive them to completion
- A track record of delivering well-designed, high-quality software
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.