Principal C++ Software Engineer

Posted 8 Hours Ago
Be an Early Applicant
Mount Royal, QC
Senior level
Cloud • Hardware • Software • Semiconductor
The Role
The Principal Software Engineer will design and develop new features and algorithms for the Cadence Protium Prototyping Platform. Responsibilities include discussing specifications with the team, collaborating with technical support and customers to resolve issues, and working across all parts of the stack to optimize algorithms and systems.
Summary Generated by Built In

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.

At Cadence, we hire and develop leaders and innovators who want to make an impact on the world of technology.

Protium Prototyping Platform is part of the Cadence Dynamic Duo that has been a huge success with our customers. With Cadence® Protium™ prototyping platforms, design and verification teams can rapidly bring up a prototype and provide a pre-silicon platform for early software development, system validation, and hardware regressions.

The Principal Software Engineer will be responsible for design and development of new features and algorithms mainly in development of a new Custom Prototyping Flow. The Principal Software Engineer will accomplish this by carefully discussing the implementation specification with the team spread across different geographies. The candidate is also expected work with technical support lead and key customers to resolve implementation or usage issues.

You will be working with a dream team on providing a breakthrough solution in the multi FPGA prototyping space.

The ideal candidate will have the following skills and experience:

  • Bachelors in Computer Science or Electrical Engineering with a minimum of 7 years of related experience, or Masters with a minimum of 5 years of related experience, or PhD with a minimum of 1 years of related experience
  • A minimum of at least 2 years of relevant industry experience in algorithmic software development for FPGAs
  • Strong desire and ability to work in a fast-paced startup environment
  • Eagerness to learn and master new technologies and build the best systems possible.
  • Very strong development experience in a general-purpose language (e.g. C++, C#, Java)
  • Strong CS fundamentals background in data structures, algorithms, systems architecture
  • Experience in logic optimization, compilation of RTL memory models, Arithmetic Operators, optimizing the mapped elements based on area/delay tradeoffs.
  • Ability and desire to work on all parts of the stack (algorithms, databases, UI) and revisit traditional synthesis and optimization algorithms using emerging technologies in machine learning and big data.
  • Knowledge of Logic Simulators and exposure to multi-threaded / concurrent programming are pluses. 
  • An incredible desire for quality and perfection... and the judgement to temper it when necessary to ship.
  • A healthy sense of fun!

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.

Top Skills

C++
The Company
HQ: San Jose, CA
8,216 Employees
On-site Workplace
Year Founded: 1988

What We Do

Cadence enables electronic systems and semiconductor companies to create the innovative end products that are transforming the way people live, work and play. Cadence® software, hardware and IP are used by customers to deliver products to market faster. The company's Intelligent System Design strategy helps customers develop differentiated products—from chips to boards to intelligent systems—in mobile, consumer, cloud, data center, automotive, aerospace, IoT, industrial and other market segments. Cadence is listed as one of Fortune Magazine's 100 Best Companies to Work For.

Similar Jobs

Cadence Design Systems Logo Cadence Design Systems

Principal C++ Software Engineer

Cloud • Hardware • Software • Semiconductor
Mount Royal, QC, CAN
8216 Employees

Cadence Design Systems Logo Cadence Design Systems

Lead C++ Software Engineer

Cloud • Hardware • Software • Semiconductor
Mount Royal, QC, CAN
8216 Employees
Quebec City, QC, CAN
21450 Employees

Cadence Design Systems Logo Cadence Design Systems

Principal C++ Software Engineer

Cloud • Hardware • Software • Semiconductor
Mount Royal, QC, CAN
8216 Employees

Similar Companies Hiring

TrainingPeaks (A Peaksware Company) Thumbnail
Software • Fitness
Louisville, CO
69 Employees
bet365 Thumbnail
Software • Gaming • eSports • Digital Media • Automation
Denver, Colorado
6100 Employees
Jobba Trade Technologies, Inc. Thumbnail
Software • Professional Services • Productivity • Information Technology • Cloud
Chicago, IL
45 Employees

Sign up now Access later

Create Free Account

Please log in or sign up to report this job.

Create Free Account