Job Title: AOSP Embedded Software Engineer IV
Locations: Sunnyvale, CA or Redmond, WA - Onsite
Duration: 12 Months to start on W2
Job Description:
Role Mandate:
We are looking for OS developers with strong design and build skills, experience in multiple levels of the OS stack from drivers to frameworks and experience building embedded devices. This position is more of a specialist and operating system (OS) role. The individual will be responsible for software that runs on research devices in Reality Labs (operating systems, applications, based on AOSP – not mobile applications).
Role Responsibilities (including, but not limited to):
• Design and implement components at all layers of the system, from drivers to frameworks
• Debug complex, system-level, multi-component issues that typically span across multiple layers from kernel to application
• Profile performance problems and drive optimizations that span the entire software stack
• Bring up new devices and perform debugging and performance tuning exercises
• Understand software components from multiple partner teams, integrate those components into the unified product code base, and drive their continued development
Performance Measurement:
Performance will be measured on completion of assigned tasks and quality of deliverables.
Must-Have Skills:
• 2+ years of experience with AOSP and Embedded Linux development
• Experience working on systems software in a large-scale C/C++ code base
• Experience with operating systems internals and frameworks services
• Experience with software development processes including: source control, unit tests, bug tracking, and design documentation
Nice-to-Have Skills:
• Experience with shipping high quality consumer products
• Experience with modern C/C++ standards, libraries and best practices
• Experience with Java or Kotlin
• Experience with Android SDK, NDK, JNI and IPC mechanisms
• Experience with device bring up and Linux kernel customization
• Experience with Android or Linux performance tools and security models
Soft Skills:
• Strong attention to detail; provide quality work
• Sense of ownership
• Strong verbal and communication skills
• Ability to investigate and ask for support when needed
Educational Requirements:
• Bachelor's degree in computer science, software engineering or relevant field required.