Position: Lead Software Engineer (Virtuoso)
Location: Bangalore
Experience: 4-6 Years
Cadence Design Systems is seeking a Lead Software Engineer to help lead the GUI and core workflow architecture for Quantus Insight, our next-generation parasitic extraction platform. Built from scratch less than four years ago, this modern codebase offers a rare EDA environment: minimal legacy burden with significant opportunities for greenfield project work.
Based in the Quantus Insight R&D (Digital & Signoff Group), you will collaborate closely with leadership to design the application architecture using the Qt Framework and optimize the core structures supporting it. Because our databases frequently exceed one billion elements, you will solve complex scalability challenges by designing highly optimized, multi-threaded workflows with UI support that maintain high performance under heavy data loads.
This position also offers a unique opportunity to architect high-performance, multi-tool collaborative workflows. You will design and implement robust Inter-Process Communication (IPC) layers that interface directly with other Cadence tools via the SKILL programming language, shaping technology used to design electronic devices worldwide.
Job Responsibilities
1. Architecture & Design (Core Engine & Workflow)
High-Load Dataflow & Workflow Engineering: Design robust internal dataflows, defining how massive datasets smoothly migrate between the computational backend and downstream platform workflows.
Core Optimization: Architect high-performance, UI-agnostic core structures and algorithms to optimize data throughput, memory footprints, and heavy computation cycles.
Asynchronous Multi-Threading: Implement advanced multi-threading and parallel processing patterns to isolate heavy background database operations from the application's interactive layers.
2. Tool Interoperability & SKILL Integration
High-Performance IPC Implementation: Design, optimize, and maintain efficient Inter-Process Communication (IPC) mechanisms to enable seamless data exchange with concurrent Cadence tools.
Cross-Tool Communication: Build reliable, low-latency communication bridges between Quantus Insight and other EDA tools within the ecosystem to sync design and layout data.
SKILL Language Integration: Expose internal application states, UI triggers, and core APIs via robust programmatic interfaces accessible to the SKILL runtime environment.
Dynamic State Synchronization: Ensure that data modifications, cross-tool commands, and execution results triggered via IPC/SKILL scripts are instantly and dynamically updated within the Qt user interface.
3. GUI Development (Qt Framework)
Widgets Implementation: Drive the hands-on development and implementation of the Quantus Insight graphical user interface using C++ and the Qt Widgets framework.
Big Data Presentation: Build and customize high-scale Qt Model/View components (trees, tables, forms) optimized for lazy loading, data paging, and minimal memory overhead.
Linux Environment Profiling: Deeply profile, debug (using GDB/Valgrind), and tune UI performance under extreme memory and CPU utilization in Linux desktop environments.
Job Qualifications & Experience
Education: Bachelor’s, Master’s, or PhD in Computer Science, Software Engineering, or a related technical field.
Experience: 4+ years of professional software development experience (or 5+ years with an advanced degree) focused on complex desktop application UIs and tool integration.
Required Skills
Expert C++: Deep proficiency in modern C++ (C++ 17 or newer) including STL.
Linux Expertise: Advanced development, debugging (GDB, Valgrind), and performance profiling in Linux environments.
Software Engineering: Strong grasp of object-oriented design, design patterns, and the full Software Development Life Cycle.
Additional Skills/Preferences
QT Framework: Experience with the Qt framework for GUI development is a big plus.
SKILL / Lisp Language: Prior experience writing, debugging, or interfacing with Cadence SKILL language scripts is highly desirable. Given that SKILL is based on Lisp, strong experience with Lisp dialect programming (e.g., Common Lisp, Scheme, Clojure) is highly valued.
System Programming / IPC: Practical experience with Linux systems programming, including shared memory, sockets, named pipes, or signal handling.
EDA Experience: Knowledge of parasitic extraction, layout connectivity, or physical verification.