Lead Embedded Linux Kernel Engineer
Airbnb is a mission-driven company dedicated to helping create a world where anyone can belong anywhere. It takes a unified team committed to our core values to achieve this goal. Airbnb's various functions embody the company's innovative spirit and our fast-moving team is committed to leading as a 21st century company.
Airbnb is looking for an experienced lead embedded Linux kernel engineer based in San Francisco. This is a senior leadership role with the responsibility to shape the engineering design of the consumer electronics product line. This is an opportunity to get on the ground floor of a new organization, and help establish the technical direction of the team, and help shape the engineering culture and its standards of excellence. This individual will have hands-on involvement and oversight of all aspects of hardware development, including working collaboratively within a highly technical cross-functional team. You will play a key role in meeting key requirements for overall engineering, manufacturability, time to market, and cost. The role comes with ample opportunity to engage with leadership at all levels of the organization.
You will work collaboratively with teams from Industrial Design, User Experience, Software, Supply Chain, Operations Program Management, and Manufacturing, in addition to the multiple disciplines within Hardware Engineering. You will translate high-level requests and communication into actionable hardware direction, working with key stakeholders to ensure agreement on the proposed solution and generating the necessary documentation to facilitate implementation.
We are seeking a lead with strong engineering and communications skills who can provide guidance and empower the technical teams and influence major engineering decisions. This is a cross-functional role and we are looking for a team player who loves collaboration and never shies away from a problem. We need an engineer who seeks out risks and mitigates them, who is an expert communicator to both technical and non-technical partners, and has excellent organization.
- Collaborate with Product management, Hardware Engineering, and other cross functional teams to assess viability of new product features and put together an OS architecture for the product
- Partner with closely with hardware engineers to review and implement product architecture, review the schematics, and participate in component selection
- Work closely with Embedded software engineers, the Android and embedded Linux Application software team, hardware and System Engineering teams to implement and optimize features for system-on-chip (SOC) devices.
- Provide technical guidance and lead implementation on a wide range of Android framework HALs and Linux kernel drivers from camera, USB, Wifi , and Bluetooth
- Bring up a new platform - configure I/O, test connectivity, validate design, debug initial issues
- Write basic Linux apps for interfacing with hardware and showcasing its features
- Partner with hardware for device bring-up
- Write peripheral drivers, bootloaders, DMA pipelines, core management layers (power manager, connectivity manager, etc).
- Create and execute hardware bring-up plans and test plans
- Create and document hardware architecture, bring-up plans, test plans
- Implement secure communication between consumer electronics products and between embedded hardware and cloud server backends
- Create and implement a robust architecture for over-the-air updates
- Experience in writing BSP and Device Drivers (MIPI, PCI, SDIO, PMIC, I2C, I2S, Audio, Display LCD/MIPI etc.)
- Track test progress, bugs, and fixes and drive changes to design based on resolution
- Work closely with CM resources to leverage their engineers and maximize the focus of internal resources on adding value to our products
- Coordinate and communicate with external contract manufacturing partners in different global locales, and work around language and culture barriers to establish good working relationships.
- Travel in the Contiguous US and globally as needed to support product launches.
- 7+ years of experience in Consumer Electronics and embedded devices with a track record of delivering hardware devices to the market.
- Experience working with global contract manufacturers.
- Bachelor’s degree in Computer Science, Computer Engineering, Electrical Engineering or equivalent
- Deep experience with consumer electronics, hardware product development, and manufacturing processes
- kernel level programming experience with Linux, Android or real time operating systems
- Strong Linux kernel and Android Framework expertise, 4+ years of current experience working with embedded Linux
- Familiarity with Linux toolchains, Android Studio and Android Native development tool
- Experience in Linux kernel driver programming, device bring-up, BSP, kernel config, kernel crash debugging
- Experience with debugging, Linux kernel development, system-level programming, Android framework, Android build system, and compiler-driven instrumentation
- Strong familiarity with C, C++, Linux, RTOS, Java, JNI, AOSP, and at least one assembly language (preferably ARM)
- Experience in Linux kernel, device tree, Android/Linux device driver and HAL layers as well as Android Framework layers
- Ability to read schematics, and use basic lab equipment such as oscilloscopes
- Experience in bringing up hardware, preferably with ARM-based designs
- Skilled with serial bus interfaces including I2C, SPI, UART
- Bonus: experience working with Wifi, camera, Bluetooth, touch sensors and displays
- Experience with manufacturing and certification requirements for multi-protocol IoT products, including both HomeKit, Zigbee and Z-Wave protocols,
- In-depth knowledge of Bluetooth and upcoming communication protocols such as Matter and Thread
- Strong understanding of operating systems concepts such as thread scheduling, context switching and memory management is required
- Ability to work independently and with minimal guidance to execute on agreed upon project deliverables.