Software Engineer II (Preprocessing)

Cadence•Published 15 hours ago•First seen 4 hours ago

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.

Position Summary
We are seeking a Software Engineer II to contribute to the development and maintenance of CAE pre-processing capabilities for MSC Apex. Working with guidance from senior engineers, this role will support model setup, entity management, materials, properties, connections, loads, boundary conditions, solver deck preparation, validation, and workflow automation. The position is well suited to an early-career engineer or recent master’s graduate who has a strong foundation in software development and engineering analysis, is eager to learn CAE workflows, and can collaborate with engineering, QA, and product teams to deliver reliable, maintainable solutions.
Key Responsibilities
  • Develop, test, debug, and maintain CAE pre-processing features for engineering simulation products under the guidance of senior engineers.
  • Contribute to model setup workflows involving entity organization, materials, properties, loads, boundary conditions, connections, coordinate systems, units, and solver-specific preparation.
  • Participate in design discussions, code reviews, defect analysis, testing, and performance improvement activities.
  • Collaborate with senior engineers, QA, product management, and other team members to understand requirements and implement practical technical solutions.
  • Write clear, maintainable code and unit tests while following established design patterns, coding standards, and development processes.
  • Investigate and resolve assigned workflow defects, solver setup issues, validation failures, data consistency problems, and customer-reported issues with appropriate guidance.
  • Document designs and implementation details, communicate progress and risks, and continuously build knowledge of CAE workflows and software engineering practices.
Required Qualifications
Education
• Bachelor’s or Master’s degree in Computer Science, Mechanical Engineering, Computational Engineering, Computer-Aided Engineering, Applied Mathematics, or a related engineering discipline.
Experience
  • Bachelor’s degree with approximately 2–4 years of relevant software engineering experience, or a relevant master’s degree with little to no professional experience.
  • Foundational understanding of object-oriented programming, data structures, algorithms, and software development principles.
  • Academic or project experience developing software in C++, preferably for engineering, scientific, simulation, or data-intensive applications.
  • Exposure to CAE, finite element analysis, simulation workflows, computational mechanics, or scientific computing through coursework, research, or projects.
  • Basic familiarity with model preparation concepts such as materials, properties, loads, boundary conditions, coordinate systems, connections, and solver inputs is preferred but not required.
  • Exposure to CAE products or simulation platforms such as MSC Apex, Patran, Adams, Nastran, Marc, Abaqus, ANSYS, HyperWorks, or equivalent technologies is a plus.
  • Demonstrated ability to learn new technologies, troubleshoot technical problems, incorporate feedback, and work effectively within an engineering team.
  • Familiarity with AI-assisted software development tools such as GitHub Copilot, Cursor, or similar tools is desirable.
Technical Skills
  • Working knowledge of C++ and object-oriented programming, with the ability to write, test, and debug clear and maintainable code.
  • Familiarity with software development on Windows or Linux; exposure to both platforms is preferred.
  • Basic understanding of engineering data structures, entity relationships, attributes, materials, properties, sets, groups, coordinate systems, units, or similar domain concepts.
  • Exposure through coursework or projects to loads, boundary conditions, constraints, contacts, connections, assemblies, part organization, or solver case definitions is beneficial.
  • Understanding of software validation, input checking, data consistency, error handling, and user-focused diagnostic messages.
  • Basic debugging skills using an integrated development environment such as Visual Studio or comparable tools, including breakpoints, stack traces, logs, and crash diagnostics.
  • Awareness of memory management, performance considerations, and concurrency concepts in C++ applications.
  • Ability to contribute to existing APIs, software components, and workflow services by following established designs and coding standards.
  • Familiarity with source control, build processes, code reviews, unit testing, and defect-tracking practices.
  • Understanding of automated testing concepts, including unit, regression, and data-validation tests.
  • Working knowledge of Python or another scripting language for automation, prototyping, validation, or log analysis is desirable.
Soft Skills
  • Strong communication and collaboration skills.
  • Problem-solving and analytical thinking.
  • Ability to work independently and in a team environment.
  • Strong organizational and time-management skills.N/A

    We’re doing work that matters. Help us solve what others can’t.