Software Engineer
Indexed description
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
- 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
- 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
- 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
The role also works with external partners, including OEM and technology partners, and collaborates with globally distributed teams.
Essential
Qualifications & Experience
- 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
- 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
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
Create a free Caio profile to unlock more results and save your role and location preferences.
Unlock free search