Software Engineer, Embedded

About the Employer

Magic Leap is an eclectic group of people who share a magical vision of the future. And we’re growing.

Our mission is to harmonize people and technology to create a better, more unified world. Our vision is to amplify the best parts of you and to advance the human spirit.

Job Description

Seeking an Embedded Software Engineer with experience in embedded, mobile devices (input/output and thermal control peripherals; in a high level/Linux like OS, and in a real time OS). Provide your expertise to help us engineer and optimize state of the art software for our next generation spatial computing device.

If you are the successful candidate, you will get to work on a system that requires inter-process and multi-core communications, strict power budgets under heavy loads, battery management, thermal control,Linux kernel drivers, middleware services, and much more. You will get to make technical decisions along with a high achieving team to help shape the direction of our product.

As the ideal candidate, you will have a significant track record of working on Linux/Android OS (Kernel and Userspace).

Responsibilities:

  • Part of the team delivering full Platform SW to the rest of Magic Leap team, this includes Linux Kernel and real-time/embedded drivers. Also, middleware/userspace service layer
  • Design and develop software drivers for peripherals (input and output systems), software services (thermal control, multi-core communications, buttons/illumination, etc); and the test system functionality for use in debugging issues and factory validation
  • Debug peripherals issues that stem from: user input, dynamic and static power management, on a daily basis in a timely manner, and will include the use of lab equipment such as power supplies, oscilloscopes, etc
  • Work with other teams (on-site and remote): HW, apps SW, middleware SW to debug cross-functional issues
  • Write architecture, and design documents
  • Generate detailed reports on how bugs/problems were solved to be used as a reference for future issues

Qualifications:

  • Strong C++ and C knowledge and skills
  • Familiarity with multi-threaded systems, and real-time OS systems
  • 3+ years hands-on programming experience
  • 2+ years hands-on experience with in mobile devices kernel software layer
  • Capable of reading and understanding Hardware Schematics
  • Unix systems programming
  • Experience with professional coding practices a must (code review, incremental and unit testing, Agile/Scrum type processes, etc)
  • Excellent communication skills required
  • Bootloader on multiple platforms experience a plus

Education:

  • BA/BS in CS or EE is required, MS preferred

Additional Information

  • All your information will be kept confidential according to Equal Employment Opportunities guidelines.