Principal Software Engineer

Sandvik
Detroit, MI, United StatesFull-timePosted Sep 10, 2026

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

C++System DesignDebuggingPerformance OptimizationGitCI/CDSoftware TestingUnit TestingConcurrencyMultithreading

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.

Mining10,001+ employeesStockholm, Stockholm