Principal Software Engineer

Cadence SystemsSan Jose, CA
Hybrid

About The Position

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology. This role involves researching, designing, and developing computer and network software or specialized utility programs for a multinational computational software company. The engineer will analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis. Key responsibilities include implementing special routing algorithms in C++, designing efficient data structures, optimizing algorithm performance for large-scale circuit layouts, and testing/validating implemented software on various customer designs. The role also requires debugging issues, defining technical specifications, collaborating with cross-functional teams, documenting technical decisions, and creating automated test scripts. Additionally, the engineer will develop new algorithms, submit papers and patents, attend conferences, and mentor team members.

Requirements

  • Doctorate degree in Computer Engineering, Computer Science, or related field.
  • Minimum four (4) years of experience in the job offered or in a related occupation.
  • Utilize C++ programming to develop EDA software products.
  • Utilize scripting languages such as Python to implement raw data processing/clustering, toolkit for development, and machine learning Algorithms, particularly EDA-related algorithms including bidirectional A Algorithm, Sorting, Linked List Management, DFS/BFS, Graph Algorithm, Dynamic Programming and Tree Data Structure.
  • Multithreaded and parallel programming.
  • Electronic circuits and Very-Large-Scale Integration (VLSI) IC design flow and EDA tools, including synthesis, place-and-route, or timing analysis.
  • Computer architecture and operating system.
  • Compiler and formal language.
  • Must be available to work on projects at various, unanticipated sites throughout the United States.

Nice To Haves

  • Some telecommuting permitted.

Responsibilities

  • Research, design, and develop computer and network software or specialized utility programs.
  • Analyze user needs and develop software solutions, applying principles and techniques of computer science, engineering, and mathematical analysis.
  • Implement special routing algorithm in C++ programming language.
  • Design efficient data structures to support routing logic.
  • Optimize algorithm performance for large-scale circuit layouts.
  • Test and validate the implemented software on various customer designs.
  • Run test cases on real-world customer design files to ensure correctness.
  • Debug and fix issues found during validation on different design scenarios.
  • Decide the technical specifications in meetings.
  • Collaborate with cross-functional teams to define algorithm requirements.
  • Document and review technical decisions made during design discussions.
  • Make regression tests to maintain the code quality.
  • Create automated test scripts to ensure new features do not break existing functionality.
  • Analyze test results and update test coverage as needed.
  • Make documents for the development.
  • Write technical documentation for algorithm design and usage.
  • Maintain change history for implemented features.
  • Develop new algorithms on routing software development.
  • Regularly submit papers in international conferences and journals, and patents in the US.
  • Attend various conferences for VLSI circuit design and EDA routing software development for state-of-the-art technologies.
  • Mentor other team members accordingly.

Benefits

  • paid vacation
  • paid holidays
  • 401(k) plan with employer match
  • employee stock purchase plan
  • a variety of medical, dental and vision plan options
© 2026 Teal Labs, Inc
Privacy PolicyTerms of Service