Internship Opportunities for Students - Firmware Engineering

Last updated 6 days ago
Location:Redmond, Washington
Job Type:Full Time

Engineers at Microsoft are passionate about building technologies that make the world a better place. At Microsoft, you will collaborate with others to solve problems and build some of the world's most advanced services and devices. Within Hardware organizations, we are seeking talented Firmware & Embedded Software Engineers to deliver great customer experiences.


Do you want to work on a meaningful and impactful project and make a difference? Are you willing to learn from others and open to new ideas? Do you want to support others to succeed and operate in a highly collaborative and global environment? If this sounds like you, Microsoft would like to invite you to come join us as you are, where you can find more than just a job. Read on to learn more about opportunities and apply online.


Applications to these opportunities are considered for all available Firmware and Embedded Software Engineering internships including the ones described below, depending on education level and/or location. To be considered for an internship position, you need to be enrolled full-time as a student majoring in an applicable field, with a minimum of one quarter or semester to complete after your internship.

Responsibilities

Firmware or Embedded Software Engineer
We are looking for awesome students that have some educational and/or work experience with Embedded Software concepts – memory management, working on chip peripheral, debugging code running on live hardware, etc. Interns might also could create software designs based on product requirements and use software engineering principles to produce executable code fulfilling design and feature requirements. These roles work with electrical engineers, system engineers, architects and software engineers to determine the core firmware strategy for our product roadmaps.

Device Driver Software Engineer
There is no better way to learn internals of general-purpose operating systems than by writing drivers that interact with hardware in multicore safe way, and debug hard synchronization and performance issues. We are also looking for students interested in low level system components and device drivers for Windows and Linux operating systems. Interns will get opportunity to develop drivers in C/C++ that interact with hardware connected over I2C, SPI, GPIO, Bluetooth, USB, or PCIe interfaces to enable new user experiences. You will learn processor architectures, bus protocols, read and implement industry defined HW interface specs, use SW tracing and debugging tools, and more importantly how not to write bad code that can bring down the entire system.

Qualifications

Firmware or Embedded Software Engineer

  • Currently pursuing a bachelor's or master's degree in computer engineering, software engineering, computer science or related field with a minimum of one quarter or semester remaining after completing an internship.
  • Excellent problem solving and debugging skills for modern-day multiprocessor systems (understanding how to write/debug code, and use
  • Hardware level code debuggers and diagnostic tools is a plus)
  • Hands on experience in Embedded Software/Firmware showing understanding of embedded systems, 8-32 bit microprocessors, IO’s, I2C/SPI and other interconnected buses.
  • Ability to read schematic and translate into code (i.e. IO/Pin assignments, etc.) is a plus
  • Experience in scripting is a plus.
  • Experience outside of the classroom environment like an internship, hackathon, research project or related experience preferred.
  • Demonstrated skill in time management and completing projects in a cooperative team environment.


Device Driver Software Engineer

  • Currently pursuing a bachelor's, master's degree in computer engineering, software engineering, computer science or related field with a minimum of one quarter or semester remaining after completing an internship.
  • Good problem solving and debugging skills for modern-day multi-core, multi-process/thread systems (understanding how to write/debug code, and use debuggers and diagnostic tools is a plus)
  • Experience in the development of PC based drivers and interface applications is highly desired
  • Experience outside of the classroom environment like an internship, hackathon, research project or related experience preferred.
  • Demonstrated skill in time management and completing projects in a cooperative team environment.



Microsoft is an equal opportunity employer. All qualified applicants will receive consideration for employment without regard to age, ancestry, color, family or medical care leave, gender identity or expression, genetic information, marital status, medical condition, national origin, physical or mental disability, political affiliation, protected veteran status, race, religion, sex (including pregnancy), sexual orientation, or any other characteristic protected by applicable laws, regulations and ordinances. We also consider qualified applicants regardless of criminal histories, consistent with legal requirements. If you need assistance and/or a reasonable accommodation due to a disability during the application or the recruiting process, please send a request via the Accommodation request form.

Benefits/perks listed below may vary depending on the nature of your employment with Microsoft and the country where you work.