Principal Software Engineer (Postprocessing)
At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.
Position SummaryWe are seeking a Principal Software Engineer with deep expertise in CAE post-processing to provide technical leadership for MSC Apex and related simulation results workflows. This role is responsible for designing, developing, and guiding capabilities for result import, result case management, scalar/vector/tensor visualization, contouring, XY plotting, animation, result probing, derived calculations, min/max extraction, result comparison, reporting, and automated post-processing of large-scale engineering simulation data. The successful candidate will act as a senior individual contributor and technical authority, partnering across engineering, architecture, QA, and product teams to deliver accurate, scalable, performant, and maintainable post-processing solutions aligned with customer engineering workflows.
Key Responsibilities
- Architect, design, and develop CAE post-processing capabilities for engineering simulation products, ensuring accurate result interpretation, interactive performance, scalability, robustness, and maintainability.
- Provide technical leadership for result readers, result data models, result case/load step/time step management, contour plots, XY plotting, animations, result probing, derived result calculations, reporting, and solver-specific result interpretation.
- Serve as a senior technical authority for design reviews, feasibility analysis, risk assessment, debugging, performance optimization, and long-term architecture decisions.
- Collaborate with product management, architecture, QA, program management, and engineering teams to translate customer workflow needs into actionable technical solutions.
- Guide and mentor engineers on post-processing architecture, results data models, solver output handling, visualization patterns, numerical validation, regression testing, design quality, and engineering best practices.
- Investigate complex result interpretation issues, visualization defects, plotting errors, data synchronization problems, performance bottlenecks, and customer-reported post-processing issues, driving them to resolution.
- Contribute to technical roadmaps and communicate design tradeoffs, technical risks, and implementation plans clearly to stakeholders and leadership.
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
- 12+ years of software engineering experience delivering commercial or enterprise engineering software, preferably in CAE, simulation results, post-processing, visualization, or scientific computing domains.
- Deep expertise in CAE post-processing workflows, including result import, result case management, scalar/vector/tensor handling, contouring, XY plotting, animation, result probing, derived calculations, result comparison, report generation, and solver-specific result interpretation.
- Deep understanding of CAE results data structures, result cases, load steps, time steps, modes, scalar/vector/tensor data, coordinate systems, units, result transformations, and result metadata.
- Hands-on experience implementing workflows for contouring, XY plotting, animations, result probing, min/max extraction, derived result calculations, result comparison, report generation, and automated post-processing.
- Strong background in C++ software development for large-scale engineering, scientific, CAE, graphics, visualization, or data-intensive desktop applications.
- Experience designing and implementing post-processing services, result readers, result databases or data models, plotting frameworks, contouring workflows, animation workflows, report generation pipelines, and production-quality simulation results components.
- Working knowledge of solver output formats, transient and frequency-domain results, scalar/vector/tensor result handling, result transformations, units, coordinate systems, and customer-driven usability requirements.
- Experience with CAE products or simulation platforms such as MSC Apex, Patran, Adams, Nastran, Marc, Abaqus, ANSYS, HyperWorks, ParaView, Tecplot, or equivalent technologies.
- Experience optimizing post-processing operations for performance, memory usage, scalability, responsiveness, and interactive visualization of large simulation result datasets.
- Practical experience using AI-assisted software development tools such as GitHub Copilot, Cursor, or similar tools to improve coding productivity, code review efficiency, documentation, and engineering workflows.
- Strong proficiency in C++ for high-performance CAE post-processing, simulation result handling, solver output interpretation, plotting, visualization, or scientific computing applications.
- Required expertise in VTK and related visualization technologies, with practical experience applying rendering pipelines, actors/entities, scene graphs, cameras, picking/selection, overlays, and interaction models to CAE post-processing workflows.
- Strong understanding of 4D graphics fundamentals, including transformations, coordinate systems, mesh topology, level of detail, culling, clipping, transparency, texture mapping, shader concepts, GPU memory usage, and frame-rate optimization.
- Experience diagnosing graphics issues across Windows and Linux environments, including driver/runtime differences, GPU compatibility problems, rendering artifacts, memory leaks, crashes, and performance bottlenecks.
- Hands-on development experience on both Windows and Linux platforms, including platform-specific debugging, build, deployment, graphics/runtime diagnostics, and performance analysis.
- Strong debugging skills using tools such as Visual Studio Debugger, WinDbg, GDB, LLDB, core dump analysis, crash dump analysis, stack traces, logging frameworks, and diagnostic instrumentation.
- Experience with memory, performance, graphics, and concurrency diagnostics using tools such as Valgrind, AddressSanitizer, ThreadSanitizer, UndefinedBehaviorSanitizer, Intel VTune, Windows Performance Analyzer, Linux perf, GPU/graphics profilers, and similar profiling tools.
- Familiarity with automated testing strategies for post-processing workflows using Python, including regression tests, numerical result validation, visualization baselines, solver result comparison, benchmark models, and customer model validation.
- 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.

