At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.
Cadence has a 30-year history of applying leading edge optimization and analysis algorithms to very complex problems in semiconductor and electronic design, verification, and analysis.
We are looking for talented software engineers to join our verification team. You’ll have a great opportunity to make a difference by applying your creativity and problem-solving skills, learn and/or apply multi-threading/distributed computing to solve large scale compile problems such logic optimization, partitioning and performance.
More specifically you will be part of the Xcelium compiler performance team whose responsibilities is to implement compiler language features and improve the compile time of systemVerilog models. The team charter is to add support for language constructs in the parser and compiler in compliance with the systemVerilog IEEE standard. The team is also focused on reducing the memory and time required to build digital models with a focus towards highly replicated designs such as machine learning architecture designs with hundreds of cores.
The candidate will work in a mixed team of senior architects and junior engineers. The responsibilities will include profiling, analyzing performance and coming up with more performant solutions. The team is looking for a dynamic innovative candidate in search of technically challenging software development.
EXPECTATIONS AND TASKS
Design and develop new code to implement new features, speed up, and revitalize existing features
Primary development: C++/C, Object Oriented Design
Write unit tests
Debug and fix software defects
Ability to characterize a problem and specify solution
Strong ability to reverse engineer code
Good understanding of sound software engineering principles
Trouble shooting software issues remotely on large customer designs
Able to cope with a highly changing environment and agile development
Work with cross geographic team members
Highly motivated individual willing to continuously learn and work in a fast pace environment
EDUCATION AND QUALIFICATIONS / SKILLS AND COMPETENCIES
Minimum of B.S. in Computer Science or equivalent, or M.S. in Computer Science
Excellent C++ design and programming skills
Strong understanding of data structures, algorithms and databases.
Excellent verbal and written communication skills
It would be a plus if the candidate possessed one or more of the ADVANCED SKILLS below:
Understanding of compilers, lexers, parsers, code generation, assembly, event driven or parallel simulation
Skilled at refactoring techniques, optimization strategies, unit test framework design/construction/usage, profiling tools, static analysis tools, code coverage or memory checker tools (valgrind, purify…)
Knowledge of VHDL, Verilog or SystemVerilog Hardware Description Languages is a plus
Familiarity with Agile development processes
Familiarity with Linux/UNIX tools
Familiarity with configuration management systems such as git or perforce
#LI-SK1
We’re doing work that matters. Help us solve what others can’t.