
Software Engineer II
- Hyderabad, Telangana
- Permanent
- Full-time
- 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.
- Design and develop USB-C/PD experience for all Surface devices.
- Keep track of latest USB development in industry technological standards and incorporate them into Surface products
- Drive robust, reliable, and secure Sw/fw architecture across all layers.
- Partner closely with silicon partners to plan future product roadmap.
- 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.
- Solid communication skills and ability to work across multiple disciplines and functions.
- Excellent C/C++ design and coding skills.
- Deep SoC/MCU knowledge and ability to read schematics.
- Technical experience in USBC, Power delivery(PD), USB2, I2C and UART protocols.
- Ability to conduct investigative triage to identify and resolve technical issues on embedded hardware, firmware and software.
- Microsoft Cloud Background Check: This position will be required to pass the Microsoft Cloud background check upon hire/transfer and every two years thereafter.
- Minimum of 4 years of experience in system level, embedded firmware or device drivers’ development.
- Hands-on experience with ARM based microcontroller, UEFI.
- Knowledge on USB3/USB4/DisplayPort/Thunderbolt and hands-on experience to debug using USB analyzers is a plus.
- Experience diagnosing power and performance issues on a Windows device.
- Experience with Windows kernel and Windows device drivers is an added advantage.