C

Cadence Design Systems

Develops EDA software, IP, verification tools

Principal Software Engineer - Graphics

Desktop Application DevelopmentConfirmed live in the last 24 hours
Full-timeShanghai, ChinaNo salary listedRemote

About the Job

Requirements

  • A bachelor's or master's degree in Computer Science, Mechanical Engineering, Computational Engineering, Computer-Aided Engineering, Applied Mathematics, or a related engineering discipline is required.
  • At least 10 years of software engineering experience delivering commercial or enterprise desktop applications, preferably in engineering, CAD/CAE, scientific visualization, or graphics-intensive software domains.
  • Strong experience developing graphics or visualization features, including rendering workflows, interactive model display, view manipulation, selection, highlighting, annotations, and graphics performance improvements.
  • Strong hands-on experience with C++ in production-quality desktop application development.
  • Experience implementing graphics components that integrate with geometry kernels, rendering services, data models, visualization pipelines, and product workflows.
  • Experience with graphics and visualization technologies such as VTK, Ogre, OpenGL, DirectX, Vulkan, HOOPS, OpenSceneGraph, or equivalent rendering frameworks used in engineering applications.
  • Understanding of scene graphs, rendering pipelines, mesh visualization, camera/view transformations, picking/selection, clipping, transparency, lighting, materials, and large-model visualization concepts.
  • Experience diagnosing graphics defects, rendering artifacts, UI responsiveness issues, memory leaks, threading problems, and performance bottlenecks in complex desktop applications.
  • Experience with Windows desktop application development and graphics behavior across different hardware and display configurations.
  • Experience optimizing rendering performance for large engineering models, including level-of-detail strategies, batching, culling, GPU resource management, and frame-rate analysis.
  • Strong proficiency in C++ for graphics-enabled engineering software development.
  • Hands-on experience with graphics programming concepts such as rendering pipelines, scene graphs, model display, camera/view transformations, picking, selection, highlighting, clipping, transparency, lighting, materials, and display updates.
  • Knowledge of mesh and geometry visualization, tessellation, finite element model display, contour plots, scalar/vector field visualization, annotations, color maps, and engineering post-processing workflows.
  • Experience optimizing rendering performance for large-scale engineering models, including level-of-detail, batching, frustum/occlusion culling, GPU memory usage, draw-call reduction, and frame-rate analysis.
  • Strong debugging skills using tools such as Visual Studio Debugger, WinDbg, GDB, LLDB, crash dump analysis, stack traces, graphics debuggers, logging frameworks, and diagnostic instrumentation.
  • Experience with memory, performance, and graphics diagnostics using tools such as Valgrind, AddressSanitizer, ThreadSanitizer, Intel VTune, Windows Performance Analyzer, Linux perf, RenderDoc, NVIDIA Nsight, AMD Radeon GPU Profiler, or similar profiling tools.
  • Familiarity with automated testing strategies for graphics components, including regression testing, image comparison, performance validation, and platform/hardware compatibility testing.
  • Strong communication and collaboration skills.
  • Problem-solving and analytical thinking.
  • Ability to work independently and in a team environment.

Responsibilities

  • Design, develop, and maintain graphics and visualization capabilities for engineering desktop applications, emphasizing reliability, usability, performance, and maintainability.
  • Implement graphics features related to rendering, model display, selection, interaction, view manipulation, annotation, color mapping, and visualization workflows.
  • Work with graphics frameworks, rendering pipelines, and visualization libraries to support product requirements and improve user workflows.
  • Analyze and resolve graphics defects, rendering issues, performance bottlenecks, memory problems, and platform-specific visualization behavior.
  • Collaborate with architects and principal engineers on design direction while taking ownership of assigned components and feature implementation.
  • Support code reviews, technical discussions, test planning, and integration activities for graphics-related features.
  • Provide technical guidance to junior engineers when needed while continuing to contribute as a hands-on developer.

About the Company

Cadence Design Systems

Develops EDA software, IP, verification tools

Cadence Design Systems supplies software, hardware, and IP for electronic design automation (EDA) to help customers create advanced semiconductor chips and electronic systems. Its tools handle system design, verification, digital and analog IC design, and custom flows, while IP such as Tensilica processors and DSP cores can be licensed for integration into customer products. The offerings are delivered as software licenses with maintenance and support, plus IP licensing and occasional hardware-accelerated options. The company differentiates itself with a broad, end-to-end EDA portfolio and close collaboration with industry leaders to streamline the path from concept to silicon, aiming to help customers bring sophisticated silicon and electronics to market faster with lower risk and higher productivity.

Company size
10,001+
Company stage
IPO
Headquarters
San Jose, CA
Founded
1988

Recently Posted Jobs

Explore more opportunities at Cadence Design Systems

See more jobs