Principal Software Engineer
About the role
Position Overview
The Software Engineer designs, develops, and maintains functionality within the 3DCS software platform. The role delivers new features, enhancements, and corrective maintenance to a high standard of quality, performance, usability, and maintainability, while protecting the integrity of a long-lived code base and the intellectual property it represents.
The position works autonomously within an assigned scope and is expected to operate across several modules of the product rather than a single component. Architecturally significant decisions and cross-cutting change are proposed and reviewed with the Software Development Technical Lead and the Principal Software Engineer, who own the platform architecture. The role is a full individual contributor position with no line management or budget responsibility.
3DCS is a dimensional variation analysis platform. The role therefore combines software engineering with an applied engineering domain – geometric dimensioning and tolerancing, tolerance analysis, and variation simulation. Depth in that domain is not required on arrival and is built on the job through structured mentoring, but a demonstrated capacity to learn an unfamiliar technical domain to a working level is essential.
Key Responsibilities
Translating functional requirements into technical solutions
Contribute to the functional analysis of user needs, working with Product Management and application engineering
Study the technical feasibility and the implementation options for planned functionality
Contribute to the preparation and drafting of technical specifications for assigned features
Participate in effort estimation and commit to the agreed scope
Support other team members in responding to requests raised by customer representatives
Design and development
Analyze and develop functionality in the languages and frameworks used by the platform, principally C++ for the engine and its associated GUI and tooling layers
Work in several components of the product, applying the established architecture, coding conventions, unit handling and file format rules
Document code and complete technical documentation
Use the development, build, version control and defect tracking tooling provided
Report progress and remaining work regularly and proactively
Identify architectural risk and escalate architecturally significant change to the Technical Lead or Principal Software Engineer for review before implementation
Software quality
Define the test protocols and scenarios needed to verify that delivered capability conforms to the stated requirement
Execute and analyze tests, including regression and numerical accuracy checks in owned areas
Perform evolutive and corrective maintenance, including components not written by the incumbent
Provide Level 3 support for customer issues in owned areas
Participate in the piloting and validation phase of a release at the customer
Team contribution
Pass on knowledge and skills to support multidisciplinary capability within the development team
Propose technical improvements and innovations
Support and train new joiners, and act as tutor for an apprentice or an intern
Participate in code review as both author and reviewer
Leadership & Collaboration
The role carries no line authority. It contributes through technical credibility, reliable delivery, and knowledge sharing within the development team.
The role also works with external partners, including OEM and technology partners, and collaborates with globally distributed teams.
Qualifications & Experience
Essential
Master’s degree in Computer Science, Software or Mechanical Engineering, Mathematics, Physics, or a related field; a Bachelor’s degree with equivalent demonstrated experience will be considered
Minimum three years of professional software development experience in the languages used by commercial software products
Strong object-oriented design ability and working proficiency in a compiled language, with proficiency in C++ or a demonstrated ability to reach it
Mastery of software development methods and tooling, including version control, continuous integration, defect tracking and automated testing
Mastery of the software development lifecycle
Ability to work in several components of a long-lived commercial code base, and to acquire working knowledge of its base structure
Evidence of having learned an unfamiliar technical domain to a working level
Advanced understanding of the business environment and of how the company operates
Advantageous
Dimensional engineering: GD&T to ASME Y14.5 or ISO GPS, tolerance analysis, variation simulation
Applied mathematics and numerical methods: computational geometry, linear algebra, statistics and Monte Carlo methods, numerical solvers
CAD or geometry kernel integration
Multi-threaded and cross-platform development
Practical knowledge of manufacturing and assembly processes
Experience of performance-critical numerical code
Developed on the job
Applied working knowledge of dimensional variation analysis, sufficient to implement, test and support features in the engine and its modules, is developed within the first six to twelve months through structured mentoring by the Software Development Technical Lead and the Principal Software Engineer. Candidates are selected on the essential requirements above and on demonstrated learning capacity, not on prior familiarity with a specific commercial variation analysis tool.
Key Skills
Manages own priorities, organizes the work, and communicates in order to secure objectives
Identifies the means required for own activities
Gives and receives feedback
Open to the expertise of others and share own expertise
Able to teach and explain
Demonstrates leadership without formal authority
Strong problem solving and analytical thinking
Responsibilities
- Translating functional requirements into technical solutions
- Contribute to the functional analysis of user needs
- Study the technical feasibility and implementation options
- Contribute to the preparation of technical specifications
- Participate in effort estimation and commit to scope
- Support team members in customer requests
- Analyze and develop functionality in C++
- Document code and complete technical documentation
Qualifications
- Master’s degree in Computer Science, Software or Mechanical Engineering, Mathematics, Physics, or related field
- Minimum three years of professional software development experience
- Strong object-oriented design ability and proficiency in C++
- Mastery of software development methods and tooling
- Ability to work in several components of a long-lived commercial code base
- Evidence of learning an unfamiliar technical domain
Skills mentioned
About Sandvik
Sandvik is a global, high-tech engineering group providing solutions that enhance productivity, profitability and sustainability for the manufacturing, mining and infrastructure industries. We are at the forefront of digitalization and focus on optimizing our customers’ processes. Our world-leading offering includes equipment, tools, services and digital solutions for machining, mining, rock excavation and rock processing. In 2024, the Sandvik Group had approximately 41,000 employees, sales in more than 150 countries and revenues of about SEK 123 billion.