Job Information
Cadence Design Systems, Inc. Lead C++ Software Engineer in Mount Royal, Canada
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:
E nhance 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 setfalsepath.
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
Ingénieur en logiciels :
Cadence est une cheffe de file essentielle dans la conception de systèmes électroniques, s’appuyant sur plus de 30 ans d’expertise en logiciels informatiques. L’entreprise applique sa stratégie sous-jacente de conception de système intelligent pour fournir des logiciels, du matériel et de l’IP qui transforment les concepts du design en réalité. Les clients de Cadence sont les entreprises les plus innovantes au monde, offrant des produits extraordinaires allant des puces aux systèmes, des produits chimiques aux médicaments, en passant par la fabrication pour les applications de marché les plus dynamiques, y compris l’informatique à grande échelle, les communications 5G, l’automobile, les appareils mobiles, l’aérospatiale, les biens de consommation, l’industrie et les sciences de la vie. Nous sommes fiers de créer et de maintenir une culture d’entreprise qui favorise l’innovation et le succès commercial. Cadence est reconnue comme l’un des meilleurs lieux de travail partout dans le monde, notamment comme l’une des « 100 meilleures entreprises pour lesquelles travailler » par le magazine Fortune au cours des dernières années. Cadence est cotée en bourse au S&P 500 et au NASDAQ 100.
Chez Cadence, nous embauchons et développons des leaders et des innovateurs qui veulent avoir un impact sur le monde de la technologie. Palladium™ et Protium™ sont le duo dynamique de Cadence qui a connu un énorme succès auprès de nos clients. Avec les plateformes Palladium™ et Protium™ de Cadence®, les équipes de conception et de vérification peuvent rapidement mettre en place un système d’émulation ou de prototypage et fournir une plateforme présilicium pour le développement logiciel précoce, la validation du système et les régressions matérielles.
L’ingénieur logiciel travaillera sur le duo dynamique de Cadence, collaborant avec une équipe diversifiée mondialement répartie dans différentes régions géographiques. Le candidat retenu travaillera également avec le responsable du soutien technique et les principaux clients pour résoudre les problèmes de mise en œuvre ou d’utilisation. Vous travaillerez avec une équipe de rêve pour fournir une solution révolutionnaire dans le monde de l’émulation et du prototypage.
Le niveau hiérarchique de l’ingénieur en logiciels dépendra de son expérience et de ses études.
Ingénieur en logiciels I
- Baccalauréat en informatique ou en génie électrique
Ingénieur en logiciels II
- Baccalauréat en informatique ou en génie électrique avec au moins deux ans d’expérience connexe ou maîtrise correspondante
Ingénieur en logiciels principal
- Baccalauréat en informatique ou en génie électrique avec au moins cinq ans d’expérience connexe ou maîtrise avec au moins trois ans d’expérience connexe, ou un doctorat correspondant
L’ingénieur en logiciels principal devrait avoir :
Baccalauréat en informatique ou en génie électrique avec au moins sept ans d’expérience connexe, ou une maîtrise avec au moins cinq ans d’expérience connexe, ou un doctorat avec au moins un an d’expérience connexe
Au moins deux ans d’expérience pertinente dans le domaine du développement de logiciels algorithmiques pour l’émulation ou les FPGA
Le candidat idéal possède les compétences et l’expérience suivantes :
Forte volonté et capacité de travailler dans un environnement de démarrage trépidant
Volonté d’apprendre et de maîtriser les nouvelles technologies et de créer les meilleurs systèmes possible
Excellente expérience en développement dans un langage général (p. ex., C++, C#, Java)
Solide expérience des principes fondamentaux en systèmes d’ordinateurs dans les structures de données, les algorithmes et l’architecture des systèmes
Expérience en optimisation logique, compilation de modèles de mémoire RTL, actionneurs arithmétiques, optimisation des éléments mappés en fonction des compromis de zone/retard
Capacité et envie de travailler sur toutes les parties de la pile (algorithmes, bases de données, interface utilisateur) et de revoir les algorithmes traditionnels de synthèse et d’optimisation à l’aide de technologies émergentes en apprentissage automatique et en mégadonnées
Connaissance des simulateurs logiques et connaissance de la programmation multifils et simultanée, un atout
Désir extraordinaire de qualité et de perfection... et aptitude à le tempérer quand il faut assurer la réalisation
Bon sens de l’humour!
Puisque ce rôle nécessite que l’employé interagisse avec d’autres entités à l’échelle mondiale ainsi qu’avec des employés et intervenants dans d’autres provinces canadiennes, la connaissance du l’anglais est exigée pour ce poste.
We’re doing work that matters. Help us solve what others can’t.
Additional Jobs (https://cadence.wd1.myworkdayjobs.com/addl_jobs)
Cadence plays a critical role in creating the technologies that modern life depends on. We are a global electronic design automation company, providing software, hardware, and intellectual property to design advanced semiconductor chips that enable our customers create revolutionary products and experiences.
Thanks to the outstanding caliber of the Cadence team and the empowering culture that we have cultivated for over 25 years, Cadence continues to be recognized by Fortune Magazine as one of the 100 Best Companies to Work For. Our shared passion for solving the world’s toughest technical challenges, our dedication to pushing the limits of the industry, and our drive to do meaningful work differentiates the people of Cadence.
Cadence is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, sex, age, national origin, religion, sexual orientation, gender identity, status as a veteran, basis of disability, or any other protected class.
Cadence is committed to creating a diverse environment and is proud to be an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to race, color, sex, age, national origin, religion, sexual orientation, gender identity, status as a veteran, basis of disability, or any other protected class.