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.
- 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..
- 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.