Microsoft AR/VR Job | Principal Research Software Engineer

Job(岗位): Principal Research Software Engineer

Type(岗位类型): Engineering

Citys(岗位城市): Redmond, United States

Date(发布日期): 2022-10-20


From being able to log you in with face recognition, correct your gaze during a video chat to maintain eye contact, to the exciting possibilities in augmented reality, are you itching to play a part in bringing applications of machine learning to millions of users?

The Microsoft Applied Sciences Group incubates disruptive technologies for Microsoft’s next-gen hardware products and is working on several exciting projects that will shape how computers and other devices perceive the user and the user’s environment. Operating as a startup within the company, this team works closely with several research and product teams to bring compelling new experiences to the market. A lot of these experiences will be powered by machine learning – and as part of this team, you will have the unique opportunity to work on almost every aspect of a shipping vision system: camera optics, sensors, data pipeline and of course, developing and implementing the algorithms that make magic happen!

The team is growing, and we have an exciting opportunity for talented software engineers to drive and lead implementation of state-of-the-art AI algorithms for specific and general-purpose silicon on next generation devices and operating systems. This is a hands-on tech lead task. You will have collaboration opportunities throughout the organization and will be building new stuff that really works and has millions of users.


Must have experience in the following:

  • Minimum 2 years of experience as a tech lead or suitable alternative experience; milestone planning for yourself and your peers; spec writing and reviewing; assessing risk and proposing mitigations.
  • Minimum 5 years of C++ experience. Minimum 5 years of experience with source control like git. Minimum 5 years of experience with some testing framework.
  • Experience designing OS component. Experience shipping a public API. Experience shipping/maintaining/updating an OS component over several releases of OS.
  • Experience in optimizing compute, latency, peak working set size, or size on disk
  • Minimum 5 years of experience developing technical/scientific software products relying on numerical and algorithmic performance
  • Extensive experience with multi-threading

Should have hands-on experience working on at least some of:

  • Debugging complex multi-process OS experiences; some kernel debugging experience.
  • Experience with compliance (privacy, security, threat model analysis, accessibility)
  • Some experience with machine learning
  • Hands-on experience with driving for improved performance while ensuring system quality
  • WinRT, UWP experience is a plus


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.


  • Architect and lead the detailed design of a real-time system involving multiple components. This includes design of new systems and re-architecture of existing systems.
  • Plan feature integration timeline and roadmap to take prototypes to production
  • Lead and direct algorithmic software engineering team, plan and assign priorities
  • Grow other engineering team members
  • Improve system quality through the design and implementation of new testing methodologies
  • Collaborate with research, engineering, and product development teams
  • Innovate through filing patents and academic papers