
Principal Software Engineer (Graphics)
Cadence Design Systems3 days ago
Remote, China or Shanghai, ChinaStaff+
Responsibilities
- Design, develop, and maintain graphics and visualization capabilities for engineering desktop applications.
- Implement rendering, model display, selection, interaction, view manipulation, annotation, color-mapping, and visualization features.
- Integrate graphics components with geometry kernels, rendering services, data models, visualization pipelines, and product workflows.
- Diagnose and resolve rendering defects, performance bottlenecks, memory problems, threading issues, and platform-specific visualization behavior.
- Optimize rendering for large engineering models using level of detail, batching, culling, GPU resource management, and frame-rate analysis.
- Collaborate on architecture, design direction, code reviews, test planning, and integration activities.
- Provide technical guidance to junior engineers while remaining a hands-on developer.
Requirements
- Bachelor’s or Master’s degree in Computer Science, Mechanical Engineering, Computational Engineering, Computer-Aided Engineering, Applied Mathematics, or a related engineering discipline.
- 10+ years of software engineering experience delivering commercial or enterprise desktop applications.
- Strong experience developing graphics or visualization features, including rendering workflows, interactive model display, view manipulation, selection, highlighting, annotations, and performance improvements.
- Strong hands-on production experience with C++ for desktop application development.
- Experience with graphics technologies such as VTK, Ogre, OpenGL, DirectX, Vulkan, HOOPS, OpenSceneGraph, or equivalent frameworks.
- Knowledge of scene graphs, rendering pipelines, mesh visualization, camera transformations, picking, clipping, transparency, lighting, materials, and large-model visualization.
- Experience developing Windows desktop applications and addressing graphics behavior across hardware and display configurations.
- Strong debugging experience with Visual Studio Debugger, WinDbg, GDB, LLDB, crash dumps, graphics debuggers, logging, and diagnostic instrumentation.
- Experience with profiling and diagnostics tools such as Valgrind, AddressSanitizer, ThreadSanitizer, Intel VTune, Windows Performance Analyzer, Linux perf, RenderDoc, NVIDIA Nsight, or AMD Radeon GPU Profiler.
- Familiarity with automated graphics testing, regression testing, image comparison, performance validation, and platform or hardware compatibility testing.
- Strong communication, collaboration, problem-solving, analytical, independent-work, and teamwork skills.
Tech Stack
C++Windows
About Cadence Design Systems
Cadence Design Systems builds electronic design automation (EDA) software, emulation/acceleration hardware, and reusable IP that help semiconductor and systems companies design, verify, and implement chips and electronic systems. It also develops computational engineering tools, including computational fluid dynamics and molecular modeling for drug discovery. Founded in 1988 and headquartered in San Jose, California, Cadence is a public company listed on NASDAQ under the ticker CDNS.