Enable job alerts via email!

Principal C++ Software Engineer (R49827 / sa)

Cadence

Montreal

On-site

CAD 90,000 - 120,000

Full time

29 days ago

Boost your interview chances

Create a job specific, tailored resume for higher success rate.

Job summary

A leading company in semiconductor verification is seeking a Software Engineer to enhance the Palladium emulation platform. The role involves coding, debugging, and improving system performance. Ideal candidates will have extensive experience in C++, Linux, and hardware description languages.

Qualifications

  • Minimum of 7 years experience with Bachelor's, 5 years with Master's, or 1 year with PhD.
  • Experience in firmware development and large system debugging is a plus.

Responsibilities

  • Writing code to specifications and making recommendations for improvements.
  • Analyzing and evaluating bugs under time pressure.
  • Determining coding and integration activities based on design analysis.

Skills

C++
Linux
Algorithms
Data Structures
Parallel Systems
Distributed Systems

Education

Bachelor's in Computer Science
Bachelor's in Electrical Engineering
Master's
PhD

Tools

Verilog
VHDL

Job description

Cadence is a de-facto leader in Semiconductor verification, implementation, Design and Verification IP, analog simulation, and timing closure. Palladium is an industry-leading Emulation platform based on our proprietary hardware. It offers extensive runtime features for optimal use of Palladium boards, debugging hardware by trigger, dynamic waveform dump, and full vision wave dump, which are unique in the emulation market. Conceptually, Palladium is a supercomputer using up to thousands of processors to emulate hardware designs. This platform is used for debugging complex and large hardware designs and system-on-a-chip.

The Software Engineer will work on the team responsible for SSW, runtime performance, full vision trace, debug features, and firmware support for Palladium. Supporting SERDES lanes, Infiniband connections, and PCIe support are also major tasks.

Responsibilities will include (but are not limited to):

  1. Writing code to specifications based on objectives and working within provided parameters; making recommendations for improvements.
  2. Analyzing and evaluating bugs and making recommendations under time pressure within broad supervision.
  3. Analyzing design and determining coding, programming, and integration activities required based on general objectives and knowledge of the overall architecture of the product or solution.

Requirements and Qualifications:

  1. Bachelor's in Computer Science or Electrical Engineering with a minimum of 7 years of related experience, or Master's with at least 5 years, or PhD with at least 1 year.
  2. Background in Linux Operating System, C++, algorithms, data structures, and building parallel and/or distributed systems (using threads and processes).
  3. Knowledge of hardware description languages like Verilog and VHDL, firmware development, and large system development and debugging are pluses.
Get your free, confidential resume review.
or drag and drop a PDF, DOC, DOCX, ODT, or PAGES file up to 5MB.