cover image
Cadence

Lead C++ Software Engineer

On site

Mont-royal, Canada

$ 150,000 /year

Junior

Full Time

24-07-2025

Share this job:
Expired

Skills

Programming Software Development C++ c++ programming

Job Specifications

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.
We are looking for an exceptional C++ software engineer to join the Protium Software Development Team to develop and enhance the Protium FPGA-Based Prototyping product which is used by leading CPU/GPU/HyperScaler companies for pre-Silicon software validation of their SOC's.
You will develop new algorithms and optimizations for QoR (Quality of Results) and performance for the Protium Compiler working with a small team of super star engineers to develop our next generation FPGA based verification platform.
Responsibilities
Enhance Static Timing Analysis (STA) in the Protium Compiler.
Work includes implementing new algorithms in C++ to support Multi-cycle constraints and other SDC exceptions such as set_false_path.
Optimize memory and runtime by using multi-threading and distributed computing .
Develop the EDA automation flow for the platform with other engineers.
Write Design Specifications and Unit Tests for your code
Position Requirements/Qualifications
Bachelors in Computer Science, Electrical /Computer Engineering and a minimum of 4 years of related experience, or Masters and a minimum of 2 years of related experience, or PhD with thesis in a relevant area.
Ideally you are a solid contributor in the FPGA or ASIC prototyping/synthesis/verification space and have delivered great QoR on these platforms.
You are well renowned for your excellent programming skills in C/C++ and you document your work clearly and love talking about it to your team.
You are very comfortable with Verilog or SystemVerilog and understand digital circuits .
Usage of popular logic simulators and some experience in multi-threaded/ concurrent programming are pluses.
The role requires exceptional software skills and Object Oriented Programming experience to be a good match
Knowledge and experience of ML / AI algorithms and deployment in production code a plus
Ingenieur En Logiciels
Cadence est une cheffe de file essentielle dans la conception de systemes electroniques, s'appuyant sur plus de 30 ans d'expertise en logiciels informatiques. L'entreprise applique sa strategie sous-jacente de conception de systeme intelligent pour fournir des logiciels, du materiel et de l'IP qui transforment les concepts du design en realite. Les clients de Cadence sont les entreprises les plus innovantes au monde, offrant des produits extraordinaires allant des puces aux systemes, des produits chimiques aux medicaments, en passant par la fabrication pour les applications de marche les plus dynamiques, y compris l'informatique a grande echelle, les communications 5G, l'automobile, les appareils mobiles, l'aerospatiale, les biens de consommation, l'industrie et les sciences de la vie. Nous sommes fiers de creer et de maintenir une culture d'entreprise qui favorise l'innovation et le succes commercial. Cadence est reconnue comme l'un des meilleurs lieux de travail partout dans le monde, notamment comme l'une des > par le magazine Fortune au cours des dernieres annees. Cadence est cotee en bourse au S&P 500 et au NASDAQ 100.
Chez Cadence, nous embauchons et developpons des leaders et des innovateurs qui veulent avoir un impact sur le monde de la technologie. Palladium(tm) et Protium(tm) sont le duo dynamique de Cadence qui a connu un enorme succes aupres de nos clients. Avec les plateformes Palladium(tm) et Protium(tm) de Cadence(r), les equipes de conception et de verification peuvent rapidement mettre en place un systeme d'emulation ou de prototypage et fournir une plateforme presilicium pour le developpement logiciel precoce, la validation du systeme et les regressions materielles.
L'ingenieur logiciel travaillera sur le duo dynamique de Cadence, collaborant avec une equipe diversifiee mondialement repartie dans differentes regions geographiques. Le candidat retenu travaillera egalement avec le responsable du soutien technique et les principaux clients pour resoudre les problemes de mise en oeuvre ou d'utilisation. Vous travaillerez avec une equipe de reve pour fournir une solution revolutionnaire dans le monde de l'emulation et du prototypage.
Le niveau hierarchique de l'ingenieur en logiciels dependra de son experience et de ses etudes.
Ingenieur en logiciels I
Baccalaureat en informatique ou en genie electrique
Ingenieur en logiciels II
Baccalaureat en informatique ou en genie electrique avec au moins deux ans d'experience connexe ou maitrise correspondante
Ingenieur en logiciels principal
Baccalaureat en informatique ou en genie electrique avec au moins cinq ans d'experience connexe ou maitrise avec au moins trois ans d'experience connexe, ou un doctorat correspondant
L'ingenieur En Logiciels Principal Devrait Avoir
Baccalaureat en informatique ou en genie electrique avec au moins sept ans d'experience connexe, ou une maitrise avec au moins cinq ans d'experience connexe, ou un doctorat avec au moins un an d'experience connexe
Au moins deux ans d'experience pertinente dans le domaine du developpement de logiciels algorithmiques pour l'emulation ou les FPGA
Le candidat ideal possede les competences et l'experience suivantes :
Forte volonte et capacite de travailler dans un environnement de demarrage trepidant
Volonte d'apprendre et de maitriser les nouvelles technologies et de creer les meilleurs systemes possible
Excellente experience en developpement dans un langage general (p. ex., C++, C#, Java)
Solide experience des principes fondamentaux en systemes d'ordinateurs dans les structures de donnees, les algorithmes et l'architecture des systemes
Experience en optimisation logique, compilation de modeles de memoire RTL, actionneurs arithmetiques, optimisation des elements mappes en fonction des compromis de zone/retard
Capacite et envie de travailler sur toutes les parties de la pile (algorithmes, bases de donnees, interface utilisateur) et de revoir les algorithmes traditionnels de synthese et d'optimisation a l'aide de technologies emergentes en apprentissage automatique et en megadonnees
Connaissance des simulateurs logiques et connaissance de la programmation multifils et simultanee, un atout
Desir extraordinaire de qualite et de perfection... et aptitude a le temperer quand il faut assurer la realisation
Bon sens de l'humour!
Puisque ce role necessite que l'employe interagisse avec d'autres entites a l'echelle mondiale ainsi qu'avec des employes et intervenants dans d'autres provinces canadiennes, la connaissance du l'anglais est exigee pour ce poste.
We're doing work that matters. Help us solve what others can't.

About the Company

Cadence is a pivotal leader in electronics and system design, building upon more than 30 years of computational software expertise. The company applies its underlying Intelligent System Design strategy to deliver software, hardware and IP that turn design concepts into reality. Cadence customers are the world’s most innovative companies, delivering extraordinary electronic products from chips to boards to complete systems for the most dynamic market applications, including hyperscale computing, 5G communications, automotive,... Know more