THE ROLE
The Software Platforms team provides the foundation on which the in-vehicle user experience is built. We build the software platform (kernel, bootchain, drivers, and lower level userspace platform services) for our innovative Infotainment hardware. This includes high resolution touch displays, high definition audio, bluetooth/wifi/cellular connectivity, USB, cameras, all connected to high performance multi-core processors and GPUs. Our software is based on Linux, GNU toolchain, buildroot, and other open source projects, delivering the security, capability, and performance demanded by our user experience.
RESPONSIBILITIES
- Write well structured, testable, efficient, and maintainable code
- Integrate software components into a fully functional software system
- Tailor and deploy software tools, processes and metrics
- Use existing available hardware in innovative ways to solve problems
- Board bringup and hardware design validation
- Deploy software incrementally to meet very fast paced development
- Develop software tests and continuous integration for your code
- Support factory provisioning, test, and improvements
- Assess and document new product feasibility
REQUIREMENTS
Must Have
- 4+ years embedded software and/or firmware development experience
- 2+ years experience with Embedded Linux and/or Android development
- Strong Linux kernel fundamentals, Linux internals
- Experience developing device drivers
- Systems Software experience
- Excellent C/C++ coding skills
- Experience with board /chip bringup
- Strong build, debug and test skills
- Android Container, Hypervisor, or virtualization experience
- Comfortable using hardware debug tools (DMM, oscilloscopes, logic analyzers) and software debug tools (GDB, KGDB, JTAG)
- Excellent problem solving, critical thinking, and communication skills
Prefer To Have
- Upstream contributions to Linux Kernel is a plus
- Contributions to involvement with open source projects is a plus
- Experience with bootloaders and recovery OS development is a plus
- Experience with RTOS or bare-metal embedded development is a plus
- Experience with Linux graphics technologies (X, wayland, mesa3d, dri/drm drivers) is a plus