About this Lead Software Engineer role at Cadence Design Systems
At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.
Skills You’ll Need: Minimum Qualifications
Bachelor’s or Master’s degree in Computer Science, Electrical Engineering, Computer Engineering, Math, or a related technical field.
Proficiency in C or C++ programming on Linux, demonstrated through coursework, academic research, internships, open-source contributions, or personal projects.
Solid understanding of data structures, algorithms, computational complexity, and object-oriented programming.
Strong analytical and problem-solving skills, with the ability to break down complex technical problems and develop logical, structured solutions.
Basic understanding of software debugging and testing principles.
Familiarity with coding agents and their application to software development tasks such as codebase exploration, implementation, debugging, test development, and documentation.
Ability to review and validate agent-generated results, with an understanding of their correctness and broader technical implications.
Willingness and ability to learn unfamiliar technologies, engineering tools, and technical domains.
Ability to work effectively in a collaborative engineering environment.
Clear written and verbal communication skills.
Preferred Qualifications
- Sound technical judgment, with attention to correctness, simplicity, performance, maintainability, and overall software quality.
- Experience or knowledge in one or more of the following areas is preferred.
- Relevant experience may be demonstrated through coursework, academic research, internships, open-source contributions, technical competitions, or personal projects:
Algorithms and optimization, including graph algorithms, partitioning, clustering, matching, flow and cut algorithms, heuristics, metaheuristics, or combinatorial optimization.
Parallel and concurrent programming, including multithreading, synchronization, task scheduling, distributed computation, SIMD programming, vectorization, or GPU acceleration.
Performance engineering, including profiling, memory optimization, cache-aware data structures, workload analysis, or algorithmic tuning.
Systems programming, computer architecture, operating systems, compilers, or large-scale data processing.
Electronic Design Automation, digital logic design, simulation, emulation, verification, or semiconductor design workflows.
Experience with modern software development workflows and tools on Linux, including version control systems such as Git or Perforce; build tools and systems such as Make and CMake; testing frameworks such as GoogleTest; and practices such as continuous integration, static analysis, and code review.
Hands-on experience applying coding agents to multi-step software engineering tasks, such as repository exploration, technical planning, implementation, build execution, test development, debugging, validation, and iterative refinement.
Understanding of Agentic Software Engineering, including the disciplined integration of coding agents, deterministic engineering tools, objective validation mechanisms, and human engineering judgment.
Familiarity with Harness Engineering, including the context, tools, execution environments, permissions, validation mechanisms, feedback channels, and operational guardrails that enable coding agents to operate reliably.
Familiarity with Loop Engineering, including iterative agent execution, progress evaluation, validation checkpoints, retry and recovery strategies, and explicit completion or stopping criteria.
Familiarity with Context Engineering, including structured task specifications, repository-level instructions, relevant context selection, progressive context retrieval, and context management across multi-step engineering tasks.
Exposure to Agent Orchestration, including tool invocation, task decomposition, workflow coordination, sub-agent collaboration, and integration between model-driven reasoning and deterministic engineering tools.
Experience developing or configuring Agent Skills, reusable workflows, tool integrations, or MCP-based capabilities that encode domain knowledge and support the repeatable execution of engineering tasks.
Familiarity with Human-in-the-Loop Control, including review checkpoints, approval boundaries, permission management, uncertainty handling, and escalation mechanisms.
Experience using engineering validation techniques such as compilation, automated testing, regression analysis, static analysis, runtime diagnostics, or profiling to provide objective feedback on agent-generated software changes.
Demonstrated curiosity about emerging software engineering technologies, along with the ability to learn through hands-on experimentation and empirical validation.