jobapplier

Principal Software Engineer

Cadence

Skills

Required

  • C/C++
  • algorithms
  • data structures
  • object-oriented software development
  • Linux/UNIX platforms

Preferred

  • VLSI
  • CAD / physical design / routing / computational geometry / graph algorithms / optimization
  • physical-design
  • routing layers
  • tracks
  • blockages
  • pin access
  • congestion
  • design rules
  • Tcl / Python / Perl

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology. Cadence Design Systems is looking for a highly motivated Principal Software Engineer to join the Innovus R&D team. Innovus is Cadence’s flagship digital implementation platform, enabling customers to design advanced semiconductor chips from RTL to GDSII. In this role, you will play a key technical role in the development of advanced routing technologies for digital physical design, with an emphasis on advanced bus routing and constrained routing , and routing quality of results. You will drive the design and development of sophisticated routing algorithms, tackle complex physical-design challenges in advanced semiconductor designs, and work closely with other R&D engineers to deliver scalable, robust, and high-quality solutions.

About Cadence

Help us solve what others can’t.

Responsibilities

  • Architect, design, and implement algorithms for constrained routing and advanced bus routing
  • Develop and optimize algorithms for advanced bus routing and constrained routing
  • Drive routing solutions for complex pin-access, congestion, and multi-layer routing scenarios
  • Improve quality of results, runtime, scalability, and robustness of routing technologies
  • Provide technical leadership in analyzing and solving complex algorithmic, geometry, and routing problems
  • Collaborate with R&D and cross-functional teams to define technical requirements, drive solutions, and deliver production-quality features
  • Mentor junior engineers and contribute to the technical direction and long-term evolution of routing technologies

Requirements

  • MS or PhD in Computer Science, Electrical Engineering, Computer Engineering, or a related field
  • Strong expertise in C/C++, algorithms, data structures, and object-oriented software development
  • Experience developing complex, performance-critical software on Linux/UNIX platforms
  • Strong algorithmic problem-solving, debugging, and software-design skills
  • Ability to independently drive complex technical problems from problem definition through design, implementation, and validation
  • Strong communication skills and ability to work effectively across engineering teams

Preferred

  • Qualifications Experience in VLSI CAD, physical design, routing, computational geometry, graph algorithms, or optimization
  • Knowledge of physical-design concepts such as routing layers, tracks, vias, blockages, pin access, congestion, and design rules
  • Experience developing large-scale EDA or algorithm-intensive software systems
  • Experience with routing algorithms, constrained optimization, geometry processing, or graph-based algorithms
  • Familiarity with scripting languages such as Tcl, Python, or Perl Experience with commercial or academic place-and-route tools and physical-design flows
  • Experience providing technical leadership or mentoring engineers on complex software projects
  • We’re doing work that matters.