Keep track of latest development in industry technological standards such as USB and incorporate them into Surface products
Bring-up new devices at various stages of hardware development including prototype hardware. Work closely with software and hardware developers located in different geos, to create and improve various components of the Surface software/firmware.
Investigate, reproduce, and debug complex system level problems by leveraging various software debuggers and analyzers.
Develop embedded firmware and device drivers to light up new features according to Surface product requirements and specifications.
Participate in development forums and discussions to propose and implement software solutions.
Required Qualifications
Bachelor's Degree in Computer Science or related technical field AND 2+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript, or Python
OR equivalent experience.
C/C++ design and coding skills.
2 years of experience in system level, embedded firmware or device drivers’ development.
Communication skills and ability to work across multiple disciplines and functions.
Preferred Qualifications
Bachelor's Degree in Computer Science
OR related technical field AND 4+ years technical engineering experience with coding in languages including, but not limited to, C, C++, C#, Java, JavaScript,
OR Python
Experience with USB technologies
Experience with Windows kernel and Windows device drivers.
Experience debugging memory crash dumps, ETL traces, system stability and performance.
Experience with various buses such as SPI, USB, I2C, UART.
Domain knowledge on significant PC subsystems such as graphics, audio,