logo

View all jobs

Principal Software Engineer

Toronto, Ontario

We have partnered with one of the fastest growing Semiconductor start ups. Our client is a leader in purpose-built connectivity solutions for data-centric systems. Currently they are seeking an experienced Software Engineer in Toronto, Canada with with hands-on experience with x86 low level programming including device drivers, boot-up sequence, and BIOS. The ideal candidate would be at ease architecting and implementing hardware-software interfaces, embedded microcontroller subsystems and driving implementation of low-level firmware on high-speed networking chips.

Basic Qualifications

  • Strong academic and technical background in computer/electrical engineering. At a minimum, a Bachelor’s in EE or Computer Science is required, and a Master’s is preferred.
  • ≥5 years’ experience supporting or developing complex SoC/silicon products for Server, Storage, and/or Networking applications.
  • Experience developing software/firmware running on embedded microcontrollers. Experience developing low level x86 drivers and BIOS.
  • Experience working with logic designers to architect, specify, and verify hardware-software interfaces on complex SoCs.
  • Professional attitude with the ability to prioritize a dynamic list of multiple tasks, to plan and prepare for customer meetings in advance, and to work with minimal guidance and supervision..

Required Experience

  • High level of proficiency in C/C++ (preferred) and programming for resource limited controllers.
  • Deep knowledge of x86 boot up process from cold power-on to full OS bring-up. Familiarity with configuration and performance monitoring of server sub-systems.
  • Understanding of boot loader technologies like UEFI, ACPI, coreboot preferred.
  • Hands-on experience with EDK2, Linux codebase and device drivers preferred.
  • Hands-on experience with encryption, authentication, and security in embedded controllers.
  • Familiarity with TPM, TrustZone, secure boot and delivering secure firmware updates.
  • Familiarity with hypervisor technologies (VMWare etc).
  • Experience in developing BIOS software to configure and bring up server sub-systems.
  • Working knowledge of BMC software for cloud scale fleet management.
  • Working knowledge of PCIe, CXL, Ethernet, DDR, SPI, I2C/I3C protocols.

Share This Job

Powered by