Microsoft Surface Devices is on a mission to deliver iconic, end-to-end products across hardware, software, and services that people trust and rely on every day, with a focus on security and reliability
Requirements
- Proven experience coding in languages including, but not limited to, C, C++, C-Sharp, Java, JavaScript, or Python.
- Academic knowledge and professional or personal experience in embedded software or firmware, demonstrating understanding of embedded systems, 8-32 bit microprocessors, input/output (IO), Inter-Integrated Circuit (I2C), Serial Peripheral Interface (SPI), and other interconnect buses.
- Experience problem-solving and debugging for multiprocessor systems, including experience with hardware debugging tools such as logic analyzers, oscilloscopes, Joint Test Action Group (JTAG), flash emulators, and in-circuit emulators (ICE).
- Ability to clearly express technical concepts in verbal and written forms, including the ability to scale conversations from block diagrams to C-level code explanations.
- Experience in the development of personal computer (PC) based drivers and interface applications or scripting.
- Experience working with development partners in bringing high-volume consumer electronics devices to the market.
- Experience with hardware-level code debuggers and diagnostic tools
Responsibilities
- Create software designs based on product requirements and apply software engineering principles to produce executable code that fulfills design and feature requirements.
- Perform feature definition, platform selection, and code implementation to deliver embedded software product designs optimized for high-volume consumer products.
- Collaborate with electrical engineers, system engineers, architects, and software engineers to determine the core firmware strategy for product roadmaps.
- Troubleshoot and debug code for modern multiprocessor systems, using hardware-level code debuggers and diagnostic tools as needed.
- Participate in code reviews, express technical concepts clearly, and scale conversations from block diagrams to code-level explanations.
- Contribute to innovation initiatives and continuous improvement within the engineering team.
- Ability to read schematics and translate them into code (e.g., IO/pin assignments).
Other
- Bachelor's Degree in Computer Science or related technical discipline, OR equivalent experience.
- Ability to collaborate with electrical engineers, system engineers, architects, and software engineers
- Ability to participate in code reviews and express technical concepts clearly
- Ability to work with development partners in bringing high-volume consumer electronics devices to the market
- Microsoft will accept applications for the role until November 29, 2025