jobapplier

Principal Software Engineer

Cadence

Skills

Required

  • electronic design
  • Electrical Engineering / EDA
  • computational geometry
  • graph algorithms
  • C++
  • Python
  • Tcl
  • parallel programming / network programming
  • AI tools
  • software development

Preferred

  • runtime
  • memory optimization
  • verification flows
  • DRC
  • LPE
  • PERC
  • LFS
  • algorithm design

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology. We are looking for talented software engineers to work on our physical verification platform, Pegasus. Pegasus provides a flexible, cloud-ready platform with a massively parallel architecture.

About Cadence

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.

Responsibilities

  • This position focuses primarily on developing topological engines used across multiple physical verification flows, including DRC, LVS, LPE, PERC, SVL, and LFS.
  • Our applications may need to process hundreds of millions of objects, creating challenging problems in algorithm design, scalability, runtime, and memory efficiency.
  • Innovate and develop new ideas and algorithms
  • Design and develop new features to address customer needs
  • Optimize software for runtime, memory efficiency, and scalability
  • Analyze and debug complex software and customer issues

Requirements

  • While our software is designed for electronic design applications, an Electrical Engineering or EDA background is not required, although experience in these areas is a plus.
  • Computer Science background, particularly in computational geometry, graph algorithms, or related areas, is highly valuable.
  • Strong programming skills, particularly in C++ and Python, are required.
  • Familiarity with Tcl is a plus.
  • Experience in parallel programming or network programming is also beneficial.
  • Experience using AI tools for software development is a plus, such as writing code and scripts, analyzing and debugging issues, understanding existing code, and improving development productivity.
  • We’re doing work that matters.

Preferred

  • Experience with runtime and memory optimization is highly valued.

Help us solve what others can’t.