Job Description
We are looking for a Senior Software Engineer 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. The candidate must have good knowledge of communication protocols such as PCI-Express (Gen-3 and above), DDR, Ethernet, NVMe, or similar interfaces.
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.
Entrepreneurial, open-mind behavior and can-do attitude. Think and act fast with the customer in mind!
Authorized to work in Canada and start immediately.
Required Experience
High level of proficiency in C and Python, experience in programming for resource limited micro-controllers is a plus.
Hands-on experience in software driver development, customization, integration and testing with abstraction layers (HAL, APIs).
Strong understanding of Linux OS (kernel configuration, makefiles, interrupt handlers, etc.).
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.
We know that creativity and innovation happen more often when teams include diverse ideas, backgrounds, and experiences, and we actively encourage everyone with relevant experience to apply, including people of color, LGBTQ+ and non-binary people, veterans, parents, and individuals with disabilities.
br{display:none;}.css-58vpdc ul > li{margin-left:0;}.css-58vpdc li{padding:0;}]]> Interviews are to take place in January 2022, however, you may be contacted before then....
Apply For This JobSoftware Developer Systems Software (Senior). … … 3 hours ago...
Apply For This Jobbr{display:none;}.css-58vpdc ul > li{margin-left:0;}.css-58vpdc li{padding:0;}]]> Instem Role: Full Stack Web Developer Location: Remote, UK Instem is a global provider of...
Apply For This JobFull Job Description Calling all innovators – find your future at Fiserv. We’re Fiserv, a global leader in Fintech and...
Apply For This JobFull Job Description About the job Solar Sales Specialist Direct Hire Remote Salary: 70-100 k/yr. + based in Commissions and...
Apply For This JobJob Title: QA Engineer Location: Remote Canada The QA Engineer is responsible for the complete STLC (Software Testing Life Cycle)...
Apply For This Job