Staff Software Engineer, Embedded Linux
A new paradigm of computing
Magic Leap is pioneer in spatial computing, developing groundbreaking augmented reality technology that seamlessly blends digital content with the real world. As the creator of the next computing platform, our mixed reality devices unlock new possibilities for how people interact with and experience their surroundings.
Magic Leap could be your place if you want to be part of a united team where everyone is empowered and trusted to make an impact. At Magic Leap, you can explore innovative solutions and use your talents to solve real-world problems. Working alongside industry experts, you can grow your skills and amplify human potential at the intersection of the physical and digital worlds. We know that successful change and progress accelerate diverse perspectives. As we shape our future, everyone's voice matters. Together, we can reimagine the world of work and, with our bold partners, make the impossible possible.
The Embedded Software roles are foundational to Magic Leap’s revolutionary AR capabilities. These highly collaborative teams are responsible for our organization's engineering and technical operations, performing cutting-edge and complex scientific research and development that is 'defined as we build' to create new AR products, features, and marketplaces. Activities include undertaking research, design, development, and implementation activities to improve Magic Leap’s AR products and services; evaluating different types of available processors for the selection of future products; ensuring that standards of quality, cost, safety, reliability, timeliness, and performance are met in production processes; interpreting plans, drawings, and specifications; and collaborating across all Magic Leap teams to ensure our AR product and features provide a high-quality, immersive experience, meeting and exceeding our customer’s needs and our business objectives.
As a Staff Software Engineer in our Embedded Engineering Team, you'll be at the forefront of designing and optimizing device drivers and kernel subsystems required to produce an unparalleled user experience. Your role will focus on, demanding precise timing under significant workloads and innovative scheduling techniques. You'll have the opportunity to make critical technical decisions, significantly influencing the direction and success of our product.
What you’ll do
- Be the technical lead of a small team of Linux kernel engineers, coordinating sprint tasks and helping remove technical roadblocks.
- Design and implement kernel modules and device drivers, working directly within the Linux kernel environment to add new product features and enhance system reliability.
- Debug and resolve complex hardware-software integration issues, utilizing tools such as JTAG debuggers and logic analyzers to maintain system stability and performance.
- Maintain custom Linux distributions on embedded platforms using tools like Buildroot or Yocto, ensuring optimal performance and integration.
- Collaborate with cross-functional teams, including Hardware, Applications, and Middleware, to troubleshoot and resolve memory corruption, timing, and performance issues, and document solutions for future reference.
- Support internal customers as they encounter issues with the API or feature set that we provide them.
- Contribute to the development of the next-generation spatial computing platform, applying strict timing tolerances and careful allocation of compute and memory resources to have a system that performs well while conserving battery power.
- Participate in direct hardware team interactions for device bring-up and debugging, ensuring seamless integration and functionality of hardware and software components.
- Influence the technical direction of our product through making critical decisions in the development and implementation of embedded software solutions.
The experience you bring
- Minimum 7+ years of experience in embedded software development.
- BA/BS in Computer Science, Computer Engineering, or a related field. We are most interested in your total experience and professional achievements.
- In-depth knowledge of embedded Linux kernel development, including experience with custom Linux distribution creation.
- Experience working with complex memory systems, including dedicated SRAM, shared memory systems, and cache-incoherent systems.
- Proficient in C and fluent in C++, with a strong grasp of embedded development practices.
- Familiarity with optimizing Linux performance, managing memory utilization, and developing extensible architectures.
- Proven experience in architecting and implementing drivers for peripherals using interfaces such as I2C, SPI, USB, and PCIe.
- Skilled in designing and implementing asynchronous or concurrent multithreaded systems.
- Strong understanding of common hardware and software communication protocols, including TCP/IP, I2C, PCI, ring buffers, and cross-core interrupts.
- Excellent communication skills, self-motivated, with a keen interest in hardware-software debugging and problem-solving.
It’s exciting if you also have
- Experience with DSP scheduling.
- Experience with RTOS (Real-Time Operating System).
- Comfortable with Android implementations on embedded systems.
- Experience with machine vision, particularly in complex embedded systems.
- Proven track record in a high-volume production environment.
- Proficiency with using JTAG debuggers, logic analyzers, and other advanced debugging tools.
- Capability to collaborate effectively with hardware teams for device bring-up and debugging.
- Knowledge of embedded databases or interprocessor communication layers is a valuable addition.
- A Master’s degree in a relevant field is a plus, offering advanced knowledge and expertise.
- All your information will be kept confidential according to Equal Employment Opportunities guidelines
If you need an accommodation during the application, interviewing, or hiring process, you may request an accommodation by emailing ApplicantAccommodation@magicleap.com. Magic Leap will reasonably accommodate qualified individuals with disabilities to the extent required by applicable law.
Please note that we do not accept any application documents via (e-)mail. Furthermore, we do not accept applications from recruitment agencies for this role.