Software Engineer II - MCU


Bangalore, Karnataka, India

full time

07 Jan 2020


Are you passionate about building cool devices and technologies? The Surface Team focuses on building devices that empower every person and every organization to achieve more. A fundamental part of our strategy is having desirable and powerful devices that enable the experiences people want, and elicit their excitement. Creating these devices involves a close partnership between hardware and software engineers, designers, and manufacturing. We are currently building the next generation and Surface needs you!

We're looking for talented firmware engineers to deliver great customer experiences . As a firmware engineer you will take customer outcomes to feature definition, platform selection, and code implementation delivering product designs that are optimized for high volume consumer products.

Firmware Engineers work with electrical engineers, system engineers, architects and software engineers to determine the core firmware strategy for our product roadmaps.

Desired Skills:

  • Minimum BS in Computer/Software Engineering or related field.
  • Minimum of 5 years’ experience contributing to the embedded firmware development for products in the consumer PC or consumer electronics industry. C lang development experience (Assembly, C++ and other higher level languages as well as host level application programming a plus)
  • Proven Embedded FW architecture skills showing a deep understanding of embedded systems, 8-32 bit microprocessors, IO's, I2C/SPI and other interconnect buses
  • Strong problem solving and debugging skills for modern-day multiprocessor systems (able to write/debug code, use HW level code debuggers and diagnostics tools) .
  • Ability to use hardware debugging tools such as logic analyzers, oscilloscopes, JTAG, Flash emulators, ICE, etc. during the firmware development process.
  • Strong communication skills required, including the ability to clearly express technical concepts in verbal and written forms. Able to scale conversations from block diagrams to C/asm level code explanations.
  • Must be able to plan work, and work to a plan adapting as necessary in a rapidly evolving environment.
  • The ability to comprehend and assimilate technical concepts across multiple disciplines is a plus.
  • Enthusiastic, motivated and self-driven.
  • Some travel may be necessary.

Preferred skills:

  • Experience in the development of PC based drivers and interface applications/scripting etc.
  • Experience working with development partners in bringing high volume consumer electronics devices to the market.
  • Experience working with Asian high volume manufacturers.

For more jobs like this subscribe to the weekly newsletter or follow C++ JOBS on Facebook, Linkedin and Twitter for frequent social updates.