
Lead Software Engineer (Framework)
Cadence Design Systems3 days ago
Remote, China or Shanghai, ChinaStaff+
Responsibilities
- Design and develop reusable UI Framework and Application Framework capabilities for engineering desktop applications.
- Provide technical leadership for application shell architecture, UI composition, command frameworks, docking and layout systems, state management, data binding, component integration, and framework services.
- Design and guide charting and plotting components using libraries such as SciChart, Gigasoft, or equivalent technologies.
- Lead framework design reviews, feasibility analysis, risk assessment, debugging, performance optimization, and implementation decisions.
- Collaborate with product management, architecture, QA, program management, and engineering teams to translate workflow needs into reusable framework capabilities.
- Guide and mentor engineers on framework architecture, UI patterns, C++ and C# practices, component ownership, testing strategy, and engineering best practices.
- Contribute to technical roadmaps and communicate design tradeoffs, technical risks, progress, and implementation plans.
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, preferably in engineering, CAD/CAE, scientific, visualization, or data-intensive software domains.
- Strong experience architecting reusable UI and application frameworks, application shells, command frameworks, layout and docking systems, UI state management, and extensible framework services.
- Strong hands-on experience with C++ and C# in large-scale, production-quality desktop applications.
- Experience designing framework-level components supporting multiple product workflows, teams, and application modules.
- Experience with charting, plotting, or data visualization components, including SciChart, Gigasoft, or equivalent technologies.
- Strong knowledge of MVVM, MVC, MVP, data binding, event routing, command patterns, dependency injection, and modular application design.
- Experience diagnosing UI responsiveness issues, memory leaks, threading problems, rendering defects, framework integration issues, and performance bottlenecks.
- Experience with Windows desktop application development and cross-platform UI considerations.
- Experience with WPF, WinForms, Qt, Avalonia, or equivalent desktop UI frameworks; Avalonia is strongly preferred.
- Practical experience with AI-assisted development tools such as GitHub Copilot, Cursor, or similar tools.
- Strong debugging experience with Visual Studio Debugger, WinDbg, GDB, LLDB, crash dump analysis, stack traces, logging frameworks, and diagnostic instrumentation.
- Experience with memory, performance, and concurrency diagnostics using tools such as Valgrind, AddressSanitizer, ThreadSanitizer, Intel VTune, Windows Performance Analyzer, Linux perf, or similar profiling tools.
- Familiarity with unit testing, integration testing, UI automation, regression testing, and API compatibility validation.
- Strong communication, collaboration, problem-solving, analytical, organizational, and time-management skills.
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.